0
本文作者: 我在思考中 | 2021-07-02 17:23 | 專題:ICLR 2019 |
AI 科技評論今天給大家介紹一篇 已被 ICLR 2021 接收的論文,論文作者來自卡耐基梅隆大學、香港科技大學、北京大學和馬薩諸塞大學阿默斯特分校(是MEAL系列作者的一篇最新力作)。
論文地址:https://openreview.net/pdf?id=PObuuGVrGaZ
這是一篇非常特別的文章,其中一個審稿人評價這篇文章是標簽平滑和知識蒸餾領域有突破性的一篇文章,并給出了8分的高分。
為什么說它特殊呢,因為論文的核心并不是常見的刷點打榜的工作,而是在澄清和糾正過去一篇比較有名的文章中提出的一個重要發(fā)現(xiàn),基于這個發(fā)現(xiàn)衍生出來的一個觀點和在這個問題上的認知,進而讓人們更好的理解標簽平滑和知識蒸餾的工作原理,那篇被糾正的文章發(fā)表于 NeurIPS 2019 [1] ,作者之一是我們大家都非常熟悉的深度學習先驅之一的Geoffrey Hinton。
大家應該很好奇,大佬的文章也會有不完善的觀點嗎?答案是肯定的。人們對于某些問題的認知本來就是在曲折中不斷前進的。我們首先來介紹一下Hinton那篇文章在講一個什么事情。
Hinton 這篇文章主要是在探究和解釋標簽平滑的機制和工作原理,下面這張圖很好解釋了這種機制:
這篇文章里第一個有意思的發(fā)現(xiàn)是:Label smoothing encourages the activations of the penultimate layer to be close to the template of the correct class and equally distant to the templates of the incorrect classes.這是一個非常重要的發(fā)現(xiàn),它的大意是在說標簽平滑可以消除類內樣本之間的差異,讓學到的同一類別的特征表達更加緊湊。
更具體來說,比如狗這個類別的圖片通常會包含不同的姿態(tài),拍照角度,曝光程度,不同背景等等,標簽平滑可以很好的消除不同樣本特征中這些差異的或者稱為noisy的信息,而更多地保留它的高層語義信息,即狗這個類別信息。
基于標簽平滑這個特點,作者進一步提出了一個觀點,即:If a teacher network is trained with label smoothing, knowledge distillation into a student network is much less effective.
怎么解釋這個結論呢?
如上圖最后一行所示,右側某類樣本在使用標簽平滑之后會聚集在類中心點,因此不同樣本到其他兩種樣本的距離信息會趨向于相同,即標簽平滑抹去了同一類別不同樣本到其他類別的距離的細微差別,作者認為這種現(xiàn)象對于知識蒸餾來說是有害的,因為蒸餾正是需要teacher能擁有這種捕捉同一類別不同樣本之間細微差別的能力才會有效的,因此他們還認為: a teacher with better accuracy is not necessarily the one that distills better. 大概意思就是說teacher性能好對于知識蒸餾來說并不重要。
上述推理聽上去是不是非常合情合理,那么ICLR 2021 這篇文章又在糾正一個什么事情呢?下面這張圖很好的解釋了它究竟在糾正什么:
作者首先重現(xiàn)了NeurIPS 2019那篇文章中的可視化過程,并證明了上述論文中提到的現(xiàn)象是真實存在并可重現(xiàn)的,但是他們還有了一個新的驚人的發(fā)現(xiàn):
如果我們重新來審視上圖中兩個語義相似的類別(每個子圖左側的兩個靠近的類別),當使用標簽平滑訓練的teacher時,同一類別樣本聚集會更加緊密,因為標簽平滑會促使每個樣本與該類中其他樣本的類中心等距,而緊密的聚類會顯著促使語義相似但不同類別的樣本的表達變得更加可分離,即兩個類中心距離 Dc 增大了,這進一步體現(xiàn)為語義相近但是不同類別的樣本獲得更可區(qū)分的特征。
這個現(xiàn)象非常重要,因為這些相似類別(分辨困難的類別)是提高分類模型性能的關鍵。一般來說,我們沒有必要去衡量"狗和魚有多像或者有多不像",因為我們有足夠的線索和特征來區(qū)分它們(即右側類樣本到左側類別的距離不重要),但對于細粒度的類別之間比如不同種類的狗,如果能得到" toy poodle與miniature poodle不同的程度"的信息對于區(qū)分它們是非常關鍵的。
上述分析作者從原理上解釋了為什么標簽平滑和知識蒸餾并不沖突,為了更好地闡述兩者關系,作者提出了一個能定量地衡量被抹去信息大小的指標,稱之為stability metric,它的數學表達如下:
物理意義為:如果標簽平滑會抹除類內的信息,類內樣本的特征表達的差異也將相應減少,因此,我們可以使用這種差異來監(jiān)測標簽平滑抹除信息的程度,因為此指標也可以評估同一類別中不同樣本特征表達波動程度,因此我們也稱之為穩(wěn)定性指標。
文章還有一個重要的觀點是:
作者提出如果知識蒸餾不考慮使用原始數據集one-hot標簽項,本質上標簽平滑和知識蒸餾優(yōu)化方式是一致的(都是cross-entropy loss),唯一差別是soft的監(jiān)督信息的來源方式不一樣,知識蒸餾使用的是固定權重參數的teacher模型(一種動態(tài)的監(jiān)督信息獲取方式),標簽平滑使用的是人為制定的平滑規(guī)則(固定不變的標簽信息)。
總言而之,文章中作者試圖去解答下面幾個關鍵問題:
1、teacher網絡訓練時候使用標簽平滑是否會抑制知識蒸餾階段的有效性?
2、哪些因素將真正決定student在知識蒸餾中的性能?
3、標簽平滑在什么情況下會真正失去有效性?
實驗部分
作者在圖像分類,二值化網絡,機器翻譯等任務上進行了大量的實驗來驗證他們的觀點,并且完全拋棄了可能會帶來誤導的小數據集,比如CIFAR。眾所周知,CIFAR上的實驗結果和現(xiàn)象經常會跟ImageNet上的不一致,從而產生誤導。
作者首先可視化了teacher產生的soft的監(jiān)督信息的分布如下圖所示,我們可以看到使用標簽平滑訓練teacher產生的監(jiān)督信號整體上是低于不使用標簽平滑,這跟標簽平滑本身的工作機制是一致的。
作者還展示了在一些次要類別上的信號分布(下圖2),這也是為什么soft標簽可以提供更多細微的語義信息差別的原因。
接下來是在圖像分類任務上的結果,包括ImageNet-1K以及CUB200-2011。我們可以看到,不管teacher有沒有使用標簽平滑訓練,student的性能基本是跟teacher的性能保持正相關的,即teacher性能越高,student也越高。
作者進一步可視化了知識蒸餾過程的loss曲線和測試誤差曲線,如下圖。作者發(fā)現(xiàn)如果teacher是使用標簽平滑訓練出來的,那么在知識蒸餾過程中產生的loss會比較大,如下圖左側,但是這個更大的loss值并不會影響student的性能,也就是說,標簽平滑訓練的teacher產生的抑制作用只會發(fā)生在訓練數據集上,并不會延續(xù)到測試數據上,即student的泛化能力還是得到保證的。
這也是一個非常有意思的發(fā)現(xiàn),本質上,這種更大的loss是由于監(jiān)督信號更加扁平(flattening)造成的,它具有一定的正則作用防止模型過擬合。
那么什么情況會真正導致標簽平滑無效或者效果變弱呢?
作者發(fā)現(xiàn)在下列兩種情況下標簽平滑會失效或者沒那么有效:
1、數據集呈現(xiàn)長尾分布的時候(long-tailed);
2、類別數目變多的時候。具體猜測原因可以去閱讀原文。
最后回答一個大家或許最關心的問題:
知識蒸餾到底需要怎么樣的teacher?
本質上,針對不同的場景和任務,需要的teacher類型也不盡相同,但大體上來說,精度越高的網絡,通??梢哉麴s出更強的student(如下圖),當然student的性能也受其自身的結構容量限制。
更多細節(jié)大家可以去閱讀原論文:
論文地址:https://openreview.net/pdf?id=PObuuGVrGaZ
項目主頁:http://zhiqiangshen.com/projects/LS_and_KD/index.html
References:
[1] Müller, Rafael, Simon Kornblith, and Geoffrey Hinton. "When does label smoothing help?." In NeurIPS (2019).
雷鋒網雷鋒網雷鋒網
雷峰網特約稿件,未經授權禁止轉載。詳情見轉載須知。