textCNN原理


7~5~6

一、TextCnn的結構

 1. 嵌入層(embedding layer)

  textcnn使用預先訓練好的詞向量作embedding layer。對於數據集里的所有詞,因為每個詞都可以表征成一個向量,因此我們可以得到一個嵌入矩陣\(M\),\(M\)中的每一行都是一個詞向量

 

 2.卷積池化層(convolution and pooling)

  輸入一個句子,首先對這個句子進行切詞,假設有\(s\)個單詞,對於每個單詞,我們根據上面提到的嵌入矩陣\(M\) 可以得到詞向量。假設詞向量一共有\(d\)維度,那么我們可以用一個\(s\)行\(d\)列矩陣\(A\)來表示這個句子:\(A \in R^{s\times d }\)

  我們可以把矩陣\(A\)看成是一幅圖像(單通道:灰度圖),使用卷積神經網絡去提取特征。但是注意卷積核不是常用的 3 * 3或者5 * 5,而是:卷積核的寬度就是詞向量的維度\(d\),高度是超參數,可以設置

 

 3.池化(pooling)

  不同尺寸的卷積核得到的特征(feature map)大小也是不一樣的,因此我們對每個feature map使用池化函數,使它們的維度相同。最常用的就是1-max pooling,提取出feature map照片那個的最大值

  這樣每一個卷積核得到特征就是一個值,對所有卷積核使用1-max pooling,再級聯起來,可以得到最終的特征向量,這個特征向量再輸入softmax layer做分類。這個地方可以使用drop out防止過擬合

  

 4.整個過程過程如下(卷積核寬度就是詞向量維度,核高度可以設置):

  • 這里word embedding的維度是5。對於句子 i like this movie very much!可以轉換成如上圖所示的矩陣:\(A \in R^{7\times 5 }\)
  • 有6個卷積核,尺寸為\( (2 \times 5),(3 \times 5),(4 \times 5) \),每個尺寸各2個
  • 句子矩陣\(A\)分別與以上卷積核進行卷積操作,再用激活函數激活。每個卷積核都得到了特征向量(feature maps)
  • 使用1-max pooling提取出每個feature map的最大值,然后在級聯得到最終的特征表達
  • 將特征輸入至softmax layer進行分類, 在這層可以進行正則化操作( l2-regulariation)

 

二、參考

 本文參考:https://blog.csdn.net/John_xyz/article/details/79210088

 感謝分享:知識共享推動世界進步!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM