理解卷积神经网络?看这篇论文就够了

理解卷积神经⽹络?看这篇论⽂就够了
南洋理⼯⼤学的综述论⽂《Recent Advances in Convolutional Neural Networks》对卷积神经⽹络的各个组件以及进展情况进⾏总结和解读,其中涉及到 CNN 中各种重要层的数学原理以及各种激活函数损失函数。机器之⼼技术分析师对该论⽂进⾏了解读。
引⾔
近段时间来,深度 CNN 已经在多个深度学习应⽤领域取得了出⾊的表现,并且也有很好的泛化的能⼒。图像分类、⽬标检测、实例分割和场景理解等⼤量任务都使⽤ CNN 实现了当前最佳。这篇论⽂总结了从最初到现在的 CNN 发展情况,并给出了以下指⽰:
解释卷积层的数学原理
解释池化层的数学原理
介绍某些常⽤的激活函数
介绍某些常⽤的损失函数
简要介绍基于 CNN 的应⽤
卷积层的数学原理
从数学上看,第 l 层的第 k 个特征图的位置 (i,j) 处的特征值可以写成 z_{i,j,k}^l,可这样计算:
金花清感方
其中 w_k^l 是第 l 层的权重,b_k^l 是第 l 层的偏置。x_{i,j}^l 是第 l 层的 (i,j) 位置的输⼊图块。⼀个特征图的权重是共享的。CNN 的最⼤优势之⼀就是这种权重共享机制,因为参数更少时,它能显著降低计算复杂度,同时还能让训练和优化更简单。
基于这类基本卷积层的⼀种最著名的应⽤是⽤于 USPS 数字和 MNIST 识别的 LeNet-5,如下图所⽰:
鹅去氧胆酸
LeNet-5 由三类层构成,即卷积层、池化层和全连接层。卷积层的⽬标是学习更能代表输⼊的特征,池化层则是为了降低空间维度,全连接层则是⽤于类别预测。具体⽽⾔,卷积层由多个卷积核构成,这使其能够得到多个特征图,⽽且特征图的每个神经元都会连接到之前⼀层中的临近神经元区域,我们将这个区域称为之前⼀层中神经元的感受野(receptive field)。
如上图所⽰,⾸先通过求输⼊与⼀个学习后的卷积核的卷积,可以得到⼀个新的特征图,然后在卷积得到的结果上逐元素应⽤⾮线性激活。在当时,MNIST 或 USPS 数字的分类结果是很好的,即使现在也仍有很多研究者在使⽤它们来进⾏简单实验,以解释说明各种各样的算法。⼀般⽽⾔,任何类型的卷积⽹络都能在这些数据集上轻松实现 97%-98% 的准确度。
近段时间来,研究者还为卷积运算提出了⼀些新型的架构。其中最著名的⼀个是扩张卷积(dilated convolution)。扩张型 CNN 是 CNN 的⼀项近期进展,为卷积层引⼊了某些额外的超参数。通过在过滤器之间插⼊零,可以增⼤⽹络的感受野,使得⽹络能够覆盖更多相关信息。从数学上看,使⽤扩张⽅法的 1-D 扩张卷积可将信号 F 与⼤⼩为 r 的卷积核 k 进⾏卷积:(F_{*l} k)_t = sum_t (k_t * F_{t−l * t}),其中 *l 表⽰ l-扩张卷积。通过这种⽅式,该公式可以直接扩展成 2-D 扩张卷积。
上图展⽰了三个扩张卷积层,其中扩张因⼦ l 随每层⽽指数增⼤。中间特征图 F2 是由底部特征图 F1 通过应⽤ 1-扩张卷积⽽得到的,其中F2 中的每个元素都有⼀个⼤⼩为 3×3 的感受野。F3 是由 F2 通过应⽤ 2-扩张卷积⽽得到的。特征图 F4 是由 F3 通过应⽤ 4-扩张卷积⽽得到的。见红⾊轮廓。
池化层的数学原理
池化层是 CNN 中⼀个很重要的模块,这类层最重要的⽬标是降低特征图的⼤⼩,具体⽅式是通过使⽤某个函数来融合⼦区域,⽐如取平均或最⼤/最⼩值。池化的⼯作⽅式是在输⼊上滑动⼀个窗⼝并将该窗⼝中的内容送⼊池化函数。池化的⼯作⽅式⾮常类似于离散卷积,只是⽤某个其它函数替代了卷积核的线性组合。
描述沿某个⽅向 j 的池化层的性质的数学公式:
i_j:沿⽅向 j 的输⼊⼤⼩
k_j:沿⽅向 j 的池化窗⼝⼤⼩
s_j:沿⽅向 j 的步幅国光初级中学
所得到的沿⽅向 j 的输出⼤⼩ o_j 可以这样计算:o_j = (i_j - k_j) / s_j + 1,注意池化层通常不会使⽤零填充。
最⼤池化和平均池化可以归纳为 Lp 池化,可描述为:
其中 y_{i,j,k} 是池化算⼦在第 k 个特征图的位置 (i,j) 处的输出,a_{m,n,k} 是第 k 个特征图中的池化区域 R_{ij} 中位置 (m,n) 处的特征值。特别要指出,当 p=1 时,Lp 对应于平均池化,当 p 趋近⽆穷是,Lp 会变成最⼤池化。
池化还有⼀些其它选择,⽐如混合池化,其公式可写成:
这可被视为最⼤池化和平均池化的混合版本,其中 λ 是⼀个 0 到 1 之间的随机值,表明了使⽤平均池化和最⼤池化的位置。在实践中,这有望降低过拟合问题,且表现也会⽐单纯的最⼤池化或平均池化好⼀点。
某些常⽤的激活函数
ReLU
上图是 ReLU 函数。ReLU 激活函数定义如下:
其中 z_{i,j,k} 是第 k 通道中位置 (i,j) 处的激活函数的输⼊。ReLU 是⼀个逐元素的函数,会保留正的部分,并将负的部分变成零。相⽐于sigmoid 或 tanh,ReLU 中的 max(.) 运算能使其速度更快。ReLU 的缺点是其在 0 处的不连续性,这可能会导致在反向传播中出现梯度消失问题。
Leaky ReLU
哈拉丁
为了避免梯度消失问题,研究者提出了⼀种很重要的 ReLU 变体函数:Leaky ReLU。其数学形式为:
其中 λ 的取值范围是 (0,1)。Leaky ReLU 并不强制负的部分为零,相反它允许有⼀个较⼩的⾮零梯度。
PArametric ReLU
上图是 PReLU 的图⽰。PReLU 和 Leaky ReLU 的不同之处是参数 λ。⾸先来看 PReLU 的公式:
其中 λ_k 是第 k 个通道所学习到的参数。这些 λ 不是预定义的,⽽是通过数据学习到的,⽽且可学习的参数 λ_k 的数量正是⽹络中通道的数量。因为⽤于训练的额外参数很少,所以⽆需担⼼过拟合问题。它可以在反向传播过程中与其它参数⼀起同时优化。另外也还有很多其它有⽤的⾮线性激活函数,⽐如 ELU、Maxout 等。
某些常⽤的损失函数
hinge 损失
hinge 损失通常⽤于训练 SVM 及其变体。⽤于多类 SVM 的 hinge 损失定义如下:
其中 w 是可训练的权重;δ(y(i), j) 是指⽰函数,如果 y(i) = j,则其输出为 1,否则输出为 0。N 是样本数量,K 是类别数量。如果
p=1,则称为 L1-hinge 损失;如果 p=2,则称为 L2-hinge 损失。
softmax 损失
softmax 损失可以说是分类⽬标⽅⾯最流⾏的损失,其中 N 是图像数量,K 是类别数量,p_j 是第 j 类的概率,y 是基本真值。1{.} 是⼀个指⽰函数,如果 y_i == j,则输出 1,否则输出 0。
softmax 损失是⼀种泛化的 logistic 损失,能将预测结果转换成范围 (0,1) 之间的⾮负值并给出在各类别上的概率分布。
对⽐损失
对⽐损失常被⽤于训练⽤于图像检索或⼈脸验证的孪⽣⽹络。其基本思想是增⼤不相似配对之间的距离,减⼩相似配对之间的距离。数学公式可写成:
如果 y=1,则第⼆项为 0,总损失就来⾃第⼀项,这就意味着⽬标就成了降低相似配对之间的距离。如果 y=0,则第⼀项为 0,总损失就来⾃第⼆项,这就意味着⽬标就成了增⼤不相似配对之间的距离。注意,如果不相似配对之间的距离⼩于余量,则总损失会增⼤。
三重损失
三重损失是对对⽐损失的⼀种聪明的改进。假设我们有三张图像,这个三元组单元 (x_a, x_p, x_n) 包含⼀个锚图像、正例和负例。
上述公式是三重损失,其中 N 是图像数量,d_{a,p} 是锚图像与其正例图像之间的距离,d_{a,n} 是锚图像与其负例图像之间的距离,m 是余量。其⽬标是增⼤ d_{a,n},使得 d_{a,p} 和 d_{a,n} 之差⼤于余量 m。三重损失的⽬标是最⼩化锚图像和正例之间的距离,以及最⼤化负例和锚图像之间的距离。
flash小品
常⽤的损失函数有很多,⽐如 histogram 损失、lda 损失、KL-散度损失等。就不⼀⼀介绍了。
CNN 的应⽤
图像分类
利维爱
2012 年,Krizhevsky et al. [1] 提出了 LeNet-5 的⼀个扩展版 AlexNet,在 ILSVRC 2012 取得了最佳表现。上图即为其架构。由于计算时间限制,他们使⽤了⼀种并⾏结构来进⾏训练。⼀个 GPU 运⾏图中顶部的层部分,另⼀个 GPU 运⾏上图底部的层。
⽬标检测
2014-2017 年,微软和 Facebook 的研究者开发了多种基于 CNN 的⽬标检测⽅法,包括但不限于 R-CNN、SPP-Net、fast RCNN、faster RCNN 和 Mask RCNN。上图是基本的 R-CNN [2]。在从原始图像中提取出区域提议之后,它们会被调整为固定尺⼨并会被发送给⼀个预训练的 CNN。然后输出特征会得到优化,以便边界框回归和分类。
图像分割
图像分类可以粗略地分为两部分:形义分割和实例分割。其⽬标是预测单张图像中每个像素属于哪⼀类。CNN 可⽤于从像素层⾯或图块层⾯预测类别可能性。Long et al. [3] 为像素级分割提出了⼀种全卷积⽹络,如上图所⽰,该⽹络类似于⼀般的⽹络,只是最后⼀层不同,这⼀层被称为去卷积层。这⼀层的学习⽬标是上采样标签图的分辨率。其结果可以是⼀张输出图像,其中包含了密集的像素级预测。
基于 CNN 的⽅法可⽤于很多不同的领域,⽐如图像检索、⼈脸识别、⽂本分类、机器翻译、3D 重建
、视觉问答或图像绘制等。这⾥不可能全⾯覆盖。
分析师简评
尽管 CNN 表现出⾊⽽且泛化能⼒优异,但仍还有些问题仍待进⼀步研究。CNN 的训练需要⼤规模数据集和⼤量计算能⼒,但⼈⼯收集数据的成本很⾼⽽且易出错。因此,研究者们也在探索能利⽤⼤量⽆标注数据的弱监督学习和⽆监督学习。与此同时,为了加速训练过程,也有必要开发⾼效且可扩展的并⾏训练算法。最后且最重要的是如何解释⽹络以及理解⽹络的内在部分,因为⼈们如果不知道 CNN 表现优异的原因,⼈们不会愿意坐在基于 CNN 的⾃动驾驶汽车中或接受基于 CNN 的医疗技术的。

本文发布于:2024-09-22 01:52:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/475101.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   卷积   池化   函数   损失   训练   学习   距离
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议