经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
文章目录
1.为什么进行实例探究?
通过阅读别人的论文和代码来学习。
后面会学习几个经典的网络模型。
2.经典网络
2.1 LeNet-5
输入:图片32×32×1,过滤器5×5,avg pool 2×2-步长2。
网络结构图:
参数大概6W个,**函数用的sigmoid和tanh。
可借用模式:一个或多个卷积层后面跟着一个池化层,重复若干个这种结构,然后是全连接层,最后是输出。
论文阅读:精度第二段(介绍网络结构)、泛读第三段(实验结果)。
2.2 AlexNet
输入:图片227×227×3;过滤器有:11×11-步长4,5×5-same,3×3-步长1-padding-1;max-pool:3×3-步长2。
参数大概6000万个。**函数用的ReLU。
训练方法:在两个GUP上进行训练。LRN(局部响应归一化层):得到256个数字,进行归一化。motivate是13×13的图像每个位置来说,可能并不需要太多的高**神经单元。
2.3 VGG-16
输入:图片224×224×3,过滤器:3×3-步长1-same padding;池化:2×2-步长2。
这里的16指的是卷积层和全连接层的数量,整个网络大概有1.38亿个参数。
网络结构的设计原则:每一步卷积,通道数翻倍。每一次池化,高度宽度缩小一半。
总结:论文阅读顺序:AlexNet->VGG->LeNet。
3.残差网络
残差块:(残差网络的基本结构)
直观上的感觉就是:在两层神经网络之间,将前一层的输入直接加到后一层的**层上。从而跳过前一层。
主要公式就是:
“跳跃连接”:一次跳过一层或几层,直接将信息传递到深层。
残差网络结构:
从图下部也可以看出,解决了层数越深,训练错误越高的问题。
PS:本为因为是中国人发明而高兴,但是发现其为Facebook的员工,唉,什么时候中国能成为适合科技创新的土壤呢?为什么培养不出也留不住最最优秀的人才呢?
4.残差网络有什么用?
通常来说,神经网络在训练集表现好,在hold-out交叉验证集或者dev集和test集才会有好的表现。
首先提出第一个问题:为什么残差网络有效?
这里需要了解L2正则化和权重衰减。会导致W和b为0,最后:
这个恒等式函数表明,给网络增加一个残差块对结果没有什么影响,有时候还会提升它的效率。
ResNet使用了same卷积保证z[l+2]和a[l]具有相同的维度。如果输入和输出维度不同(没用same卷积),需要增加一个Ws参数矩阵。
这个网络的特点就是使用same卷积,所以可以直接添加跳跃连接,不用使用Ws矩阵。
最后总结一下ResNets的网络结构:
卷积层-卷积层-卷积层-池化层-卷积层-卷积层-卷积层-池化层-……,最后通过softmax进行预测的全连接层。
5.网络中的网络以及1×1卷积
1×1的卷积,只管上你可能以为就是乘一个数字,事实并非如此。
那么为什么用1×1的卷积呢?
1×1卷积本质上可理解为对切片上32个不同位置都应用一个全连接层,其作用是输入32个数字,在36个单元上重复此过程,输出6×6×#filters。
简单来说就是Network in Network理念。
下面举个例子:
可以看到,1×1卷积层实现了一些重要功能,给神经网络添加了一个非线性函数,可以减少输入层的通道数,进而简化计算,当然也可以增加通道数。(池化层仅仅是减少了输入层的高度和宽度)。