Deep Learning 101

Taiwan’s pioneering and highest deep learning meetup, launched on 2016/11/11 @ 83F, Taipei 101

AI是一條孤獨且充滿惶恐及未知的旅程,花俏絢麗的收費課程或活動絕非通往成功的捷徑。
衷心感謝當時來自不同單位的AI同好參與者實名分享的寶貴經驗;如欲移除資訊還請告知。
TonTon Huang Ph.D. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。

Deep Learning 101 Buy Me A Coffee

YouTube | Facebook | 回 GitHub Pages | 網站 | Hugging Face Space

2019/06/28, Mark Liou, Machine Teaching

機器教學與蒸餾

模型蒸餾、資料集蒸餾的核心概念與方法探討

核心概念:機器教學 Core Concept: Machine Teaching

機器教學 (Machine Teaching) 的核心概念是指人類利用機器直接去訓練機器的過程。與傳統的監督式學習從大量標註資料中學習不同,機器教學探討如何利用現有的模型或資料,將知識轉移或濃縮,以教導新的模型,尤其是更小、更有效率的模型,以便部署在資源受限的裝置上。

模型蒸餾 Model Distillation

模型蒸餾的核心思想是將一個較大或性能更好的教師模型 (Teacher Net) 的知識轉移到一個通常較小、更有效率的學生模型 (Student Net) 上。

經典做法 (Knowledge Distillation)

學生模型學習教師模型的輸出結果(而非僅 Ground Truth),以捕捉類別間的細微關係,即暗知識 (Dark Knowledge)。例如,教師模型識別 "9" 時,可能也給 "4" 較高機率,學生模型學習此分佈有助區分相似類別。

Logits 與 Softmax 的學習

直接學習 Softmax 前的 Logits 可能比學習 Softmax 後的機率分佈效果更好、訓練更快,因其保留了類別預測值間的數值大小關係。Loss Function 可用 MSE 或 KL Divergence。

Temperature 參數影響

在 Softmax 中加入 Temperature 參數 (T) 可使機率分佈更平滑。T 值越大,分佈越平坦。實驗發現在蒸餾中加入 T 可讓學生模型學得更好,類似 Ny Teacher 概念。

Label Smoothing 與 Temperature

同時使用 Label Smoothing 和 Temperature 可能導致結果變差,因 Label Smoothing 使數據點在特徵空間更集中,學生模型難學到細微差別。蒸餾時應避免同時使用。

Relational Knowledge Distillation

CVPR 2019 提出,學生模型除學習單點輸出外,還學習樣本與樣本之間的關係(如中間層或 Logits 輸出間的距離/角度),有助捕捉空間資訊。

Teacher Assistant System

DeepMind (2019) 提出,解決「教師太大、學生太小學不好」問題。引入中等規模「助理老師」模型,透過多階段知識傳遞提升小型學生模型性能,暗示知識傳遞需逐步進行。

資料集蒸餾 Dataset Distillation

資料集蒸餾的核心思想是將原始的大型數據集濃縮成一個小型、合成的數據集,此合成數據集包含足夠資訊,能用來訓練一個模型,使其在原始數據集上達到良好性能。

試圖解決的問題 Problems Addressed

  • 數據壓縮和傳輸: 將大型數據集壓縮成小尺寸,方便儲存和傳輸,特別是在網絡頻寬受限或數據量龐大的情況下(如台積電或基因數據傳輸問題)。
  • 數據隱私: 合成數據集通常與原始數據集的樣貌不同,可以保護原始數據的隱私。模型可以在處理過的數據上訓練,而無需直接接觸敏感的原始數據。

迭代優化合成數據 Iterative Synthetic Data Optimization

目標是將大型數據集濃縮成極小的合成數據集(如 MNIST 6萬張 -> 幾十張)。

流程: 迭代優化一個小的合成數據集。初始化合成數據 -> 用合成數據訓練模型 -> 用此模型預測原始數據集並計算損失 -> 反向傳播損失回合成數據集更新像素值 -> 重複。

最終合成圖片可能模糊或奇怪。用此合成數據集訓練的模型在原始數據集上可達一定準確率。核心價值在於極大壓縮資料量、解決數據傳輸限制和保護數據隱私。

其他資料集蒸餾相關方法 Other Related Methods

  • 利用教師模型輔助標註 (Omni-Supervised): 利用已訓練模型對未標註資料進行標註(結合數據增強和模型集成),作為學生模型訓練資料。
  • Data-Free Distillation (無資料蒸餾): 在無法接觸原始訓練資料下訓練新模型。構想是傳輸教師模型處理後的「元資料」(Meta Data),如記錄各層 Activation 狀態,用於訓練學生模型。
  • GANs for Dataset Distillation: 論文使用 GAN 方式進行,概念無本質區別。

Dataset Distillation 生成的合成數據集也可能被惡意使用進行模型攻擊 (Poison Image)

其他相關概念與社群討論 Other Concepts & Community

CVPR 2019 趨勢觀察: GVN (Graph Neural Network) 興起,GAN (生成對抗網路) 熱度下降,Self-Supervised Learning (自監督學習)Meta Learning (元學習) 很常見。

社群聚會旨在促進交流和學習,鼓勵成員定期分享看到的論文、公司經驗或研究問題。社群內有經驗豐富的成員可以提供幫助。