[深度學習論文筆記][ICLRW 17] Learning What Data to Learn

[ICLRW 17] Learning What Data to Learn

Yang Fan, Fei Tian, Tao Qin, Jiang Bian, Tie-Yan Liu

from MSRA and USTC

paper link

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

總體的訓練步驟如下圖所示:

image

簡單來說,思路是使用一部分少量數據來訓練模型,作爲NDF的陪練。通過這一步驟得到可以使用的NDF,之後就可以把它運用到正常訓練模型的過程中了。

下面詳細描述下訓練NDF本身的細節。可以將訓練NDF視作訓練參數爲Θ 的二分類模型,模型的預測概率可寫作:
Pθ(a|s)=aσ(θf(s)+b)+(1a)(1σ(θf(s)+b))
其中σ(.) 是Sigmoid函數,b是偏置, Θ={θ,b}

訓練過程中使用到了人爲設計的反饋,記作sa的一個函數R(a,s)。這篇文章使用了網絡在一個held-out驗證集上的預測精度作爲反饋vt ,是一個將不同迭代t時得到的反饋rt 相融合起來的變量: vt=rt+γrt+1+...+γTtrT

將優化目標寫出,有:

J(Θ)=EPΘ(a|s)[R(a,s)]

通過使用一種Monte-Carlo policy gradient algorithm可以將參數Θ 的梯度寫出:

Θ=Tt=1EPΘ(a1:T|s)[ΘlogP(at|st)R(at,st)]=Tt=1ΘlogP(at|st)vt

這樣就可以優化NDF了。詳細的算法描述如下圖所示:
image

Experiments:

這篇文章進行了三組對比試驗,對應於不同的訓練模型和數據庫(MLP+MNIST, CNN+Cifar10, RNN+IMDB)。對比的數據選擇模型選取了self-paced larning、無選擇的SGD和隨機篩除數據的SGD。這裏僅展示MLP+MNIST的實驗結果,其它實驗結果可詳細文章。可以看到NDF可以加速模型收斂速度並提高訓練模型的質量。
image

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