cs231n : Convolutional Neural Networks

关于CIFAR-10分类问题的一个简单的卷积神经网络

结构:[INPUT- CONV - RELU - POOL - FC]

INPUT: 32x32x3的原始图片

CONV:选择12个filters,得到的输出维度为32x32x12(???)

RELU:是一个elementwise的activation函数,输出维度仍然为32x32x12

POOL:进行一个下采样操作,得到的输出维度为16x16x12

FC:计算每一个类别对应的得分,得到的输出维度为1x1x10

值得注意的是,以上提到的所有层中,有些层(CONV/FC)是有参数的,有些层(RELU/POOL)是没有参数的;有些层(CONV/FC/POOL)是有超参数的,有些层(RELU)是没有超参数的。特别地,CONV/FC层不仅是input volume的参数,还是权重和偏置的参数;而RELU/POOL都是固定的函数。CONV/FC层的参数将会用梯度下降的方法进行训练。


Convolutional Layer

一个典型的filter(位于CNN的第一层)通常的大小为5x5x3,其中3主要是因为图片的通道数为3,假设第一层的filter的数量为12,每一个都会产生一个2维的actiavtion map,沿着depth维度将这些map叠加起来,得到输出。


Spatial arrangement

size of output volume由三个超参数决定,分别是depth,stride和zero-padding。

output volume的第一个超参数是depth,它对应着我们需要使用的filter的个数,每一个neuron在沿着depth column方向对应的图片区域都是一致的;stride为步长;zero-padding的好处是我们可以控制输出的volume(常见的做法是用来控制输入和输出的大小保持一致)

W -- input volume size

F -- receptive filter size of the Conv layer neurons

S -- stride

P -- the amount of zero padding,当S=1时,P=(F-1)/2可以保持input volume和output volume一致

当计算出的output volume不是整数时,会对图片进行padding或者对图片进行裁切


Parameter sharing

每一个depth slice上的neurons共享权重和偏置。

但是当输入为图片中心有人脸的图片时,我们可能希望学习到的是在空间中的不同位置的眼睛和头发的特征,此时我们需要放松参数共享的假设,我们将这种layer称为locally-connected layer。


总结

对于卷积层:

输入图片volume为W1×H1×D1

需要4个超参数:

  1. filter的数量K;
  2. filter的大小F;
  3. 步长S;
  4. zero-padding大小

产生的volume的大小为W2×H2×D2 ,其中:

  • W2=(W1F+2P)/S+1
  • H2=(H1F+2P)/S+1 (i.e. width and height are computed equally by symmetry)
  • D2=K
当进行参数共享时,每一个filter的参数个数为   FFD1  ,总的参数个数为(FFD1)K
在output volume中,depth slice的第d层,是第d个filter当步长为S时,同input volume的卷积,再减去b


猜你喜欢

转载自blog.csdn.net/weixin_40516558/article/details/80227283