天然語言處理的CNN模型中幾種常見的池化方法

天然語言處理的CNN模型中幾種常見的池化方法

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

0x00 池化(pooling)的做用

  首先,回顧一下NLP中基本的CNN模型的卷積和池化的大體原理[2]。filter(特徵抽取器,卷積核,CV上稱之爲濾波器)在一個窗口(text region)上能夠抽取出一個特徵值,filter在整個text上滑動,將抽取出一系列特徵值組成一個特徵向量。這就是卷積層抽取文本特徵的過程。模型中的每個filter都如此操做,造成了不一樣的特徵向量。數組

  pooling層則對filters的抽取結果進行降維操做,得到樣本的重要特徵,爲下一次的卷積增長感覺野的大小,逐漸減少"分辨率", 爲最後的全鏈接作準備。pooling層是CNN中用來減少尺寸,提升運算速度的,一樣能減少噪聲的影響,讓各特徵更具備健壯性。降維操做方式的不一樣產生不一樣的池化方法。網絡

  通常在pooling層以後鏈接全鏈接神經網絡,造成最後的分類結果。性能

  下面列舉幾種常見的pooling方法。.net

0x01 Max Pooling

作法

  對於某個filter抽取到若干特徵值,只取其中得分最大的那個值做爲pooling層保留值,其它特徵值所有拋棄,值最大表明只保留這些特徵中最強的,而拋棄其它弱的此類特徵。設計

優勢

  1. 只保留區域內的最大值(特徵),忽略其它值,下降噪聲的影響,提升模型健壯性;blog

  2. Max Pooling能減小模型參數數量,有利於減小模型過擬合問題。由於通過pooling操做後,在NLP任務中每每把一維的數組轉換爲單一數值,這樣對於後續的卷積層或者全聯接隱層來講無疑單個filter的參數或者隱層神經元個數就減小了。get

  3. Max Pooling能夠把變長的輸入X整理成固定長度的輸入。由於CNN最後每每會接全聯接層,而其神經元個數是須要事先定好的,若是輸入是不定長的那麼很難設計網絡結構。在NLP任務中,文本的長度每每是不肯定的,而經過pooling 操做,每一個filter固定取1個值,那麼有多少個filter,pooling層就有多少個神經元(pooling層神經元個數等於filters個數),這樣就能夠把全聯接層神經元個數固定住。it

缺點

  1. Max-Pooling丟失特徵項位置信息。在不少NLP的應用場合,特徵的出現位置信息是很重要的,好比主語出現位置通常在句子頭,賓語通常出如今句子尾等等,這些位置信息其實有時候對於主題分類分類任務也許不是很重要([3]保留詞的順序特徵提升了文本分類性能),可是對於情感分類任務可能很重要;io

  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.

相關文章
相關標籤/搜索