1 概述
雖說現在深度學習在文本分類上取得了很大的進步,但是很多時候在工業界沒有與之匹配的數據量,在少量數據的情況下,使用深度學習很容易出現過擬合,而此時使用傳統的TF-IDF加機器學習又無法取得良好的效果。針對這種情況,我們來看看在使用深度學習時有哪些方法也盡量地避免過擬合。
2 過擬合的處理方法
1)L1和L2正則化
對模型中的權重系數加上L1或L2正則處理,將無關的權重系數懲罰到一個很小的值,甚至為0。
2)Dropout 正則化
Dropout正則化一般使用在全連接層中。
3)提早停止
當發現在繼續迭代時,驗證集上的損失開始上升時,即使此時訓練集上的損失在下降,也應該停止迭代。
4)數據增強
在圖像中我們知道可以通過對圖片進行翻轉,裁剪,縮放,調整對比度等來進行數據增強,那么在文本中又該如何增強數據呢?
a)同義詞替換
在有些論文中提出了同義詞替換,但在使用word2vec詞嵌入時,同義詞之間的向量是非常相似的,也就是說你輸入到模型中的數據實際上沒有什么變化,此時的效果並不會很好。
b)反向翻譯
利用機器翻譯的技術將原始的句子翻譯成一種目標語言,然后又將這種目標語言重新翻譯回來,例如英文文本分類時,先將英文翻譯成西班牙語,然后又反向翻譯為英文,利用這種方法可以得到兩個不同的句子。有時候能取得不錯的效果。
c)文檔裁剪
如果此時是長文本分類時,有時候一篇長文本中的主要思想會重復好幾次,此時我們只要把這含有中心思想的幾處給裁剪出來,就可以將一個長文本裁剪成多個文本。
d)生成對抗網絡
生成對抗網絡已經被用在圖像中的數據增強中,也可以嘗試用在文本中。
5)遷移學習
a)預訓練詞向量
例如常用的word2vec,glove等
b)句子向量
直接將文檔用句子向量表示,例如facebook和谷歌的句編碼器,或者skip-thought等。
c)預訓練的語言模型
例如ULMFiT,BERT等。
d)多任務學習
可以構建多個任務協同學習
6)特征工程
人工從文本中抽取特征工程,然后利用較小的模型來建模。