[ICLRW 17] Learning What Data to Learn
Yang Fan, Fei Tian, Tao Qin, Jiang Bian, Tie-Yan Liu
from MSRA and USTC
Intuition:
這篇文章屬於使用Bootstrap提升模型訓練性能、加快模型訓練速度的研究範疇。相類似的比較出名的工作有Curriculum Learning (ICML 09), self-peaced learning (NIPS 10)和最近的OHEM (CVPR 16)。這篇文章的大致思路是:設計一個訓練數據的過濾器(Neural Data Filter, NDF)插入到網絡輸出層之前,在訓練的過程中動態篩除一部分對訓練益處不大的數據,從而減少訓練數據量。NDF是基於增強學習的模型。
這篇文章以模型使用SGD優化爲背景。即這篇文章討論的NDF設計是針對SGD的。
Neural Data Filter:
1. 對NDF的描述
NDF是一個增強學習模型。NDF的基本工作流程是:給定當前訓練中的網絡的狀態和當前mini-batch數據的狀態s,輸出一組動作a。
a是一個0,1向量,它的維度和mini-batch的大小相同,每個元素代表了mini-batch中對應的數據是否應該被剔除。
具體對s來說,它總共有三個大部分:數據特徵、當前模型特徵、數據與模型關聯特徵。這些特徵是通過人工定義(包括參考相關工作)得到的。詳細來說,數據特徵包括當前數據的label值、句子與語料特徵(對文本模型)、圖像梯度直方圖(對圖像模型)。模型特徵包括當前迭代次數、歷史平均訓練loss和驗證集精度。數據與模型關聯特徵則包括當前數據的loss、當前數據的預測概率向量以及當前預測概率中的margin(正確類的概率與置信度次高的錯誤類概率的差距)。這些特徵通過可學習函數整合在一起,記作f(s)。
2. 如何訓練得到NDF,如何使用NDF
總體的訓練步驟如下圖所示:
簡單來說,思路是使用一部分少量數據來訓練模型,作爲NDF的陪練。通過這一步驟得到可以使用的NDF,之後就可以把它運用到正常訓練模型的過程中了。
下面詳細描述下訓練NDF本身的細節。可以將訓練NDF視作訓練參數爲
其中
訓練過程中使用到了人爲設計的反饋,記作s和a的一個函數R(a,s)。這篇文章使用了網絡在一個held-out驗證集上的預測精度作爲反饋
將優化目標寫出,有:
通過使用一種Monte-Carlo policy gradient algorithm可以將參數
這樣就可以優化NDF了。詳細的算法描述如下圖所示:
Experiments:
這篇文章進行了三組對比試驗,對應於不同的訓練模型和數據庫(MLP+MNIST, CNN+Cifar10, RNN+IMDB)。對比的數據選擇模型選取了self-paced larning、無選擇的SGD和隨機篩除數據的SGD。這裏僅展示MLP+MNIST的實驗結果,其它實驗結果可詳細文章。可以看到NDF可以加速模型收斂速度並提高訓練模型的質量。