AlexNet网络是由5个卷积层和3个全连接层构成
下面这个是一个平面图,可能会更好看一些:
1 2 3 4 5
6 7 8 9 10 11
一、 字母解析:
1、s:(stride)步伐的意思,表示每次跨几个像素点
(例:s = 1则表示第一次最左上角取(1,1)这个点,往后走两步,下一次的左上角取(1,3)这个点)
2、pad:(padding)补充的意思,就是在原来图片的基础上在外面补充几行(列)
(例:pad = 2,则表示在原来图片的基础上两边补两列,上下分别补两行,补的数据全部为0)
3、f:(filter)过滤器的意思,在池化的时候会用到
(例: f = 3,表示这个过滤器为3*3大小,在AlexNet中采取最大池化,所以就会将3*3区域内的数据取最大值替代该区域)
4、pooling:池化
5、FC:全连接
二、过程解析:
1、卷积过程,用96个11*11大小的卷积核去卷积该数据,所以卷积完应该有96张特征图,每张特征图的大小为55*55((227-11)/4+7=55),使用ReLu作为激活函数
2、降采样,也称池化,采用最大池化方式(PM),因为过滤器为3*3,没有进行补充,所以最后池化完的大小为27*27((55-3)/2+1=27)
3、卷积过程,共有256个卷积核,所以卷积完后共有256个特征图,卷积核大小为5*5,步伐为1,补充2行和2列,卷积完大小依然为27*27((55+2*2-5)/1+1=27),使用ReLu作为激活函数
4到8分别是池化、卷积、卷积、卷积、池化操作,原理同上面。
9、全连接操作,使用4096个神经元对256个6*6大小的特征图进行全连接,即通过4096个6*6的卷积核对256个特征图进行卷积操作,再通过ReLU激活函数,最后经过dropout,在训练的以1/2概率使得隐藏层的某些neuron的输出为0,这样就丢到了一半节点的输出,BP的时候也不更新这些节点。通过drop运算后输出4096个本层的输出结果值最后得到4096个神经元
10、输入的4096个数据与上一层的4096个神经元进行全连接,操作如同然后上一层一样经由ReLU进行处理后生成4096个数据,再经过dropout(同样是以0.5的概率)处理后输出4096个数据。
11、上一层输出的4096个数据与本层的1000个神经元进行全连接,经过训练后输出被训练的数值。