经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception

1.为什么进行实例探究?

通过阅读别人的论文和代码来学习。
后面会学习几个经典的网络模型。
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception

2.经典网络

2.1 LeNet-5

输入:图片32×32×1,过滤器5×5,avg pool 2×2-步长2。
网络结构图:
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
参数大概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。
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
参数大概6000万个。**函数用的ReLU。
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
训练方法:在两个GUP上进行训练。
LRN(局部响应归一化层):得到256个数字,进行归一化。motivate是13×13的图像每个位置来说,可能并不需要太多的高**神经单元。

2.3 VGG-16

输入:图片224×224×3,过滤器:3×3-步长1-same padding;池化:2×2-步长2。
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
这里的16指的是卷积层和全连接层的数量,整个网络大概有1.38亿个参数。
网络结构的设计原则:每一步卷积,通道数翻倍。每一次池化,高度宽度缩小一半。
总结:论文阅读顺序:AlexNet->VGG->LeNet。

3.残差网络

残差块:(残差网络的基本结构)
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
直观上的感觉就是:在两层神经网络之间,将前一层的输入直接加到后一层的**层上。从而跳过前一层。
主要公式就是:
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
“跳跃连接”:一次跳过一层或几层,直接将信息传递到深层。
残差网络结构:
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
从图下部也可以看出,解决了层数越深,训练错误越高的问题。
PS:本为因为是中国人发明而高兴,但是发现其为Facebook的员工,唉,什么时候中国能成为适合科技创新的土壤呢?为什么培养不出也留不住最最优秀的人才呢?

4.残差网络有什么用?

通常来说,神经网络在训练集表现好,在hold-out交叉验证集或者dev集和test集才会有好的表现。
首先提出第一个问题:为什么残差网络有效?
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
这里需要了解L2正则化权重衰减。会导致W和b为0,最后:a[l+2]=g(a[l])=a[l]a^{[l+2]}=g\left(a^{[l]}\right)=a^{[l]}
这个恒等式函数表明,给网络增加一个残差块对结果没有什么影响,有时候还会提升它的效率。
ResNet使用了same卷积保证z[l+2]和a[l]具有相同的维度。如果输入和输出维度不同(没用same卷积),需要增加一个Ws参数矩阵。

经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
这个网络的特点就是使用same卷积,所以可以直接添加跳跃连接,不用使用Ws矩阵。
最后总结一下ResNets的网络结构:
卷积层-卷积层-卷积层-池化层-卷积层-卷积层-卷积层-池化层-……,最后通过softmax进行预测的全连接层。

5.网络中的网络以及1×1卷积

1×1的卷积,只管上你可能以为就是乘一个数字,事实并非如此。
那么为什么用1×1的卷积呢?
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
1×1卷积本质上可理解为对切片上32个不同位置都应用一个全连接层,其作用是输入32个数字,在36个单元上重复此过程,输出6×6×#filters。
简单来说就是Network in Network理念。
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
下面举个例子:
经典的卷积网络结构-LeNet、AlexNet、VGG、ResNet、Inception
可以看到,1×1卷积层实现了一些重要功能,给神经网络添加了一个非线性函数,可以减少输入层的通道数,进而简化计算,当然也可以增加通道数。(池化层仅仅是减少了输入层的高度和宽度)。

6.谷歌Inception网络简介

7.Inception网络

8.使用开源的实现方案

9.迁移学习

10.数据增强

11.计算机视觉现状