數據縮至1/5000,模型準確率卻翻倍,谷歌新“蒸餾法”火了
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
在煉丹過程中,為了減少訓練所需資源,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