Laine, Samuli, and Timo Aila. "Temporal Ensembling for Semi-Supervised Learning." arXiv preprint arXiv:1610.02242 (2016).
這篇論文投在ICLR 2017上:https://openreview.net/forum?id=BJ6oOfqge¬eId=BJ6oOfqge
Github: https://github.com/smlaine2/tempens
這篇論文提出了利用ensembling(組合)的方法來完成半監督學習(semi-supervised learning)的任務。
模型:
作者提出了兩個模型:,暫且翻譯為 雙模型 和 時序組合模型
首先介紹 雙模型:
作者讓同一個圖片輸入網絡兩次,由於有一些隨機的因素(dropout, augmentation等),會使得兩次的隱藏層的輸出(也就是z)會不一樣,作者把兩個不同的z做差,然后求l2,作為loss的一部分,當然loss的另一部分就是那些有標簽數據的交叉熵(cross entropy)。另外,由於模型最開始時是很不准確的,所以產生的z可能沒有多大意義,所以需要先對有label的數據進行訓練,也就是需要把兩次不同的z比較的loss進行屏蔽。作者這里設置了一個隨時間變化的變量w(t),在t=0時,設置w(t)為0,也是z比較的loss權重為0,然后w(t)隨着時間增大而增大。
然后介紹時序組合模型:
時序組合模型和雙模型的不同點在於,比較的z來源不同。在雙模型中,兩個z都是來自同一迭代時間內產生的兩次結果。但在時序組合模型中,一個z來自上次迭代周期產生的結果,一個z來自當前迭代時間內產生的結果,也就是比較了兩次不同時間內產生的z。在時序組合模型中,由於一次迭代期間內,只用產生一次z,那么相比於雙模型,它就有了兩倍的加速。作者在論文中說,他們使用的以前的z,並不是恰恰上次迭代的z,而是歷史z的加權和,即(這個看着和reinforcement learning 中的reward的更新類似)。這樣做的好處是能夠保留歷史信息,衰減長遠歷史信息和穩定當前值。
實驗:
作者做了半監督學習和監督學習的實驗,都取得了不錯的效果。作者還說他們的這個模型具有魯棒性,也就是對錯標的數據有一定的容忍性。
評語:方法簡單實用