Taiwan’s pioneering and highest deep learning meetup, launched on 2016/11/11 @ 83F, Taipei 101
AI是一條孤獨且充滿惶恐及未知的旅程,花俏絢麗的收費課程或活動絕非通往成功的捷徑。
衷心感謝當時來自不同單位的AI同好參與者實名分享的寶貴經驗;如欲移除資訊還請告知。
由 TonTon Huang Ph.D. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。
YouTube | Facebook | 回 GitHub Pages | 網站 | Hugging Face Space
模型蒸餾、資料集蒸餾的核心概念與方法探討
機器教學 (Machine Teaching) 的核心概念是指人類利用機器直接去訓練機器的過程。與傳統的監督式學習從大量標註資料中學習不同,機器教學探討如何利用現有的模型或資料,將知識轉移或濃縮,以教導新的模型,尤其是更小、更有效率的模型,以便部署在資源受限的裝置上。
模型蒸餾的核心思想是將一個較大或性能更好的教師模型 (Teacher Net) 的知識轉移到一個通常較小、更有效率的學生模型 (Student Net) 上。
學生模型學習教師模型的輸出結果(而非僅 Ground Truth),以捕捉類別間的細微關係,即暗知識 (Dark Knowledge)。例如,教師模型識別 "9" 時,可能也給 "4" 較高機率,學生模型學習此分佈有助區分相似類別。
直接學習 Softmax 前的 Logits 可能比學習 Softmax 後的機率分佈效果更好、訓練更快,因其保留了類別預測值間的數值大小關係。Loss Function 可用 MSE 或 KL Divergence。
在 Softmax 中加入 Temperature 參數 (T) 可使機率分佈更平滑。T 值越大,分佈越平坦。實驗發現在蒸餾中加入 T 可讓學生模型學得更好,類似 Ny Teacher 概念。
同時使用 Label Smoothing 和 Temperature 可能導致結果變差,因 Label Smoothing 使數據點在特徵空間更集中,學生模型難學到細微差別。蒸餾時應避免同時使用。
CVPR 2019 提出,學生模型除學習單點輸出外,還學習樣本與樣本之間的關係(如中間層或 Logits 輸出間的距離/角度),有助捕捉空間資訊。
DeepMind (2019) 提出,解決「教師太大、學生太小學不好」問題。引入中等規模「助理老師」模型,透過多階段知識傳遞提升小型學生模型性能,暗示知識傳遞需逐步進行。
資料集蒸餾的核心思想是將原始的大型數據集濃縮成一個小型、合成的數據集,此合成數據集包含足夠資訊,能用來訓練一個模型,使其在原始數據集上達到良好性能。
目標是將大型數據集濃縮成極小的合成數據集(如 MNIST 6萬張 -> 幾十張)。
流程: 迭代優化一個小的合成數據集。初始化合成數據 -> 用合成數據訓練模型 -> 用此模型預測原始數據集並計算損失 -> 反向傳播損失回合成數據集更新像素值 -> 重複。
最終合成圖片可能模糊或奇怪。用此合成數據集訓練的模型在原始數據集上可達一定準確率。核心價值在於極大壓縮資料量、解決數據傳輸限制和保護數據隱私。
Dataset Distillation 生成的合成數據集也可能被惡意使用進行模型攻擊 (Poison Image)。
CVPR 2019 趨勢觀察: GVN (Graph Neural Network) 興起,GAN (生成對抗網路) 熱度下降,Self-Supervised Learning (自監督學習) 和 Meta Learning (元學習) 很常見。
社群聚會旨在促進交流和學習,鼓勵成員定期分享看到的論文、公司經驗或研究問題。社群內有經驗豐富的成員可以提供幫助。