卷积神经网络(二)
二、经典神经网络的结构:
- LeNet-5
- AlexNet
- VGG
- ResNet
2.1 LeNet-5
2.2 AlexNet-5
可以同时在两个GPU上运行
2.3 VGG
2.4 残差网络ResNet
下图是一个残差块,输入a[l]会传送到l+2层的线性部分之后,这样它会直接参加非线性部分的计算。
下图是一个残差神经网络的示例:对于一般的神经网络,当网络层数变多时,训练错误会先减少后增加,但是对于ResNet不会出现这种情况。
2.5残差网络的作用
残差网络起作用的主要原因就是这些残差块学习恒等函数非常容易,能够保证网络的性能不会收到影响,很多时候甚至可以提高效率,或者说至少不会降低网络效率,因此创建类似残差网络可以提升网络性能。一般卷积神经网络的结构都是几个卷积层后面跟一个池化层,在网络的最后还有一个或多个全连接层。
2.6 网络中的网络以及1*1卷积
下图中用对一个1132的卷积对6632的图像进行卷积操作,相当于对66个单元分别进行添加了一个全连接层。
正如下图所示,11卷积层可以减少或者增加图像的通道数,之前学习的池化层会减少图像的高度和宽度,但不会改变图像的通道数。
2.7 谷歌Inception网络简介
Inception模块的作用:代替人工确定卷积层中的卷积核大小或者确定是否需要创建卷积层和池化层。即不需要人为的决定使用哪个过滤器,是否需要池化层等,由网络自行决定这些参数,可以给网络添加所有可能值,将输出连接起来,网络自己学习它需要什么样的参数。因此可以使计算量大大减少,收敛更快。
由于使用Inception模块的计算量还是比较多的,上图中的网络是1.2亿次,所以可以在中间添加瓶颈层来减少运算量。下图的运算量为1240万次,约为上面运算量的十分之一。
2.8 Inception网络
下图就是一个Inception模块,一个Inception模块可能由很多不同的卷积核甚至池化层构成,它们都要采用same卷积方式,这样最后的输出才可以拼接在一起,为了避免池化层的通道数过多,在池化层后面还加上了一个1*1的卷积核来减少通道数。
下图是一个Inception神经网络,我们可以看到在下面的网络中有很多分支,这些分支的作用就是通过隐藏层来做出预测。它确保了即便是隐藏单元和中间层也参与了特征计算,它们也能预测图片的分类,它在Inception网络中起到了一种调整的效果,并且能够防止网络发生过拟合。
2.9 数据扩充
数据扩充(数据增强)可以弥补计算机视觉领域数据不足的问题。具体的数据扩充的方法如下:
镜像对称和随即裁剪
色彩转换