【深度學習筆記01】文本分類

1 模型顯然並不是最重要的

好的模型設計對拿到好結果的至關重要,也更是學術關注熱點。但實際使用中,模型的工作量佔的時間其實相對比較少。雖然再第二部分介紹了5種CNN/RNN及其變體的模型,實際中文本分類任務單純用CNN已經足以取得很不錯的結果了,我們的實驗測試RCNN對準確率提升大約1%,並不是十分的顯著。最佳實踐是先用TextCNN模型把整體任務效果調試到最好,再嘗試改進模型。

2 理解你的數據

雖然應用深度學習有一個很大的優勢是不再需要繁瑣低效的人工特徵工程,然而如果你只是把他當做一個黑盒,難免會經常懷疑人生。一定要理解你的數據,記住無論傳統方法還是深度學習方法,數據 sense 始終非常重要。要重視 badcase 分析,明白你的數據是否適合,爲什麼對爲什麼錯。

3 超參調節

可以參考 深度學習網絡調參技巧 - 知乎專欄

4 一定要用 dropout

有兩種情況可以不用:數據量特別小,或者你用了更好的正則方法,比如bn。實際中我們嘗試了不同參數的dropout,最好的還是0.5,所以如果你的計算資源很有限,默認0.5是一個很好的選擇。

5 未必一定要 softmax loss

這取決與你的數據,如果你的任務是多個類別間非互斥,可以試試着訓練多個二分類器,也就是把問題定義爲multi lable 而非 multi class,我們調整後準確率還是增加了>1%。

6 類目不均衡問題

基本是一個在很多場景都驗證過的結論:如果你的loss被一部分類別dominate,對總體而言大多是負向的。建議可以嘗試類似 booststrap 方法調整 loss 中樣本權重方式解決。

7 避免訓練震盪

默認一定要增加隨機採樣因素儘可能使得數據分佈iid,默認shuffle機制能使得訓練結果更穩定。如果訓練模型仍然很震盪,可以考慮調整學習率或 mini_batch_size。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章