這個自蒸餾新框架新SOTA,降低了訓練成本,無需修改網絡
深度學習促進人工智能(AI)領域不斷發(fā)展,實現了許多技術突破。與此同時,如何在有限硬件資源下挖掘模型潛能、提升部署模型的準確率成為了學界和業(yè)界的研究熱點。其中,知識蒸餾作為一種模型壓縮和增強的方法, 將泛化能力更強的「大網絡模型」蘊含的知識「蒸餾」到「小網絡模型」上,來提高小模型精度,廣泛地應用于 AI 領域的全監(jiān)督、半監(jiān)督、自監(jiān)督、域遷移等各個方向。
近日, OPPO 研究院聯合上海交通大學將視角聚焦到知識蒸餾的范式本身,提出了新的自蒸餾框架:DLB(Self-Distillation from Last Mini-Batch),模型無需額外的網絡架構修改,對標簽噪聲具有魯棒性,并大幅節(jié)約訓練的空間復雜度。此外,在三個基準數據的實驗中,模型達到了 SOTA 性能。相關論文「Self-Distillation from the Last Mini-Batch for Consistency Regularization」已被 CVPR 2022 收錄。
論文鏈接:https://arxiv.org/pdf/2203.16172.pdf
DLB 自蒸餾框架
如何減少蒸餾計算復雜度?
知識蒸餾通??梢詣澐譃槿?,即離線蒸餾、在線蒸餾和自蒸餾。其中,自蒸餾具有訓練輕量、知識遷移效率高的特點,最近受到更多研究者的重視。
圖 1:本文方法與其他自蒸餾方法的比較
但是傳統的自蒸餾,例如 Be Your Own Teacher,在模型訓練過程中需要對模型結構進行修改。除此以外,訓練成本高、計算冗余且效率低下也是自蒸餾需要攻克的難題。
為了解決上述難題,讓模型更好地部署到手機等終端設備中,OPPO 研究院和上海交通大學的研究員們提出了 DLB 自蒸餾框架。利用訓練時前后 Batch 預測結果的一致性,在無需對模型進行網絡結構修改的前提下,就能降低訓練復雜度,增強模型泛化能力。
1. 本文的任務
提出更加輕量的自蒸餾方式,降低訓練的計算復雜度,提高模型準確率和泛化性。
2. 本文創(chuàng)新與貢獻
- 提出 DLB,通過保存與下個 Batch 部分樣本重疊的軟目標(soft targets)進行自蒸餾。節(jié)省計算內存,并且簡化訓練流程。
- 讓訓練樣本的每次前向過程都與一次反向傳播過程相關聯,從而提升學習效率。
- 實驗分析了 DLB 訓練方法的動態(tài)影響,發(fā)現其正則化效果來源于即時生效的平滑標簽帶來的訓練一致性,為自蒸餾的理論研究提供了實驗基礎。
DLB 自蒸餾框架訓練機制
DLB 在訓練階段的每個 iteration 中,目標網絡扮演著「教師」和「學生」的雙重角色。其中,教師的作用是生成下一個 iteration 的軟目標進行正則化;學生的作用是從前一個 iteration 平滑的標簽中蒸餾,并最小化監(jiān)督學習目標。
數據集定義為
,包含 n 個樣本的 Batch 定義為:
,以圖像分類為例,圖片先進行數據增強,然后將其輸入神經網絡,優(yōu)化預測輸出與真值間的交叉熵損失:
上式中 p_i 的表達式如下:
θ為網絡參數,K 表示分類類別數,τ表示溫度。
為了提高泛化能力,傳統的 vanilla 知識蒸餾通過額外優(yōu)化的 KL 散度損失來遷移預先訓練好的 teacher 網絡的知識,即:
不同于以往采用預先訓練 teacher 模型的方式生成(P_i^τ ) ?,DLB 采用訓練中前一個 Batch 蘊含的信息生成(P_i^τ ) ?,并將其作為正則化的即時平滑標簽。
圖 2:DLB 訓練方式示意圖
如圖 2 所示,數據樣本在第 t 次迭代時的定義為
,神經網絡的參數為θ_t。
B_t 和 B_(t-1)是通過使用數據采樣器獲得,在前向過程后計算 L_CE。每個小批次的一半限制為與上一個 iteration 一致,其余一半與下一個 iteration 一致。之后,前半部分小批次利用上一個 iteration 中生成的動態(tài)軟目標進行學習。即
由 t-1 次迭代的軟標簽(soften labels)
生成。因此,引入的正則化損失公式如下:
存儲平滑標簽只需要很少的額外內存成本,所以帶來的額外計算成本很低。整體損失函數由下式表示:
綜上,DLB 算法整體的訓練的偽代碼如下所示:
實驗設置
研究員們采用三個圖像分類基準數據集評估性能,包括 CIFAR-10、CIFAR-100TinyImageNet。實驗結果都達到了最佳性能,如下表所示:
具體而言,在平均錯誤率層面, DLB 在 CIAFR-100 改進幅度為 0.83% 至 2.50%,在 CIFAR-10 上為 0.37% 至 1.01%,在 TinyImageNet 上為 0.81% 至 3.17。值得一提的是,DLB 的表現明顯優(yōu)于 Tf-KD 和 PS-KD,這證明了 DLB 在模型泛化提升上的優(yōu)勢。
為了評估 DLB 與基于數據增強正則化方法的兼容性,研究員在 CIFAR-10 和 CIFAR-100 上將 DLB 與 CutMix、CutOut 和 DDGSD 相結合。如下所示,實驗表明通過結合 DLB 和基于增強的正則化,可以實現額外的性能增益。
為了證明魯棒性,研究員在訓練之前向 CIFAR-100、CIFAR-10 隨機注入標簽噪聲,實驗結果如下圖所示,DLB 可以有效地抵抗標簽噪聲并提高整體性能。
結語
本文提出了一種基于自蒸餾思想的深度學習訓練策略,將自蒸餾思想融入到模型訓練過程中,對傳統知識蒸餾進行改進,無需額外預先訓練 teacher 的過程。通過在三個基準數據集上進行實驗,多維度論證了 DLB 訓練策略的有效性與普適性。
當下,深度學習網絡模型結構復雜度不斷提升,使用有限硬件資源開發(fā)和部署 AI 模型成為新的科研問題。在本文中,研究員設計的 DLB 訓練策略,在某種程度上解決了「不增加模型復雜度,提高模型準確率」這一業(yè)界難題。