Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does a convolution kernel get trained in a CNN?

In a CNN, the convolution operation 'convolves' a kernel matrix over an input matrix. Now, I know how a fully connected layer makes use of gradient descent and backpropagation to get trained. But how does the kernel matrix change over time?

There are multiple ways in which the kernel matrix is initialized as mentioned here, in the Keras documentation. However, I am interested to know how it is trained? If it uses backpropagation too, then is there any paper that describes in detail the training process?

This post also raises a similar question, but it is unanswered.

like image 656
Rangan Das Avatar asked Aug 20 '18 09:08

Rangan Das


People also ask

How are CNN kernels trained?

In Convolutional neural network, the kernel is nothing but a filter that is used to extract the features from the images. The kernel is a matrix that moves over the input data, performs the dot product with the sub-region of input data, and gets the output as the matrix of dot products.

Do we learn the kernel in CNN?

Instead of using manually made kernels for feature extraction, through Deep CNNs we can learn these kernel values which can extract latent features.

How are convolutional filters learned?

Convolutional neural networks do not learn a single filter; they, in fact, learn multiple features in parallel for a given input. For example, it is common for a convolutional layer to learn from 32 to 512 filters in parallel for a given input.

How does training a CNN work?

The convolutional Neural Network CNN works by getting an image, designating it some weightage based on the different objects of the image, and then distinguishing them from each other. CNN requires very little pre-process data as compared to other deep learning algorithms.


1 Answers

Here you have a well explained post about backpropagation for Convolutional layer. In short, it is also gradient descent just like with FC layer. In fact, you can effectively turn a Convolutional layer into a Fuly Connected layer as explained here.

like image 166
ibarrond Avatar answered Oct 08 '22 21:10

ibarrond