[读书笔录]解析卷机神经网络(魏秀参)——第二章

解析卷积神经网络——基础理论篇

第二章 卷机神经网络基本部件

2.1 “端到端”思想(end-to-end manner)

深度学习的一个重要思想即”端到端”的学习方式,属于表示学习的一种。整个学习流程并不进行人为的子问题划分,而是完全交给深度学习模型直接学习从原始输入到期望输出的映射。相比分治策略,“端到端”的学习方式具有协同增效的优势,有更大可能获得全局最优解’
如图,对深度模型而言,其输入数据是未经任何人为加工的原始样本形式,后续则是堆叠在输入层上的众多操作层。这些操作层整体可看作一个复杂的函数 ,最终损失函数由数据损失(loss)和模型参数的正则化。
卷积神经网络基本流程图

2.2 网络符号定义

公式太多
卷积神经网络l层输入示意图

2.3 卷积层(convolution layer)

卷积层是卷积神经网络中的基础操作,甚至在网络最后起分类作用的全连接层在工程实现时也是由卷积操作替代的。

什么是卷积

卷积运算实际是分析数学中的一种运算方式,在卷积神经网络中通常是仅涉及离散卷积的情形。
(ps:此处原文介绍繁琐,此处替换为我第一次理解时看到的图,理解卷积工作原理。)
假设输入图像(输入数据)为如下图左侧的5×5矩阵,其对应的卷积核(亦称卷积参数convolution-kernel或convolution-filter)为一个3×3的矩阵。同时,假定卷积操作时每做一次卷积,卷积核移动一个像素位置,即卷积步长(stride)为 1。
卷积核按照步长大小在输入图像上从左至右自上而下依次将卷积操作进行下去,最终输出3×3大小的卷积特征,同时该结果将作为下一层操作的输入。
卷积层工作原理图
与之类似,若三维情形下的卷积层 l 的输入张量为 x l ∈ R Hl×W l ×D l,该层l卷积核为 f l ∈ R H×W ×Dl 。三维输入时卷积操作实际只是将二维卷积扩展到了对应位置的所有通道上(即 D l ),最终将一次卷积处理的所有 HW D l 个元素求和作为该位置卷积结果。如下图所示。
这里写图片描述
公式有点多

卷积操作的作用

可以看出卷积是一种局部操作,通过一定大小的卷积核作用于局部图像区域获得图像的局部信息。
本节以三种边缘卷积核(亦可称为滤波器)来说明卷积神经网络中卷积操作的作用。如图,我们在原图上分别作用整体边缘滤波器、横向边缘滤波器和纵向边缘滤波器,这三种滤波器(卷积核)分别为下式Ke,Kh,Kv :
这里写图片描述

试想,若原图像素 (x, y) 处可能存在物体边缘,则其四周 (x−1, y),(x+1, y),(x, y − 1),(x, y + 1) 处像素值应与 (x, y) 处有显著差异。此时,如作用以整体边缘滤波器 K e ,可消除四周像素值差异小的图像区域而保留显著差异区域,以此可检测出物体边缘信息。同理,类似 Kh 和 Kv 的横向、纵向边缘滤波器可分别保留横向、纵向的边缘信息。
这里写图片描述
事实上,卷积网络中的卷积核参数是通过网络训练学出的,除了可以学到类似的横向、纵向边缘滤波器,还可以学到任意角度的边缘滤波器。当然,不仅如此,检测颜色、形状、纹理等等众多基本模式(pattern)的滤波器(卷积核)都可以包含在一个足够复杂的深层卷积神经网络中。通过“组合”这些滤波器(卷积核)以及随着网络后续操作的进行,基本而一般的模式会逐渐被抽象为具有高层语义的“概念”表示,并以此对应到具体的样本类别。

2.4 汇合层(pooling layer)

通常使用的汇合操作为平均值池化(acreage-pooling)和最大值汇合(max-pooling),需要指出的是,同卷积层操作不同,汇合层不包含需要学习的参数。使用时仅需指定汇合类型(average 或 max 等)、汇合操作的核大小( kernel size )和池化操作的步长(stride)等超参数即可。

什么是汇合

这里写图片描述
这里写图片描述
除了最常用的上述两种汇合操作外,随机汇合(stochastic-pooling)则介于二者之间。对随机汇合而言,元素值大的响应(activation)被选中的概率也大,反之易然。可以说,在全局意义上,随机汇合与平均值汇合近似;在局部意义上,则服从最大值汇合的准则。

汇合操作的作用

汇合操作实际上就是一种“降采样”(down-sampling)操作。另一方面,汇合也看成是一个用 p-范数(p-norm) 作为非线性映射的“卷积”操作,特别的,当 p 趋近正无穷时就是最常见的最大值汇合。汇合层的引入是仿照人的视觉系统对视觉输入对象进行降维(降采样)和抽象。在卷积神经网络过去的工作中,研究者普遍认为汇合层有如下三种功效:

  1. 特征不变性( feature invariant )。汇合操作使模型更关注是否存在某些特征而不是特征具体的位置。可看作是一种很强的先验,使特征学习包含某种程度自由度,能容忍一些特征微小的位移。
  2. 特征降维。由于汇合操作的降采样作用,汇合结果中的一个元素对应于原输入数据的一个子区域( sub-region ) ,因此汇合相当于在空间范围内做了维度约减(spatially dimension reduction ),从而使模型可以抽取更广范围的特征。同时减小了下一层输入大小,进而减小计算量和参数个数。
  3. 在一定程度防止过拟合( overfitting ),更方便优化。

2.5 激活函数(activation function)

激活函数(activation function)层又称非线性映射(non-linearity mapping)层,激活函数的引入为的是增加整个网络的表达能力(即非线性)。否则,若干线性操作层的堆叠仍然只能起到线性映射的作用,无法形成复杂的函数。在实际使用中,有多达十几种激活函数可供选择。
本节以Signoid型激活函数和ReLU函数为例,介绍涉及激活函数的若干基本概念和问题。直观上,激活函数模拟了生物神经元特性:接受一组输入信号并产生输出。在神经科学中,生物神经元通常有一个阈值,当神经元所获得的输入信号累积效果超过了该阈值,神经元就被激活而处于兴奋状态;否则处于抑制状态。

在人工神经网络中,因Signoid型函数可以模拟这一生物过程,从而在神经网络发展历史进程中曾处于相当重要的地位。
Signoid型函数也称Logistic函数,定义如下:
这里写图片描述
这里写图片描述
很明显能看出,经过Signoid型函数作用后,输出响应的值域被压缩到 [0, 1] 之间,而0对应了生物神经元的“抑制状态”,1则恰好对应了“兴奋状态”。不过再深入的观察还能发现在Signoid函数两端,对于大于 5(或小于 −5)的值无论多大(或多小)都会压缩到 1(或0)。
如此便带来一个严重问题,即梯度的“饱和效应”(saturation effect)。对照 Signoid型函数的梯度图,大于5(或小于 −5)部分的梯度接近0,这会导致在误差反向传播过程中导数处于该区域的误差将很难甚至根本无法传递至前层,进而导致整个网络无法训练(导数为 y 将无法更新网络参数)。此外,在参数初始化的时候还需特别注意,要避免初始化参数直接将输出值域带入这一区域:一种可能的情形是当初始化参数过大时,将直接引发梯度饱和效应而无法训练。

为了避免梯度饱和效应的发生,Nair 和 Hinton于2010年将修正线性单元(Rectified Linear Unit 简称ReLU)引入神经网络 。ReLU 函数是目前深度卷积神经网络中最为常用的激活函数之一。另外,根据 ReLU函数改进的其他激活函数也展示出更好的性能(请参见第 3章内容)。
ReLU 函数实际上是一个分段函数,其定义为:
这里写图片描述
这里写图片描述
由图可见,ReLU 函数的梯度在 x ≥ 0 时为 1,反之为 0。对 x ≥ 0 部分完全消除了Sigmoid型函数的梯度饱和效应。同时,在实验中还发现相比Sigmoid 型函数,ReLU 函数有助于随机梯度下降方法收敛,收敛速度约快 6倍左右。正是由于 ReLU 函数的这些优质特性,ReLU 函数已成为目前卷积神经网络及其他深度学习模型(如递归神经网络RNN等)激活函数的首选之一。

2.6 全连接层(fully connected layers)

全连接层在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、汇合层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的特征表示映射到样本的标记空间的作用。
在实际使用中,全连接层可由卷积操作实现:对前层是全连接的全连接层可以转化为卷积核为 1 × 1 的卷积;而前层是卷积层的全连接层可以转化为卷积核为h × w的全局卷积,h 和 w 分别为前层卷积输出结果的高和宽。
以经典的VGG-16网络模型为例,对于 224 × 224 × 3 的图像输入,最后一层卷积层(指 VGG-16中的pooling5 ) 可得输出为 7 × 7 × 512 的特征张量,若后层是一层含 4096 个神经元的全连接层时,则可用卷积核为 7 × 7 × 512 × 4096 的全局卷积来实现这一全连接运算过程,其中该卷积核具体参数如下:

% the first fully connected layer
filter_size = 7; padding = 0; stride = 1;
D_in = 512; D_out = 4096; 

经过此卷积操作后可得 1 × 1× 4096 的输出。如需再次叠加一个含 2048个神
经元的全连接层,可设定以下参数的卷积层操作。

% the second fully connected layer
filter_size = 1; padding = 0; stride = 1;
D_in = 4096; D_out = 2048; 

2.7目标函数

全连接层是将网络特征映射到样本的标记空间做出预测,目标函数的作用则用来衡量该预测值与真实样本标记之间的误差。
在当下的卷积神经网络中,交叉熵损失函数和l2损失函数分别是分类问题和回归问题中最为常用的目标函数。

2.8小结

  1. 本章介绍了深度学习中的关键思想——“端到端”学习方式;
  2. 介绍了卷积神经网络的基本部件:卷积操作、汇合操作、激活函数(非线性映射)、全连接层和目标函数。整个卷积神经网络通过这些基本部件的“有机组合”即可实现将原始数据映射到高层语义、进而得到样本预测标记的功能。下一章将介绍卷积神经网络结构中的几个重要概念以及如何对这些部件进行”有机组合“。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值