論文題目:Curriculum Temperature for Knowledge Distillation
論文(AAAI 2023):https://arxiv.org/abs/2211.16231
開源代碼(歡迎star):
https://github.com/zhengli97/CTKD
一句話概括:
相對于靜態(tài)溫度超參蒸餾,本文提出了簡單且高效的動態(tài)溫度超參蒸餾新方法。
背景問題:
目前已有的蒸餾方法中,都會采用帶有溫度超參的KL Divergence Loss進行計算,從而在教師模型和學(xué)生模型之間進行蒸餾,公式如下:
而現(xiàn)有工作普遍的方式都是采用固定的溫度超參,一般會設(shè)定成4。
方法 |
FitNet (ICLR 15') |
AT (ICLR 17') |
SP (ICCV 19') |
Snapshot (CVPR 19') |
SSKD (ECCV 20') |
FRSKD (CVPR 21') |
---|---|---|---|---|---|---|
τ的設(shè)定 | 3 | 4 | 4 | 2 or 3 | 4 | 4 |
那么這就帶來了兩個問題:
1. 不同的教師學(xué)生模型在KD過程中最優(yōu)超參不一定是4。如果要找到這個最佳超參,需要進行暴力搜索,會帶來大量的計算,整個過程非常低效。
2. 一直保持靜態(tài)固定的溫度超參對學(xué)生模型來說不是最優(yōu)的。基于課程學(xué)習(xí)的思想,人類在學(xué)習(xí)過程中都是由簡單到困難的學(xué)習(xí)知識。那么在蒸餾的過程中,我們也會希望模型一開始蒸餾是讓學(xué)生容易學(xué)習(xí)的,然后難度再增加。難度是一直動態(tài)變化的。
于是一個自然而然的想法就冒了出來:
在蒸餾任務(wù)里,能不能讓網(wǎng)絡(luò)自己學(xué)習(xí)一個適合的動態(tài)溫度超參進行蒸餾,并且參考課程學(xué)習(xí),形成一個蒸餾難度由易到難的情況?
于是我們就提出了CTKD來實現(xiàn)這個想法。
方法:
既然溫度超參τ可以在蒸餾里決定兩個分布之間的KL Divergence,進而影響模型的學(xué)習(xí),那我們就可以通過讓網(wǎng)絡(luò)自動學(xué)習(xí)一個合適的τ來達到以上的目的。
于是以上具體問題就直接可以轉(zhuǎn)化成以下的核心思想:
在蒸餾過程里,學(xué)生網(wǎng)絡(luò)被訓(xùn)練去最小化KL loss的情況下,τ作為一個可學(xué)習(xí)的參數(shù),要被訓(xùn)練去最大化KL loss,從而發(fā)揮對抗(Adversarial)的作用,增加訓(xùn)練的難度。隨著訓(xùn)練的進行,對抗的作用要不斷增加,達到課程學(xué)習(xí)的效果。
以上的實現(xiàn)可以直接利用一個非常簡單的操作:利用梯度反向?qū)覩RL (Gradient Reversal Layer )來去反向可學(xué)習(xí)超參τ的梯度,就可以非常直接達到對抗的效果,同時隨著訓(xùn)練的進行,不斷增加反向梯度的權(quán)重λ,進而增加學(xué)習(xí)的難度。
CTKD的論文的結(jié)構(gòu)圖如下:
Fig.1 CTKD網(wǎng)絡(luò)結(jié)構(gòu)圖
CTKD方法可以簡單分為左右兩個部分:
對抗溫度超參τ的學(xué)習(xí)部分。
這里只包含兩個小模塊,一個是梯度反向?qū)覩RL,用于反向經(jīng)過溫度超參τ的梯度,另一個是可學(xué)習(xí)超參溫度τ。
其中對于溫度超參τ,有兩種實現(xiàn)方式,第一種是全局方案 (Global Temperature),只會產(chǎn)生一個τ,代碼實現(xiàn)非常簡單,就一句話:
self.global_T = nn.Parameter(torch.ones(1), requires_grad=True)
第二種是實例級別方案(Instance-wise Temperature),即對每個單獨的樣本都產(chǎn)生一個τ。代碼實現(xiàn)也很簡單,就是兩層conv組成的MLP。
Fig.2 兩種不同的可學(xué)習(xí)溫度超參實現(xiàn)。
2. 難度逐漸增加的課程學(xué)習(xí)部分。
隨著訓(xùn)練的進行,不斷增加GRL的權(quán)重λ,達到增加學(xué)習(xí)難度的效果。
在論文的實現(xiàn)里,我們直接采用Cos的方式,讓反向權(quán)重λ從0增加到1。
以上就是CTKD的全部實現(xiàn),非常的簡單有效。
CTKD總共包含兩個模塊,GRL和溫度生成模塊,都非常的輕量化,
CTKD方法可以作為即插即用的插件應(yīng)用在現(xiàn)有的SOTA的蒸餾方法中,取得廣泛的提升。
實驗結(jié)果
三個數(shù)據(jù)集:CIFAR-100,ImageNet和MS-COCO。
CIFAR-100上,CTKD的實驗結(jié)果:
作為一個即插即用的插件,應(yīng)用在已有的SOTA方法上:
在ImageNet上的實驗:
在MS-COCO的detection實驗上:
溫度超參的整體學(xué)習(xí)過程可視化:
由以上圖可以看到,CTKD整體的動態(tài)學(xué)習(xí)τ的過程。
將CTKD應(yīng)用在多種現(xiàn)有的蒸餾方案上,可以取得廣泛的提升效果。
審核編輯 :李倩
-
模型
+關(guān)注
關(guān)注
1文章
3267瀏覽量
48924 -
代碼
+關(guān)注
關(guān)注
30文章
4802瀏覽量
68743
原文標(biāo)題:AAAI 2023 | 南開/南理工/曠視提出CTKD:動態(tài)溫度超參蒸餾新方法
文章出處:【微信號:CVer,微信公眾號:CVer】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論