CNN的池化分类
池化层(Pooling):对filter的特征进行降维操作,形成最终特征。
分类
1、Max Pooling Over Time操作
MaxPooling Over Time是NLP中CNN模型中最常见的一种下采样操作。
意思是对于某个Filter抽取到若干特征值,只取其中得分最大的那个值作为Pooling层保留值,其它特征值全部抛弃,值最大代表只保留这些特征中最强的,而抛弃其它弱的此类特征。
优点:这个操作可以保证特征的位置与旋转不变性,因为不论这个强特征在哪个位置出现,都会不考虑其出现位置而能把它提出来。对于图像处理来说这种位置与旋转不变性是很好的特性。 再者,对于NLP任务来说,Max Pooling有个额外的好处;在此处,可以把变长的输入X整理成固定长度的输入。
缺点:但是对于NLP来说,这个特性其实并不一定是好事,因为在很多NLP的应用场合,特征的出现位置信息是很重要的。
2、K-Max Pooling
思想:原先的Max Pooling Over Time从Convolution层一系列特征值中只取最强的那个值(从Convolution层取出了K个特征值。)。K-Max Pooling可以取所有特征值中得分在Top –K的值,并保留这些特征值原始的先后顺序(图3是2-max Pooling的示意图),就是说通过多保留一些特征信息供后续阶段使用。
优点:K-Max Pooling可以表达同一类特征出现多次的情形,即可以表达某类特征的强度;
另外,因为这些Top K特征值的相对顺序得以保留,所以应该说其保留了部分位置信息,但是这种位置信息只是特征间的相对顺序,而非绝对位置信息。
3、Chunk-Max Pooling
思想:
把某个Filter对应的Convolution层的所有特征向量进行分段,切割成若干段后,在每个分段里面各自取得一个最大特征值,比如将某个Filter的特征向量切成3个Chunk,那么就在每个Chunk里面取一个最大值,于是获得3个特征值。
区别:
K-Max Pooling是一种全局取Top K特征的操作方式
而Chunk-Max Pooling则是先分段,在分段内包含特征数据里面取最大值,所以其实是一种局部Top K的特征抽取方式。