卷积神经网络

  卷积神经网络( Convolutional Neural Network , CNN 或 ConvNet )是一种具有局部连接、权重共享等特性的深层前馈神经网络.

  目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的前馈神经网络.卷积神经网络有三个结构上的特性:局部连接、权重共享以及汇聚.

  卷积神经网络主要使用在图像和视频分析的各种任务(比如图像分类、人脸识别、物体识别、图像分割等)上,其准确率一般也远远超出了其他的神经网络模型.近年来卷积神经网络也广泛地应用到自然语言处理、推荐系统等领域.

5.1 卷积

  卷积( Convolution ),也叫褶积,是分析数学中一种重要的运算.在信号处理或图像处理中,经常使用一维或二维卷积.

一维卷积:

二维卷积:

  在图像处理中,卷积经常作为特征提取的有效方法.一幅图像在经过卷积操作后得到结果称为特征映射( Feature Map ).

  在具体实现上,一般会以互相关操作来代替卷积,从而会减少一些不必要的操作或开销.互相关和卷积的区别仅仅在于卷积核是否进行翻转.因此互相关也可以称为不翻转卷积.

  在卷积的标准定义基础上,还可以引入卷积核的滑动步长和零填充来增加卷积的多样性,可以更灵活地进行特征抽取.

  • 步长( Stride )是指卷积核在滑动时的时间间隔.
  • 零填充( Zero Padding )是在输入向量两端进行补零.

  假设卷积层的输入神经元个数为 M,卷积大小为 K ,步长为 S ,在输入两端各填补 P 个 0 ( zero padding ),那么该卷积层的神经元数量为 (M −K +2P)/S +1

5.2 卷积神经网络

  卷积神经网络一般由卷积层、汇聚层和全连接层构成.

根据卷积的定义,卷积层有两个很重要的性质:

  • 局部连接:在卷积层(假设是第 l 层)中的每一个神经元都只和前一层(第 l − 1层)中某个局部窗口内的神经元相连,构成一个局部连接网络.
  • 权重共享:权重共享可以理解为一个卷积核只捕捉输入数据中的一种特定的局部特征.

5.2.1 卷积层

  卷积层的作用是提取一个局部区域的特征,不同的卷积核相当于不同的特征提取器.

  特征映射( Feature Map )为一幅图像(或其他特征映射)在经过卷积提取到的特征,每个特征映射可以作为一类抽取的图像特征.

假设一个卷积层的结构如下:

  1. 输入特征组: X ∈ R M × N × D X∈R^{M×N×D} XRM×N×D为三维张量.其中每个切片矩阵 X d ∈ R M × N X^d∈R^{M×N} XdRM×N.
  2. 输出特征映射组: Y ∈ R M ′ × N ′ × P Y∈R^{M'×N'×P} YRM×N×P为三维张量.其中每个切片矩阵 Y p ∈ R M ′ × N ′ Y^p∈R^{M'×N'} YpRM×N.
  3. 卷积核: W ∈ R U × V × P × D W∈R^{U×V×P×D} WRU×V×P×D为四维张量,其中每个切片矩阵 W p . d ∈ R U × V W^{p.d}∈R^{U×V} Wp.dRU×V 为一个二维卷积核

图 5.6 给出卷积层的三维结构表示.

整个计算过程如图 5.7 所示.

  在输入为 X ∈ R M × N × D X∈R^{M×N×D} XRM×N×D,输出为 Y ∈ R M ′ × N ′ × P Y∈R^{M'×N'×P} YRM×N×P的卷积层中,每一个输出特征映射都需要D 个卷积核以及一个偏置.假设每个卷积核的大小为 U × V ,那么共需要 P × D × (U × V) + P 个参数.

5.2.2 汇聚层

  汇聚层( Pooling Layer )也叫子采样层( Subsampling Layer ),其作用是进行特征选择,降低特征数量,从而减少参数数量.

  常用的汇聚函数有两种:最大汇聚和平均汇聚.

5.2.3 卷积网络的整体结构

  一个典型的卷积网络是由卷积层、汇聚层、全连接层交叉堆叠而成.

目前常用的卷积网络整体结构如图 5.9 所示.

  目前,卷积网络的整体结构趋向于使用更小的卷积核(比如 1 × 1 和 3 × 3 )以及更深的结构(比如层数大于 50 ).

5.3 几种典型的卷积神经网络

5.3.1 LeNet-5

  LeNet-5虽然提出的时间比较早,但它是一个非常成功的神经网络模型.基于 LeNet-5 的手写数字识别系统在 20 世纪 90 年代被美国很多银行使用,用来识别支票上面的手写数字. LeNet-5 的网络结构如图 5.10 所示.

  LeNet-5 共有 7 层,接受输入图像大小为 32 × 32 = 1024 ,输出对应 10 个类别的得分

5.3.2 AlexNet

  AlexNet是第一个现代深度卷积网络模型.AlexNet 的结构如图 5.12 所示,包括 5 个卷积层、 3 个汇聚层和 3 个全连接层(其中最后一层是使用 Softmax 函数的输出层).

  AlexNet 的输入为 224×224×3 的图像,输出为 1000 个类别的条件概率,

5.3.3 Inception 网络

  在卷积网络中,如何设置卷积层的卷积核大小是一个十分关键的问题.在Inception 网络中,一个卷积层包含多个不同大小的卷积操作,称为 Inception 模块. Inception 网络是由有多个 Inception 模块和少量的汇聚层堆叠而成.

5.3.4 残差网络

  残差网络( Residual Network , ResNet )通过给非线性的卷积层增加直连(ZShortcut Connection )(也称为残差连接( Residual Connection ))的方式来提高信息的传播效率.

  如果将目标函数拆分成两部分:恒等函数( Identity Function ) x x x和残差函数(esidue Function ) h ( x ) − x ℎ(x)− x h(x)x

  根据通用近似定理,一个由神经网络构成的非线性单元有足够的能力来近似逼近原始目标函数或残差函数,但实际中后者更容易学习 .

  图 5.15 给出了一个典型的残差单元示例.残差单元由多个级联的(等宽)卷积层和一个跨层的直连边组成,再经过 ReLU 激活后得到输出.

  残差网络就是将很多个残差单元串联起来构成的一个非常深的网络.和残差网络类似的还有 Highway Network.

5.4 其他卷积方式

5.4.1 转置卷积

  我们将低维特征映射到高维特征的卷积操作称为转置卷积( Transposed Convolution ) ,也称为反卷积( Deconvolution ) .

  我们可以通过减少转置卷积的步长 S < 1来实现上采样操作,大幅提高特征维数.步长 S < 1 的转置卷积也称为微步卷积.

5.4.2 空洞卷积

  对于一个卷积层,如果希望增加输出单元的感受野,一般可以通过三种方式
实现:

  1. 增加卷积核的大小;
  2. 增加层数,比如两层 3 × 3 的卷积可以近似一层 5 × 5 卷积的效果;
  3. 在卷积之前进行汇聚操作.

前两种方式会增加参数数量,而第三种方式会丢失一些信息.

  空洞卷积( Atrous Convolution )是一种不增加参数数量,同时增加输出单元感受野的一种方法,也称为膨胀卷积( Dilated Convolution ).

图 5.18 给出了空洞卷积的示例.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值