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
难度:★★★☆☆
1700538561
1700538562
分析与解答
1700538563
1700538564
卷积神经网络的核心思想是捕捉局部特征,起初在图像领域取得了巨大的成功,后来在文本领域也得到了广泛的应用。对于文本来说,局部特征就是由若干单词组成的滑动窗口,类似于N-gram。卷积神经网络的优势在于能够自动地对N-gram特征进行组合和筛选,获得不同抽象层次的语义信息。由于在每次卷积中采用了共享权重的机制,因此它的训练速度相对较快,在实际的文本分类任务中取得了非常不错的效果。
1700538565
1700538566
图9.20是一个用卷积神经网络模型进行文本表示,并最终用于文本分类的网络结构[20]。
1700538567
1700538568
1700538569
1700538570
1700538571
图9.20 卷积网络在文本分类任务上的应用
1700538572
1700538573
(1)输入层是一个N×K的矩阵,其中N为文章所对应的单词总数,K是每个词对应的表示向量的维度。每个词的K维向量可以是预先在其他语料库中训练好的,也可以作为未知的参数由网络训练得到。这两种方法各有优势,一方面,预先训练的词嵌入可以利用其他语料库得到更多的先验知识;另一方面,由当前网络训练的词向量能够更好地抓住与当前任务相关联的特征。因此,图中的输入层实际采用了两个通道的形式,即有两个N×K的输入矩阵,其中一个用预先训练好的词嵌入表达,并且在训练过程中不再发生变化;另外一个也由同样的方式初始化,但是会作为参数,随着网络的训练过程发生改变。
1700538574
1700538575
(2)第二层为卷积层。在输入的N×K维矩阵上,我们定义不同大小的滑动窗口进行卷积操作
1700538576
1700538577
1700538578
,
1700538579
1700538580
(9.42)
1700538581
1700538582
其中xi:i+h−1代表由输入矩阵的第i行到第i+h−1行所组成的一个大小为h×K的滑动窗口,w为K×h维的权重矩阵,b为偏置参数。假设h为3,则每次在2×K的滑动窗口上进行卷积,并得到N−2个结果,再将这N−2个结果拼接起来得到N−2维的特征向量。每一次卷积操作相当于一次特征向量的提取,通过定义不同的滑动窗口,就可以提取出不同的特征向量,构成卷基层的输出。
1700538583
1700538584
(3)第三层为池化层,比如图中所示的网络采用了1-Max池化,即为从每个滑动窗口产生的特征向量中筛选出一个最大的特征,然后将这些特征拼接起来构成向量表示。也可以选用K-Max池化(选出每个特征向量中最大的K个特征),或者平均池化(将特征向量中的每一维取平均)等,达到的效果都是将不同长度的句子通过池化得到一个定长的向量表示。
1700538585
1700538586
(4)得到文本的向量表示之后,后面的网络结构就和具体的任务相关了。本例中展示的是一个文本分类的场景,因此最后接入了一个全连接层,并使用Softmax激活函数输出每个类别的概率。
1700538587
1700538588
1700538589
[
上一页 ]
[ :1.70053854e+09 ]
[
下一页 ]