1700538511
1700538512
1700538513
1700538514
图9.15 全连接层结构示意图
1700538515
1700538516
而在卷积神经网络中,卷积核尺度远小于输入的维度,这样每个输出神经元仅与前一层特定局部区域内的神经元存在连接权重(即产生交互),我们称这种特性为稀疏交互,如图9.16所示。可以看到与稠密的连接结构不同,神经元si仅与前一层中的xi−1、xi和xi+1相连。具体来讲,假设网络中相邻两层分别具有m个输入和n个输出,全连接网络中的权值参数矩阵将包含m×n个参数。对于稀疏交互的卷积网络,如果限定每个输出与前一层神经元的连接数为k,那么该层的参数总量为k×n。在实际应用中,一般k值远小于m就可以取得较为可观的效果;而此时优化过程的时间复杂度将会减小几个数量级,过拟合的情况也得到了较好的改善。
1700538517
1700538518
1700538519
1700538520
1700538521
图9.16 卷积层结构示意图
1700538522
1700538523
稀疏交互的物理意义是,通常图像、文本、语音等现实世界中的数据都具有局部的特征结构,我们可以先学习局部的特征,再将局部的特征组合起来形成更复杂和抽象的特征。以人脸识别为例,最底层的神经元可以检测出各个角度的边缘特征(见图9.17(a));位于中间层的神经元可以将边缘组合起来得到眼睛、鼻子、嘴巴等复杂特征(见图9.17(b));最后,位于上层的神经元可以根据各个器官的组合检测出人脸的特征(见图9.17(c))。
1700538524
1700538525
1700538526
1700538527
1700538528
图9.17 人脸识别中不同卷积层的可视化
1700538529
1700538530
■ 参数共享(Parameter Sharing)
1700538531
1700538532
参数共享是指在同一个模型的不同模块中使用相同的参数,它是卷积运算的固有属性。全连接网络中,计算每层的输出时,权值参数矩阵中的每个元素只作用于某个输入元素一次;而在卷积神经网络中,卷积核中的每一个元素将作用于每一次局部输入的特定位置上。根据参数共享的思想,我们只需要学习一组参数集合,而不需要针对每个位置的每个参数都进行优化,从而大大降低了模型的存储需求。
1700538533
1700538534
参数共享的物理意义是使得卷积层具有平移等变性。假如图像中有一只猫,那么无论它出现在图像中的任何位置,我们都应该将它识别为猫,也就是说神经网络的输出对于平移变换来说应当是等变的。特别地,当函数f (x)与g(x)满足f (g(x))=g( f (x))时,我们称f (x)关于变换g具有等变性。将g视为输入的任意平移函数,令I表示输入图像(在整数坐标上的灰度值函数),平移变换后得到I’=g(I)。例如,我们把猫的图像向右移动l像素,满足I’(x,y)=I(x−l,y)。我们令f表示卷积函数,根据其性质,我们很容易得到g( f(I))=f (I’)=f (g(I ))。也就是说,在猫的图片上先进行卷积,再向右平移l像素的输出,与先将图片向右平移l像素再进行卷积操作的输出结果是相等的。
1700538535
1700538536
问题2 常用的池化操作有哪些?池化的作用是什么?
1700538537
1700538538
难度:★★★☆☆
1700538539
1700538540
分析与解答
1700538541
1700538542
常用的池化操作主要针对非重叠区域,包括均值池化(mean pooling)、最大池化(max pooling)等。其中均值池化通过对邻域内特征数值求平均来实现,能够抑制由于邻域大小受限造成估计值方差增大的现象,特点是对背景的保留效果更好。最大池化则通过取邻域内特征的最大值来实现,能够抑制网络参数误差造成估计均值偏移的现象,特点是更好地提取纹理信息。池化操作的本质是降采样。例如,我们可以利用最大池化将4×4的矩阵降采样为2×2的矩阵,如图9.18所示。图中的池化操作窗口大小为2×2,步长为2。每次在2×2大小的窗口上进行计算,均值池化是求窗口中元素的均值,最大池化则求窗口中元素的最大值;然后将窗口向右或向下平移两格,继续操作。
1700538543
1700538544
1700538545
1700538546
1700538547
图9.18 池化操作示意图
1700538548
1700538549
此外,特殊的池化方式还包括对相邻重叠区域的池化以及空间金字塔池化。相邻重叠区域的池化,顾名思义,是采用比窗口宽度更小的步长,使得窗口在每次滑动时存在重叠的区域。空间金字塔池化主要考虑了多尺度信息的描述,例如同时计算1×1、2×2、4×4的矩阵的池化并将结果拼接在一起作为下一网络层的输入。
1700538550
1700538551
池化操作除了能显著降低参数量外,还能够保持对平移、伸缩、旋转操作的不变性。平移不变性是指输出结果对输入的小量平移基本保持不变。例如,输入为(1,5,3),最大池化将会取5,如果将输入右移一位得到(0,1,5),输出的结果仍将为5。对伸缩的不变性(一般称为尺度不变性)可以这样理解,如果原先神经元在最大池化操作之后输出5,那么在经过伸缩(尺度变换)之后,最大池化操作在该神经元上很大概率的输出仍然是5。因为神经元感受的是邻域输入的最大值,而并非某一个确定的值。旋转不变性可以参照图9.19。图中的神经网络由3个学得的过滤器和一个最大池化层组成。这3个过滤器分别学习到不同旋转方向的“5”。当输入中出现“5”时,无论进行何种方向的旋转,都会有一个对应的过滤器与之匹配并在对应的神经元中引起大的激活。最终,无论哪个神经元获得了激活,在经过最大池化操作之后输出都会具有大的激活。
1700538552
1700538553
1700538554
1700538555
1700538556
图9.19 池化操作的旋转不变性
1700538557
1700538558
问题3 卷积神经网络如何用于文本分类任务?
1700538559
1700538560
难度:★★★☆☆
[
上一页 ]
[ :1.700538511e+09 ]
[
下一页 ]