Live data from Hacker News

An Intuitive Explanation of Convolutional Neural Networks (2016)

ujjwalkarn.me

1–10 of 24 posts

Re: An Intuitive Explanation of Convolutional Neural Networks (2016)

#3
How do CNNs work when the output is multiple categories? For instance, in the same image is a cat and a dog and a car. What's the architecture look like - multiple CNNs, each that can predict one category? Or does one CNN have multiple outputs and if the score > threshold, add that category to the list shown to the user?

Also, how do CNNs draw a box around the target in the image?

Re: An Intuitive Explanation of Convolutional Neural Networks (2016)

#4
post #3

How do CNNs work when the output is multiple categories? For instance, in the same image is a cat and a dog and a car. What's the architecture look like - multiple CNNs, each that can predict one category? Or does one CNN have multiple outputs and if the score > threshold, add that category to the list shown to the user? Also, how do CNNs draw a box around the target in the image?

The first question has been widely answered, so let me jump to the second question -- bounding boxes.

In the past, some people did this inefficiently by just sliding a window across the image and using the same classifier you'd use for the first problem. But this is inefficient, and different sizes make it more inefficient. So the best solution is to use an "Object Detection" network, look into SSD or YOLO to see an example of this.

Re: An Intuitive Explanation of Convolutional Neural Networks (2016)

#5
> Parameters like number of filters, filter sizes, architecture of the network etc. have all been fixed before Step 1 and do not change during training process – only the values of the filter matrix and connection weights get updated.

Is this just the article's over-simplification or are these values really just randomly selected?

Re: An Intuitive Explanation of Convolutional Neural Networks (2016)

#7
post #5

> Parameters like number of filters, filter sizes, architecture of the network etc. have all been fixed before Step 1 and do not change during training process – only the values of the filter matrix and connection weights get updated. Is this just the article's over-simplification or are these values really just randomly selected?

These are called hyper parameters (filters, filter sizes, stride length, pooling function, activation function, and a whole host of others not mentioned in this article). They are chosen "randomly" in the sense that it isn't an exact science, ie there is no "right" answer. However, intuition and experience are used as a guide to select reasonable values.

The values in the filter matrices and the weights and biases of the fully connected layers are truly random though. They are often initialized with Gaussian random values. Sometimes they are just initialized as all 1's, or 0's. Again, there's no "right" answer (there is probably research out there that recommends one initialization approach over another). These are the values that are trained using gradient descent.

Re: An Intuitive Explanation of Convolutional Neural Networks (2016)

#8
post #3

How do CNNs work when the output is multiple categories? For instance, in the same image is a cat and a dog and a car. What's the architecture look like - multiple CNNs, each that can predict one category? Or does one CNN have multiple outputs and if the score > threshold, add that category to the list shown to the user? Also, how do CNNs draw a box around the target in the image?

First question: The network is trained to recognize a fixed set of outputs. That's what makes it a classifier -- it classifies an input into a single output. It does this by giving each output possibility a score, and the highest score is its guess for what the original image is. So if I have a network that I train to recognize cats, dogs, and cars, and I get an output like {cat: .13, dog: .85, car: .02} Then the input was most likely a dog. The network calculates all of those values simultaneously.

You can, of course, tell the network to output whatever you want: all of the guesses, best guess, top five guesses, all guesses over a threshold, etc.

Note, this is a gross oversimplification, but it gets the general concept across.

Re: An Intuitive Explanation of Convolutional Neural Networks (2016)

#9
post #3

How do CNNs work when the output is multiple categories? For instance, in the same image is a cat and a dog and a car. What's the architecture look like - multiple CNNs, each that can predict one category? Or does one CNN have multiple outputs and if the score > threshold, add that category to the list shown to the user? Also, how do CNNs draw a box around the target in the image?

What's the architecture look like - multiple CNNs, each that can predict one category?

Effectively. That's what a DNN is, ANNs with multiple inference layers each one gives their "highest probability" and then the client/system sets the weight threshold for what is returned.

Re: An Intuitive Explanation of Convolutional Neural Networks (2016)

#10
anyone happen to be familiar with any uses of CNNs on 1D "images"? (like you'd get from linear image sensors https://toshiba.semicon-storage.com/ap-en/product/sensor/lin... )

i hit up google scholar occasionally looking for references, but literally everything seems to be applying them to 2D images.

Post reply on HN