天天看點

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

主要内容

  1. 公告
  2. CNN的介紹
  3. 用于句子分類的簡單的cnn
  4. 各種不同的cnn
  5. 用于句子分類的深層cnn
  6. Quasi-recurrent Neural Networks

本節課視訊語音聲音字幕跟不上圖像,看的很辛苦,到後半部分也沒聽太懂,老師的ppt很簡單,都是說的,重要内容沒貼上去

pytorch學習推薦書籍:

natural language processing with pytorch by O'REILLY

二、從RNN到卷積神經網絡CNN

  • 如果沒有字首資訊,RNN捕捉不到句意
  • 捕捉到的資訊很多都是與最後一個單詞相關的
  • softmax通常都是在最後一步進行計算
  • 如果我們為每個可能的單詞子序列計算一定長度的向量呢

比如說句子:tentative deal reached to keep government open,計算向量:

tentative deal reached, deal reached to, reached to keep, to keep government, keep government open

不管句子的文法,然後再将他們組織起來

CNN

1層的卷積:
自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

卷積通常用來從圖像中抽取特征

2層卷積的例子:

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

黃色框中黑色數字乘紅色數字=粉紅色數字

綠色框中是輸入(包括黃色框中的,這是綠色被黃色覆寫了),粉紅色是輸出

紅色的就是過濾權重,也就是核

一層的卷積:

過濾器(或者核)尺寸是3,計算的右邊的特征

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

帶有填充的1層卷積

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

三通道的1層卷積,padding=1

也就是在兩邊各填充了1層0,可以防止對邊緣資訊提取不充分的問題

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

1層卷積,帶有最大池化的填充

池化的概念:用于将經過卷積核計算出來的特征進一步壓縮,比如将右上角的矩陣壓縮成右下角的矩陣

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

帶有平均池化的填充

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

步長為2:

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

不常用的概念:本地最大池化

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

兩個最大池:

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

其他有用的概念:擴張卷積

使用右下角的兩個矩陣和右上角的紅色框做點乘,得到擴張結果

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

三、用于句子分類的單層網絡

Yoon Kim (2014):Convolutional Neural Networks for Sentence Classification. EMNLP 2014.EMNLP 2014. https://arxiv.org/pdf/1408.5882.pdf Code: https://arxiv.org/pdf/1408.5882.pdf [Theano!, etc.]

上述論文研究的是使用單層卷積網絡實作句子分類,判斷句子是正面的還是負面的。

單層卷積網絡的其他應用還有:

  1. 判斷句子是主管的還是客觀的
  2. 問題分類:關于人、位置、數字

單層CNN用于句子分類:

  • 詞向量:
    自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢
    ,k是向量的次元
  • 句子:
    自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢
  • 分割的子序列:Xi:Xi+j,注意是是縱向拼接的,也就是把向量一層層堆疊起來的
  • 卷積核:
    自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢
    每個視窗有h個單詞,也就是卷積核的尺寸為h

下面這個例子h=3

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

計算特征的公式:

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

所有可能的視窗:

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

最終的結果是特征映射:

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢
自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

池化和通道

  • 池化:從映射的特征中擷取最重要的特征
  • 最大池化的公式:
    自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢
  • 使用多種權重核w
  • 有不同的視窗尺寸h是有意義的
  • 因為最大池化是
    自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢
    ,c的長度是無關緊要的,可以一些過濾器,比如unigrams,bigrams,tri-grams,4-grams,等
  • 多通道輸入的想法
  • 以預訓練的向量初始化
  • 僅僅通過一個小集合資料反向傳播,其他不變
  • 在最大池化之前兩個通道的資料加起來變成ci
  • 在一個卷積層之後的分類

在最大池化之前是一個卷積層

擷取最終的特征向量:

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

假設有m個核

之後是softmax層:

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

論文的模型:region size是2,3,4時分别取了兩個不同的核進行過濾,得到的結果拼接起來

Zhang and Wallace (2015) A Sensitivity

Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

正則化:

使用dropout。droup的原理和使用在另一篇部落格裡講了

添加L2正則化限制

在Kim中的所有超參數

基于驗證集找超參數

非線性化:ReLU

過濾器的視窗尺寸:3,4,5

每個過濾器尺寸有100個特征映射

dropout中 p=5,提升了2%-4%的準确率

L2對softmax中的行的限制了s,s=3

随機梯度下降的最小的批處理大小為:50

詞向量:使用word2vec預訓練詞向量,k=300

在訓練的時候檢查在驗證集上的性能,選擇最高的準确度權重

模型比較:日益增長的工具包

  1. 向量詞袋:對于單個分類問題效果挺好,特别是加了ReLU層之後
  2. 視窗模型:對不需要廣泛的向下文的單個單詞分類問題效果很好,比如POS, NER
  3. CNN:對分類效果很好,對于短文本需要0填充,很難解釋,容易在GPUs上并行計算,效率高而且用途廣泛
  4. RNN:從左邊讀到右邊,有認知不全的問題,對分類效果不是很好(如果僅僅使用最後一個狀态的話),比cnn慢,對語言模型效果很好,加入了注意力機制之後效果很好

加入直接連接配接的門控單元

在LSTM和GRU中使用的跳躍連接配接被被廣泛使用,對深度神經網絡來說效果很好

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

批标準化

經常在RNN中使用

通過将激活量縮放為零均值和機關方差來轉換卷積層的批輸出,這個和資料進行中的Z-轉換類似

這個方法使得模型對參數初始化不那麼敏感,因為輸出自動縮放了,它還傾向于簡化學習速度的調整

  • PyTorch: nn.BatchNorm1d

1x1的卷積

這個概念有意義嗎?有

卷積核為1x1

能減少通道的數量

CNN的應用:翻譯

使用cnn作為編碼器,rnn作為解碼器

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

為部分演講标記學習特征層的表示

六、RNN比較慢

因為RNN是串行的是以比較慢,可以将RNN和CNN結合起來

Quasi-Recurrent Netural Network

将兩個模型的優點集合起來

自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢
自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢
自然語言處理 cs224n 2019 Lecture 11: ConvNets for NLP主要内容二、從RNN到卷積神經網絡CNN三、用于句子分類的單層網絡六、RNN比較慢

比LSTM更快和更好

更多的可解釋性

缺點:

在字元級沒有LSTM效果好,對長依賴處理不好

需要更深的網絡層,但是仍然很快

我們想要并行化,但是RNNs本質上是順序的

盡管有GRUs和LSTMs, RNNs仍然從處理遠端依賴關系的注意機制中獲益——狀态之間的路徑長度随順序增長

但如果注意力能讓我們進入任何一個狀态……也許我們不需要RNN?

繼續閱讀