重要的,是那些训练中被多次遗忘的样本
?文 | kid丶
源 | 知乎
?編 | 兔子醬
今天跟大家分享一篇很有意思的文章,是一篇探討深度學習模型記憶&遺忘機制的文章,是一篇角度很新穎的題材,同時又有一定啟發作用。
這篇文章發表在深度學習頂會ICLR19,標題是《An empirical study of example forgetting during deep neural network learning》。
這篇文章是我最近看到的最有意思的文章之一了,同時我跑了這篇文章的代碼并做了很深入的研究和分析。很有意思,值得一讀!希望這篇博客能對您目前的工作有所啟發!
首先,我們來看一個機器學習里的基本概念“learnt”與“forget”。
learnt與forget
如果一個樣本被模型"learnt":代表該樣本能夠被模型正確分類。接著,本文定義了一個十分有意思的概念,叫做"forgetting event":即樣本在某個時間點 t 被"learnt",然后在之后的一個時間點 t' 被錯誤分類了,其中 t' > t,這樣的一個事件稱之為 "forgetting event" 。相反,如果一些樣本,它一旦被 "learnt" 之后,再也沒有被忘記過,那么我們稱該樣本為 "unforgettable examples"。
舉個例子,它就像小孩在學習記單詞一樣,對于單詞 "apple",如果這個小孩能認出它是"蘋果",這說明這個單詞被 "learnt";小孩又陸陸續續的記了很多其它的單詞,當他再一次遇到單詞"apple"的時候,如果此時小孩覺得該單詞的意思是"梨子",那么說明,這個單詞被小孩遺忘了,這個事件稱之為 "forgetting event"。對于一些簡單的單詞例如"car",被小孩學會后再也沒有被遺忘過,那么這些單詞我們稱之為 "unforgettable examples"。
那么,對于神經網絡,在學習樣本的時候,哪些樣本會被容易 "learnt",哪些樣本容易被模型遺忘,哪些樣本又會是 "unforgettable examples" 呢?
文章給出了三個非常重要且有指導性的結論:
CIFAR10、CIFAR100這類的數據集中存在著大量的 "unforgettable examples"。即這些樣本一旦被模型學會將不再遺忘,并且這一現象與隨機種子的設置以及不同模型結構的選擇無關。
具有噪聲標記的樣本往往是"most forgettable examples",這一點有利于我們去識別噪聲樣本。
如果把很大一部分"least forgettable examples"丟掉,用剩下的樣本進行訓練,在測試集上仍然具有極具競爭力的性能。
首先來看第一個結論,上圖分別代表在三個不同數據集上的結果。可以看出,"forgetting event" 為 0 的樣本數占絕大多數,也就是說,絕大部分樣本一旦被模型學會了,就不會再被遺忘。
第二個結論,如上圖所示,代表 "forgetting event" 在兩種樣本上的分布。左邊的圖紅色是噪聲樣本,綠色是干凈樣本。右邊的圖代表同一批樣本在加噪聲前(藍色)和在加噪聲后(紅色)的分布情況。其實兩者是從兩個不同的方面來刻畫噪聲樣本和干凈樣本對 "forgetting event" 的分布差異。可以明顯看出,噪聲樣本的分布(紅色)比較靠右,也就是說,噪聲樣本容易被模型忘記,當然這一結論也很符合認知。
第三個結論更有意思!首先兩個圖的縱坐標都是測試集上的準確率。左邊的圖的橫坐標為訓練集被移除的百分比,右邊圖的橫坐標為被移除樣本的 "forgetting event" 的平均數。
首先來看左邊這個圖,紅、綠、藍線分別代表不移除、有選擇性的移除以及隨機移除樣本,其中有選擇性的移除是指優先移除掉 "forgetting event" 小的樣本。換句話來說,首先把那些 "unforgettable examples" 的簡單樣本從訓練集中拿掉,然后再慢慢拿掉一些遺忘次數較少的樣本,可以看出在有選擇性的拿掉 20%-30% 的樣本時,模型的性能竟絲毫沒有下降,后續就算性能下降了也會比隨機的拿掉要好。右邊這個圖也有類似的結果和結論。
這個實驗主要想說明一個問題,那就是重要的樣本,往往是那些被遺忘次數多的樣本。換句話說,對于學習一個有效的分類模型,我們只需要關注那些遺忘次數多的樣本就夠了。
接著,我們來看看 "unforgettable and forgettable examples" 有怎樣的區別。很顯然也很容易想到,就是不容易被遺忘的那些樣本往往是一些簡單樣本,其目標清楚、明顯且背景簡單單一;而那些容易被忘記的樣本往往是一些難樣本,其背景復雜且目標不清楚、不完整等等。
總結
首先,難樣本和噪聲樣本都容易被模型忘記。再看結論3,把絕大部分"unforgettable"樣本丟掉,發現性能基本沒掉。說明 "unforgettable"的樣本其實對訓練模型沒啥幫助,有就行了,多沒用!換句話說,只需要難樣本就行了,但是呢,噪聲樣本也往往是 "most forgettabel"的,然后我又不想要噪聲樣本,這就有矛盾了,也能帶來很多思考了。歡迎大家在評論區分享你的想法!
文末福利
后臺回復關鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職討論群
有頂會審稿人、大廠研究員、知乎大V和妹紙
等你來撩哦~
總結
以上是生活随笔為你收集整理的重要的,是那些训练中被多次遗忘的样本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 屠榜CV还不是这篇论文的终极目标,它更大
- 下一篇: 新年立个小目标!代码写得更规范!