Documentos de Académico
Documentos de Profesional
Documentos de Cultura
M. Soleymani
Sharif University of Technology
Fall 2017
Slides have been adopted from Fei Fei Li and colleagues lectures and notes, cs231n,
Stanford 2017.
Fully connected layer
Fully connected layers
• Neurons in a single layer function completely independently and do
not share any connections.
5x5 output
3x3 filter
7x7 input
Source:
http://iamaaditya.github.io/2016/03/
one-by-one-convolution/
Convolution
Convolution
Convolution
Local connections spatially but full along the entire depth of the input volume.
Convolution
Convolution: Feature maps or activation maps
consider a second, green filter
Convolution: Feature maps or activation maps
• If we had 6 5x5 filters, we’ll get 6 separate activation maps:
5x5 output
3x3 filter
3x3 filter
7x7 input
Convolutional filter
Stride = 2
filters jump 2 pixels at a time as we slide them around
3x3 filter
7x7 input
Convolutional filter
Stride = 2
filters jump 2 pixels at a time as we slide them around
3x3 filter
7x7 input
Convolutional filter
Stride = 2
3x3 filter
7x7 input
Convolutional filter
Stride = 2
3x3 filter
7x7 input
Convolutional filter
Stride = 2
3x3 filter
7x7 input
Convolutional filter
Stride = 2
3x3 filter
7x7 input
Convolutional filter
Stride = 2
3x3 filter
7x7 input
Convolutional filter
Stride = 2
7x7 input
Convolutional filter
Stride = 3
3x3 filter
7x7 input
Convolutional filter
Stride = 3
3x3 filter
7x7 input
Convolutional filter
Stride = 3
3x3 filter
Output size:
N (N - F) / stride + 1
Example:
N = 7, F = 3: stride 1 => (7 - 3)/1 + 1 = 5
stride 2 => (7 - 3)/2 + 1 = 3
stride 3 => (7 - 3)/3 + 1 = 2.33 :\
F
In practice: Common to zero pad the border
input 7x7
Filter 3x3
stride 1
zero pad with 1 pixel border
Output size:
(N+2P - F) / stride + 1
In practice: Common to zero pad the border
Common in practice:
filters FxF => will preserve size
stride 1
zero-padding with (F-1)/2
N=5
N=5
F=3
F=3
P=1
P=1
S=2
S=1
Output = (5 - 3 + 2)/2+1 = 3.
Output = (5 - 3 + 2)/1+1 = 5.
We want to maintain the input size
• (32 -> 28 -> 24 ...).
• Shrinking too fast is not good, doesn’t work well.
Example
• Input: 32x32x3
• Filters: 10 5x5x3 filters
• Stride: 1
• Pad: 2
F = 3, S = 1, P = 1
F = 5, S = 1, P = 2
F = 5, S = 2, P = ? (whatever fits)
F = 1, S = 1, P = 0
Example
Convolutional layer: neural view
Convolutional layer: neural view
Convolutional layer: neural view
There will be 6 different neurons all looking at the same region in the input volume
constrain the neurons in each depth slice to use the same weights and bias
Convolutional layer: neural view
Common settings:
F = 2, S = 2
F = 3, S = 2
Fully Connected Layer (FC layer)
• Contains neurons that connect to the entire input volume, as in
ordinary Neural Networks
•Each Layer may or may not have parameters (e.g. CONV/FC do, RELU/POOL don’t)
•Each Layer may or may not have additional hyperparameters (e.g. CONV/FC/POOL do, RELU doesn’t)
Demo
• http://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html
Summary
• ConvNets stack CONV,POOL,FC layers
• Trend towards smaller filters and deeper architectures
• Trend towards getting rid of POOL/FC layers (just CONV)
• Typical architectures look like
[(CONV-RELU)*N-POOL?]*M-(FC-RELU)*K,SOFTMAX
– where N is usually up to ~5
– M is large
– 0 <= K <= 2
– but recent advances such as ResNet/GoogLeNet challenge this paradigm
Resources
• Deep Learning Book, Chapter 9.
• Please see the following note:
– http://cs231n.github.io/convolutional-networks/