資料縮至 1/5000,模型準確率卻翻倍,谷歌新“蒸餾法”火了
在煉丹過程中,為了減少訓練所需資源,MLer 有時會將大型複雜的大模型“蒸餾”為較小的模型,同時還要保證與壓縮前相當的結果。這就是知識蒸餾,一種模型壓縮 / 訓練方法。
不過隨著技術發展,大家也逐漸將蒸餾的物件擴充套件到了資料集上。這不,谷歌最近就提出了兩種新的資料集蒸餾方法,在推特上引起了不小反響,熱度超過 600:
像這樣,將 50000 張標註影象的 CIFAR-10 資料集“蒸餾”縮小至 1/5000 大小,只基於 10 張合成數據點進行訓練,模型的準確率仍可近似 51%:
△上:原始資料集 下:蒸餾後
而如果“蒸餾資料集”由 500 張影象組成(佔原資料集 1% 大小),其準確率可以達到 80%。兩種資料集蒸餾方法分別來自於 ICLR 2021 和 NeurIPS 2021 上的兩篇論文。
通過兩階段迴圈進行優化
那麼要如何才能“蒸餾”一個數據集呢?其實,這相當於一個兩階段的優化過程:
“內部迴圈”,用於在學習資料上訓練模型
“外部迴圈”,用於優化學習資料在自然資料上的效能
通過內部迴圈可以得到一個核脊迴歸(KRR)函式,然後再外部迴圈中計算原始影象標註與核脊迴歸函式預測標註之間的均方誤差(MSE)。
這時,谷歌提出的兩種方法就分別有了不同的處理路線:
一、標註解釋(LS)
這種方法直接解釋最小化 KRR 損失函式的支援標註集(support labels),併為每個支援影象生成一個獨特的密集標註向量。
△藍:原始獨熱標註 橙:LS 生成的密集標註
二、核歸納點(KIP)
這種方法通過基於梯度的方法將 KRR 損失函式最小化,以此來優化影象和可能生成的資料。以 MNIST 為例,下圖中的上、中、下三張圖分別為原始的 MNIST 資料集、固定標註的 KIP 蒸餾影象、優化標註的 KIP 蒸餾影象。可以看出,在於對資料集進行蒸餾時,優化標註的效果最好:
對比已有的 DC(Dataset Condensation)方法和 DSP(Dataset Condensation with Differentiable Siamese Augmentation)方法可以看到:
如果使用每類別只有一張影象,也就是最後只有 10 張影象的蒸餾資料集,KIP 方法的測試集準確率整體高於 DC 和 DSP 方法。在 CIFAR-10 分類任務中,LS 也優於先前的方法,KIP 甚至可以達到翻倍的效果。
對此,谷歌表示:
這證明了在某些情況下,我們的縮小 100 倍的“蒸餾資料集”要比原始資料集更好。
兩位華人作者
整個專案由蕭樂超(Lechao Xiao)、Zhourong Chen、Roman Novak 三人合作完成。
其中蕭樂超為 LS 方法的論文作者之一,本科畢業於浙江大學的應用數學系,在美國伊利諾大學厄巴納-香檳分校(UIUC)取得博士學位,現在是谷歌大腦團隊的一名科學家。他的主要研究方向是數學、機器學習和深度學習。
另一位華人科學家 Zhourong Chen 則是 KIP 方法的論文作者之一,本科畢業於中山大學,並在中國香港科技大學取得了電腦科學與工程系的博士學位,現是 Google Research 的一名軟體工程師。
論文:
[1]https://openreview.net/forum?id=l-PrrQrK0QR
[2]https://openreview.net/forum?id=hXWPpJedrVP
開源地址:
https://github.com/google-research/google-research/tree/master/kip
參考連結:
https://ai.googleblog.com/2021/12/training-machine-learning-models-more.html