2020-2-20 深度学习笔记9 - 卷积网络3(基本卷积函数的变体,结构化输出,数据类型,高效的卷积算法,随机或无监督的特征)

274 篇文章 24 订阅

第九章 卷积网络

官网

2020-2-19 深度学习笔记9 - 卷积网络1(卷积运算,动机-稀疏交互、参数共享、等变表示)
2020-2-19 深度学习笔记9 - 卷积网络2(池化,卷积与池化作为一种无限强的先验)

基本卷积函数的变体

当在神经网络讨论卷积时,我们通常不是特指数学文献中使用的那种标准的离散卷积运算。

  • 首先,当我们提到神经网络中的卷积时,我们通常是指由多个并行卷积组成的运算。
    这是因为具有单个核的卷积只能提取一种类型的特征,尽管它作用在多个空间位置上。 我们通常希望网络的每一层能够在多个位置提取多种类型的特征。

  • 另外,输入通常也不仅仅是实值的网格,而是由一系列观测数据的向量构成的网格。

    • 例如:一幅彩色图像在每一个像素点都会有红绿蓝三种颜色的亮度。在多层的卷积网络中,第二层的输入是第一层的输出,通常在每个位置包含多个不同卷积的输出。当处理图像时,我们通常把卷积的输入输出都看作是3维的张量,其中一个索引用于标明不同的通道(例如红绿蓝),另外两个索引标明在每个通道上的空间坐标。
  • 卷积网络通常使用多通道的卷积。只有当其中的每个运算的输出和输入具有相同的通道数时,这些多通道的运算才是可交换的。

  • 我们有时会希望跳过核中的一些位置来降低计算的开销(但是提取特征没有先前那么好了)。我们可以把这一过程看作是对全卷积函数输出的下采样(downsampling)。

    • 如果我们只想在输出的每个方向上每间隔s个像素进行采样。我们把s称为下采样卷积的步幅(stride)。当然也可以对每个移动方向定义不同的步幅。

在任何卷积网络的实现中都有一个重要性质,那就是能够隐含地对输入V用零进行填充(pad)使得它加宽。如果没有这个性质,表示的宽度在每一层就会缩减,缩减的幅度是比核少一个像素这么多。对输入进行零填充允许我们对核的宽度和输出的大小进行独立的控制。如果没有零填充,我们就被迫面临二选一的局面,要么选择网络空间宽度的快速缩减,要么选择一个小型的核----这两种情境都会极大得限制网络的表示能力。

有三种零填充设定的情况值得注意。

  • 第一种是无论怎样都不使用零填充的极端情况,并且卷积核只允许访问那些图像中能够完全包含整个核的位置。在MATLAB的术语中,这称为有效(valid)卷积
    • 输出的大小在每一层都会缩减。如果输入的图像宽度是m,核的宽度是k,那么输出的宽度就会变成m-k+1。如果卷积核非常大的话缩减率会非常显著。当层数增加时,网络的空间维度最终会缩减到1*1,这种情况下增加的层就不可能进行有意义的卷积了。
  • 第二种特殊的情况是只进行足够的零填充来保持输出和输入具有相同的大小。在MATLAB的术语中,这称为相同(same)卷积
    • 这种情况中,输入像素中靠近边界的部分相比于中间部分对于输出像素的影响更小。这可能会导致边界像素存在一定程度的欠表示
  • 第三种极端情况在MATLAB中称为全(full)卷积。它进行了足够多的零填充使得每个像素在每个方向上恰好被访问了k次,最终输出图像的宽度为m+k -1。
    • 在这种情况下,输出像素中靠近边界的部分相比于中间部分是更少像素的函数。这将导致学得一个在卷积特征映射的所有位置都表现不错的单核更为困难。

通常零填充的最优数量(对于测试集的分类正确率)处于”有效卷积”和”相同卷积”之间的某个位置。

卷积、从输出到权重的反向传播和从输出到输入的反向传播,对于训练任意深度的前馈卷积网络,以及训练带有(基于卷积的转置的)重构函数的卷积网络,这三种运算都足以计算它们所需的所有梯度。

结构化输出

卷积网络可以用于输出高维的结构化对象,而不仅仅是预测分类任务的类标签或回归任务的实数值。通常这个对象就是个张量,由标准卷积层产生。

经常出现的问题是输出平面比输入平面小

用于对图像中单个对象分类的常用结构中,网络空间维数的最大减少来源于使用大步幅的池化层。如果希望产生与输入大小相似的输出映射,有如下方法:
1)避免将池化放在一起
2)单纯地产生一张低分辨率的标签网格
原则上可以使用单位步幅的池化操作。

循环卷积网络通过一个通道的输出作为创建新估计的输入(RNN的思想)。

数据类型

卷积网络使用的数据通常包含多个通道,每个通道是时间上或空间中某一点的不同观测量。

下表是不同维数和通道数的数据类型的例子

单通道多通道
1维音频波形:卷积的轴对应于时间。我们将时间离散化并且在每个时间点测量一次波形的振幅。骨架动画(skeleton animation)数据:计算机渲染的三维角色动画是通过随时间调整“骨架”的姿势而生成的。在每个时间点,角色的姿势通过骨架中的每个关节的角度来描述。我们输入到卷积模型的数据的每个通道,表示一个关节关于一个轴的角度
2维已经使用傅里叶变换预处理过的音频数据:我们可以将音频波形变换成二维张量,不同的行对应不同的频率,不同的列对应不同的时间点。在时间轴上使用卷积使模型等效于在时间上移动。在频率轴上使用卷积使得模型等效于在频率上移动,这使得在不同八度音阶中播放的相同旋律产生相同的表示,但处于网络输出中的不同高度彩色图像数据:其中一个通道包含红色像素,另一个包含绿色像素,最后一个包含蓝色像素。在图像的水平轴和竖直轴上移动卷积核,赋予了两个方向上平移等变性
3维体积数据:这种数据一般来源于医学成像技术,例如CT扫描等。彩色视频数据:其中一个轴对应着时间,另一个轴对应着视频帧的高度,最后一个对应着视频帧的宽度。

卷积网络的一个优点是可以处理具有可变的空间尺度的输入。 这些类型的输入不能用传统的基于矩阵乘法的神经网络来表示。 这为卷积网络的使用提供了令人信服的理由,即使当计算开销和过拟合都不是主要问题时。

注意,使用卷积处理可变尺寸的输入,仅对输入是因为包含对同种事物的不同量的观察(时间上不同长度的记录,空间上不同宽度的观察等)而导致的尺寸变化这种情况才有意义。

高效的卷积算法

现代卷积网络的应用通常需要包含超过百万个单元的网络。 利用并行计算资源的强大实现是很关键的。在很多情况下,也可以通过选择适当的卷积算法来加速卷积。

卷积等效于使用傅里叶变换将输入与核都转换到频域、执行两个信号的逐点相乘,再使用傅里叶逆变换转换回时域。对于某些问题的规模,这种算法可能比离散卷积的朴素实现更快。

随机或无监督的特征

通常,卷积网络训练中最昂贵的部分是学习特征。输出层的计算代价通常相对不高,因为在通过若干层池化之后作为该层输入的特征的数量较少。当使用梯度下降执行监督训练时,每步梯度计算需要完整地运行整个网络的前向传播和反向传播。减少卷积网络训练成本的一种方式是使用那些不是由监督方式训练得到的特征

有三种基本策略可以不通过监督训练而得到卷积核。

  • 一种是简单地随机初始化它们
  • 一种是手动设计它们,例如设置每个核在一个特定的方向或尺度来检测边缘
  • 最后,可以使用无监督的标准来学习核。例如,将k均值聚类算法应用于小图像块,然后使用每个学得的中心作为卷积核。使用无监督的标准来学习特征,使得它们能够与位于网络结构顶层的分类层相互独立地确定。然后只需提取一次全部训练集的特征,构造用于最后一层的新训练集。

随机过滤器经常在卷积网络中表现得出乎意料得好。由卷积和随后的池化组成的层,当赋予随机权重时,自然地变得具有频率选择性和平移不变性。他们认为这提供了一种廉价的方法来选择卷积网络的结构:首先通过仅训练最后一层来评估几个卷积网络结构的性能,然后选择最好的结构并使用更昂贵的方法来训练整个网络。

一个中间方法是学习特征,但是使用那种不需要在每个梯度计算步骤中都进行完整的前向和反向传播的方法。与多层感知机一样,我们使用贪心逐层预训练,单独训练第一层,然后一次性地从第一层提取所有特征,之后用那些特征单独训练第二层,以此类推。大多数卷积网络以纯粹监督的方式训练,在每次训练迭代中使用通过整个网络的完整的前向和反向传播。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值