1. 程式人生 > >CNN用於句子分類時的超引數除錯經驗

CNN用於句子分類時的超引數除錯經驗

根據“A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification”這篇paper得到的經驗。這篇paper的主要工作是對“Convolutional Naural Networks for Sentence Classification”這篇論文的模型進行了各種各樣的對比試驗,進而得到了一些關於超引數的設定經驗。其實論文前面幾章對實驗內容和結果進行了詳細介紹,但是我們可以直接在第五章中獲得我們想要得到的超引數設定經驗。接下來就記錄一下:

  1. 對於預訓練的詞向量(glove, word2vec)而言,二者對不同分類任務各有優劣,但效果都比one-hot編碼要強(雖然one-hot編碼方式在文字分類任務中取得了比較好的效果)。
  2. 卷積核的視窗大小對實驗結果有著比較重要的影響。首先,ws在1-10之間取值較好,且如果訓練集中的句子長度較大(100+)時,我們可以考慮使用較大的ws以獲取上下文關係。其次,對不同尺寸ws的視窗進行結合會對結果產生影響。當把與最優ws相近的ws結合時會提升效果,但是如果將距離最優ws較遠的ws相結合時會損害分類效能。一般取為3-5~~
  3. 卷積核數量num_filters也對實驗結果比較重要。最好不要超過600,超過600可能會導致過擬合。一般設為100-200~~
  4. pooling方式就使用1-max就可以。mean或者k-max pooling效果都不太好
  5. l2正則化效益很小,相比而言,dropout在神經網路中有著廣泛的使用和很好的效果,dropout一般設為0.5
  6. 啟用函式的話,目前廣泛應用的是ReLU、tanh函式。