天然语言处理的CNN模型中几种常见的池化方法

天然语言处理的CNN模型中几种常见的池化方法

本文是在[1]的基础上进行的二次概括。算法

0x00 池化(pooling)的做用

  首先,回顾一下NLP中基本的CNN模型的卷积和池化的大体原理[2]。filter(特征抽取器,卷积核,CV上称之为滤波器)在一个窗口(text region)上能够抽取出一个特征值,filter在整个text上滑动,将抽取出一系列特征值组成一个特征向量。这就是卷积层抽取文本特征的过程。模型中的每个filter都如此操做,造成了不一样的特征向量。数组

  **pooling层则对filters的抽取结果进行降维操做,得到样本的重要特征,为下一次的卷积增长感觉野的大小,逐渐减少"分辨率", 为最后的全链接作准备。**pooling层是CNN中用来减少尺寸,提升运算速度的,一样能减少噪声的影响,让各特征更具备健壮性。降维操做方式的不一样产生不一样的池化方法。网络

  通常在pooling层以后链接全链接神经网络,造成最后的分类结果。性能

  下面列举几种常见的pooling方法。spa

0x01 Max Pooling#

作法

  对于某个filter抽取到若干特征值,只取其中得分最大的那个值做为pooling层保留值,其它特征值所有抛弃,值最大表明只保留这些特征中最强的,而抛弃其它弱的此类特征。.net

优势

  1. 只保留区域内的最大值(特征),忽略其它值,下降噪声的影响,提升模型健壮性;设计

  2. Max Pooling能减小模型参数数量,有利于减小模型过拟合问题。由于通过pooling操做后,在NLP任务中每每把一维的数组转换为单一数值,这样对于后续的卷积层或者全联接隐层来讲无疑单个filter的参数或者隐层神经元个数就减小了。blog

  3. Max Pooling能够把变长的输入X整理成固定长度的输入。由于CNN最后每每会接全联接层,而其神经元个数是须要事先定好的,若是输入是不定长的那么很难设计网络结构。在NLP任务中,文本的长度每每是不肯定的,而经过pooling 操做,每一个filter固定取1个值,那么有多少个filter,pooling层就有多少个神经元(pooling层神经元个数等于filters个数),这样就能够把全联接层神经元个数固定住。get

缺点

  1. Max-Pooling丢失特征项位置信息。在不少NLP的应用场合,特征的出现位置信息是很重要的,好比主语出现位置通常在句子头,宾语通常出如今句子尾等等,这些位置信息其实有时候对于主题分类分类任务也许不是很重要([3]保留词的顺序特征提升了文本分类性能),可是对于情感分类任务可能很重要;it

  2. Max-Pooling丢失特征频次信息。有时候有些强特征会出现屡次,好比咱们常见的特征权重算法TF-IDF中的TF就是指某个特征在某一个文本中出现的次数。可是由于Max Pooling只保留一个最大值,因此即便某个特征出现屡次,通过max-Pooling也只能看到一次。

0x02 K-Max Pooling

作法

  K-Max Pooling能够取每个filter抽取的一些列特征值中得分在前K大的值,并保留他们的相对的前后顺序。把全部filters的前k大的特征值拼接成一个特征向量。pooling层的神经元个数等于k倍的filter个数。就是说经过多保留一些特征信息供后续阶段使用。

优势

  1. K-Max Pooling能够表达同一类特征出现屡次的情形,便可以表达某类特征的强度;

  2. 由于这些Top-K特征值的相对顺序得以保留,因此应该说其保留了部分位置信息。

缺点

  这种位置信息只是特征间的相对顺序,而非绝对位置信息。

0x03 Chunk-Max Pooling

作法

  把某个filter抽取到的特征向量进行分段,切割成若干段后,在每一个分段里面各自取得一个最大特征值,好比将某个filter的特征向量切成3个chunk,那么就在每一个chunk里面取一个最大值,因而得到3个特征值。

优势

  1. Chunk-Max Pooling能够保留了多个局部最大特征值的相对顺序信息;

  2. 若是屡次出现强特征,Chunk-Max Pooling能够捕获特征强度。

缺点

  并无保留绝对位置信息,仅保留了比较粗粒度的模糊的位置信息。

0x04 REFERENCE#

[1] 张俊林. 天然语言处理中CNN模型几种常见的Max Pooling操做[EB/OL]. http://blog.csdn.net/malefactor/article/details/51078135, 2016-04-07

[2] Kim, Y. (2014). Convolutional neural networks for sentence classification. Eprint Arxiv.

[3] Johnson, R., & Zhang, T. (2014). Effective use of word order for text categorization with convolutional neural networks. Eprint Arxiv.

相关文章
相关标签/搜索