LEARNING
Module 3: Get introduced to convolutional neural
networks
Instructor: Amit Sethi
Co-developer: Neeraj Kumar
TAs: Gaurav Yadav, Niladri Bhatacharya
Page: AdvancedMachineLearning.weebly.com
IITG Course No: EE 622
Module objectives
Understand the basics of CNN
Convolutions
Pooling
Fully connected layers
Understand the basics of backpropagation
through CNN
Be able to use LeNet level CNNs for simple tasks
Source: http://psych.hanover.edu/Krantz/receptive/
Source: http://psych.hanover.edu/Krantz/receptive/
Source: https://en.wikipedia.org/wiki/Receptive_field
Source: http://psych.hanover.edu/Krantz/receptive/
Source: https://en.wikipedia.org/wiki/Gabor_filter
Source: https://en.wikipedia.org/wiki/Gabor_filter
Haar filters
Source: http://www.cosy.sbg.ac.at/~hegenbart/
Convolution
Lets convolve
products
Now convert it to 2-D
, + , +
Convolution animation
Source: http://bmia.bmt.tue.nl/education/courses/fev/course/notebooks/triangleblockconvolution.gif
Source: https://upload.wikimedia.org/wikipedia/commons/4/4f/3D_Convolution_Animation.gif
Source: http://deeplearning.stanford.edu/wiki/index.php/Feature_extraction_using_convolution
Source: http://www.slideshare.net/srkrishna341/matched-filter-12735596
Feature maps
Convolutional layer:
Input A (set of) layer(s)
Convolutional filter(s)
Bias(es)
Nonlinear squashing
detected?
Notion of invariances: translation, scaling, rotation,
contrast
Pooling is subsampling
Source: "Gradient-based learning applied to document recognition" by Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner, in Proc. IEEE, Nov. 1998.
Types of pooling
Two types of pooling
Average
Max
How do these differ?
How do gradient computations differ?
Other considerations:
Bias and nonlinearity after pooling
Why?
Source: "Gradient-based learning applied to document recognition" by Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner, in Proc. IEEE, Nov. 1998.
Source: "Gradient-based learning applied to document recognition" by Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner, in Proc. IEEE, Nov. 1998.
Source: http://cs231n.github.io/understanding-cnn/
Source: http://cs231n.github.io/understanding-cnn/
Source: http://cs231n.github.io/understanding-cnn/
Source: http://cs231n.github.io/understanding-cnn/
Source: "Convolutional neural networks for speech recognition" by Ossama Abdel-Hamid et al., in IEEE/ACM Trans. ASLP, Oct, 2014
Source: "Convolutional neural network architectures for predicting DNAprotein binding by Haoyang Zeng et al., Bioinformatics 2016, 32 (12)
31
In summary, CNNs
Use convolutions to:
Reduce number of free parameters
Regularize the model
Detect features at various locations
Utilize spatial (grid) contiguity
Use pooling to:
Reduce feature maps size
Introduce translation invariance
Introduce scale invariance
Introduce rotation invariance
Detect presence of features
Together, CNNs are very powerful tools for:
Learning feature hierarchies on data with local structure on a grid