卷积神经网络(二)——LetNet-5、AlexNet、VGG-16、残差网络

卷积神经网络(二)

——LetNet-5、AlexNet、VGG-16、残差网络

(原创内容,转载请注明来源,谢谢)

一、概述

本文主要介绍几种卷积网络模型,学习它们的结构、组成、特点等。

二、LetNet-5

如上图所示,LeNet-5是较早的一个卷积神经网络,在1998年的时候被提出。这个网络一大特点,是那时候计算机处理速度不快,因此网络整个的设计都比较小,总参数约6万个。

这个设计即之前提到的,随着网络层次的加深,宽度会逐渐降低,而信道逐渐增多。另外,这个网络用的池化层是平均池化层,这在当时比较流行。

特殊之处在于,在每个卷积层+池化层之后,都会加一个sigmoid层,用于修正输出结果。现在更多使用relu来修正。

三、AlexNet

AlexNet和上面的网络相比,则大的多,参数一共6000万,这里就用到了最大值池化层、same padding、softmax等现在常用的处理方法。

这个网络比较特殊的地方在于,设计的时候用了两个GPU进行处理,网络的每一层都分布在两个处理器中,加快了处理结果。

另外,这个模型用到了局部响应归一化层(LRN)的概念。

LRN简介:

做法:对图像的面上面的每个点,往纵向深度延伸,对延伸方向的点,进行归一化处理。

目的:对图像的每个位置来说,不要太多的高激活神经元。

缺点:经过后面的研究,发现这个很多情况下并不起作用,因此这个层并不常用。

四、VGG-16

VGG-16是一个非常对称的网络,它的每一层都是成倍的增加或减少,有固定的卷积模型和池化模型。

卷积层模型:使用3*3滤波器,步长为1,same padding,且个数是64/128/256三种。

池化层模型:使用2*2滤波器,步长为2,最大值池化。

这个模型参数非常多,有1.38亿个参数,计算量非常大,但是其卷积的数量是非常的工整。

五、残差网络

1、背景

上面的几种模型,主要的缺点是层数多的情况下,容易发生梯度爆炸或者梯度消失,影响训练。

为了解决深度学习中梯度爆炸和梯度消失,下面引入了残差网络(Residual networks——ResNet)。

主要是通过跳跃连接的方式,把本层的结果直接反馈给更深层的网络。

2、残差块

残差网络是由若干残差块组成,这里先介绍残差块(residual block)。

如上图所示,现在考虑第l、l+1、l+2层。a[l]是第l层的输出,在普通的神经网络中,要经过l+1层的计算和放大,才会进入到l+2层。

而在残差块中,除了上面的正常的计算,还会把a[l]直接传输到l+2层,使得a[l+2]=g(z[l+2]+a[l]),即除了第l+2层的z,还考虑了第l层的a。

这种连接方式,称为跳远连接(skip connection),或简称为捷径(short cut)。

3、残差网络

残差网络则是由若干残差块组成,每次都是跳跃1层,抵达下一层,即跳跃都是隔一层的跳跃。

对于普通的神经网络,理论上,层次越多,训练误差应该越低,而实际上层次太多,会发生梯度爆炸和梯度消失,反而导致训练误差变多,加入了残差块则可以解决此问题。

4、残差块原理

考虑一个大的网络,加入一个残差块(即加入两层的网络),公式是a[l+2]=g(z[l+2]+a[l])=g(w[l+2]*a[l+1]+b[l+2]+a[l]),现在不考虑b,假设发生梯度消失,则w[l+2]=0,此时a[l+2]=g(a[l]),相当于把第l层的输出直接经过relu传输出去。

因此,残差块对神经网络没有负面影响。另外,多了两层隐藏层,在实际上不仅没有负面影响,而且是有利的。

这里需要说明的是,要用残差网络,会涉及到大量的same padding,因为第l层和第l+2层的输出要是一致的。如果需要池化,缩减输出,则需要在计算第l+2层的a时,给第l层的a乘以一个系数矩阵Ws,以便于维度一致,如下图所示:

5、普通网络与残差网络

综上,普通网络隔层跳跃,则可以形成残差网络。

六、1*1卷积

1、简介

1*1卷积,即卷积的滤波器是1*1的。考虑到卷积的计算方式,当使用1*1卷积,相当于把原来的矩阵放大某一倍数,如1*1的矩阵的元素是2,则相当于把原矩阵的每一个元素放大两倍。

1*1滤波器的功能主要有两个:1)相当于给神经网络加入ReLU非线性函数,等同于在网络中的网络;2)可以起到压缩信道的作用。

2、网络中的网络

现假设滤波器是1*1*32,则相当于给原来的矩阵进行一次relu计算(梳理卷积计算规则后,很容易得出这个结论),并输出成1个点。

而多个1*1滤波器,则形成一个多层的输出结果。

3、压缩信道

当一个28*28*192的矩阵,要压缩信道成28*28*32,则可以使用32个1*1的卷积矩阵进行卷积运算即可。

七、总结

这里介绍了各种现成的卷积矩阵,主要目的在于了解现在流行的卷积神经网络设计方案,以便后续设计网络时候拓宽思路。

——written by linhxx 2018.03.08

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180308G0M9XK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券