FAIR&MIT提出知識蒸餾新方法:資料集蒸餾
選自arxiv,作者:Tongzhou Wang等,機器之心編譯,參與:路、王淑婷。
近日,來自 FAIR、MIT 和加州大學伯克利分校的 Tongzhou Wang、朱儁彥等人釋出新研究論文,提出一種新的蒸餾方法——資料集蒸餾。這與將知識從複雜網路遷移到較簡單模型不同,該方法將原始資料集中大量資料集的知識壓縮到少量合成數據上,同時在合成數據上訓練的模型效能與在原始資料集上的模型效能相差無幾。
Geoffrey Hinton 在論文《Distilling the Knowledge in a Neural Network》中提出模型蒸餾,即將知識從多個獨立訓練的網路的整合遷移到單個緊湊網路,從而執行模型壓縮。近日,FAIR、MIT、加州大學伯克利分校的研究者釋出一篇論文,考慮使用一種相關又無關的任務:不蒸餾模型,而是蒸餾資料集。與模型蒸餾不同,該方法保持模型不變,而是將整個訓練資料集的知識(通常包含數千或數百萬影象)壓縮成少量合成訓練影象。實驗結果表明可以使每張合成影象表示一個類別,且能使同一個模型在合成影象上達到驚人的優秀效能。如下圖 a 所示,在給定固定網路初始化的前提下,將六萬個 MNIST 訓練影象壓縮成 10 張合成影象(每張影象代表一個類別)。在這 10 張影象上訓練標準 LENET (LeCun et al., 1998) 架構可在測試階段達到 94% 的識別準確率,該模型在原始任務中的效能是 99%。對於具備未知隨機權重的網路,100 張合成影象僅需幾個梯度下降步就能訓練達到 80% 的效能。研究者將該方法叫作「資料集蒸餾」,這些影象叫作蒸餾影象。

圖 1:資料集蒸餾:將數萬張影象的知識壓縮到幾張合成訓練影象中,後者即蒸餾影象。(a)在 MNIST 資料集上,10 張蒸餾影象可以將特定固定初始化設定的標準 LENET 的效能訓練達到 94% 的測試準確率(在完整訓練資料集上訓練出的模型效能是 99%)。在 CIFAR10 資料集上,100 張蒸餾影象可以將固定初始化的深度網路的效能訓練達到 54% 的測試準確率(在完整訓練資料集上訓練出的模型效能是 80%)。(b)使用在街道門牌號數字識別資料集 SVHN 上預訓練的網路,可以將 SVHN 和 MNIST 兩個資料集之間的域區別蒸餾成 100 張蒸餾影象。這些影象可用於快速精調在 SVHN 上訓練的網路,使之在 MNIST 資料集上獲得較高準確率。(c)出於惡意目標而訓練時,該蒸餾方法可用於建立對抗攻擊影象。如果經過良好優化的網路使用這些影象經一個梯度步即可完成重新訓練,那麼這些網路將誤分類特定目標類別。
那資料集蒸餾為何有用呢?這就關係到給定訓練資料集中有多少資料是被真正編碼了,以及訓練集的可壓縮性如何。此外,給出少量蒸餾影象,我們可以更加高效地為給定網路「載入」整個資料集的知識,而傳統的訓練通常需要數萬個梯度下降步。
這裡有一個關鍵問題,即將資料集壓縮成少量合成數據樣本是否可能。例如,在合成影象(而非自然的影象流形)上訓練影象分類模型是否可能。傳統的觀念認為不可以,因為合成訓練資料可能與真正測試資料的分佈不同。但是,本文證明這是可能的。研究者展示了一種用於合成少量合成數據樣本的新優化演算法,這些樣本不僅能捕獲大量原始訓練資料,而且在幾個梯度步內就可以適應快速的模型訓練。為了達到該目標,研究者首先將網路權重作為合成訓練資料的可微函式。因此,無需為特定訓練目標函式進行權重優化,而是對蒸餾影象優化畫素值。但是,這需要獲取網路的初始權重。為了鬆弛該假設,研究者提出一種方法,可為隨機初始化網路生成蒸餾影象。為了進一步提升效能,研究者還提出了一種迭代版本,即獲取多張蒸餾影象來訓練一個模型,而每張蒸餾影象可使用多次傳輸來訓練。最後,研究者研究了簡單的線性模型,提出了達到在完整資料集上訓練模型的相同效能所需蒸餾資料的最低規模。
論文:DATASET DISTILLATION

論文連結: https:// arxiv.org/pdf/1811.1095 9.pdf
摘要 :模型蒸餾(model distillation),即將複雜模型的知識遷移到更簡單的模型中。本文提出了另一種方法:資料集蒸餾(dataset distillation):保持模型不變,嘗試將大型訓練資料集的知識壓縮成小型資料集。這個想法是合成無需來自正確資料分佈的少量資料點,這些資料點在作為學習演算法的訓練資料時,訓練出的模型逼近在原始資料上訓練的模型。例如,實驗證明六萬個 MNIST 訓練影象可以壓縮成 10 個合成蒸餾影象(每一個影象的類別不同),給定固定的網路初始化,網路僅需幾步梯度下降步即可逼近原始效能。研究者在大量不同初始化設定和不同學習目標中評估了該方法。在多個數據集上的實驗證明該方法在大多數設定中可媲美其它方法。
方法

實驗



