1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        知識(shí)蒸餾綜述: 知識(shí)的類(lèi)型

        共 4336字,需瀏覽 9分鐘

         ·

        2021-12-01 22:33



        【GiantPandCV引言】

        總結(jié)一篇綜述《Knowledge Distillation A Survey》中的內(nèi)容,提取關(guān)鍵部分以及感興趣部分進(jìn)行匯總。這篇是知識(shí)蒸餾綜述的第一篇,主要內(nèi)容為知識(shí)蒸餾中知識(shí)的分類(lèi),包括基于響應(yīng)的知識(shí)、基于特征的知識(shí)和基于關(guān)系的知識(shí)。




        1知識(shí)蒸餾簡(jiǎn)介

        定義:知識(shí)蒸餾代表將知識(shí)從大模型向小模型傳輸?shù)倪^(guò)程。

        作用:可以用于模型壓縮和訓(xùn)練加速 手段。

        綜述梳理思路:

        • 知識(shí)蒸餾的種類(lèi)

        • 訓(xùn)練機(jī)制

        • 教師-學(xué)生 架構(gòu)

        • 蒸餾算法

        • 性能比較

        • 實(shí)際應(yīng)用

        典型的知識(shí)蒸餾KD是Hinton于15年發(fā)表的paper,明確了知識(shí)蒸餾的想法是讓學(xué)生模型通過(guò)模仿教師模型來(lái)取得具有競(jìng)爭(zhēng)性的性能,甚至可以取得超越教師網(wǎng)絡(luò)的性能。

        知識(shí)蒸餾的核心研究:如何將知識(shí)從大模型傳遞給小模型。

        知識(shí)蒸餾系統(tǒng)的三個(gè)核心組件:

        • 知識(shí) knowledge

        • 蒸餾算法 distillation algorithm

        • 教師學(xué)生架構(gòu) teacher-student architecture

        知識(shí)蒸餾相關(guān)的擴(kuò)展方向:

        • teacher - student learning

        • mutual learning

        • assistant teaching

        • life long learning

        • self learning

        在知識(shí)蒸餾中,我們主要關(guān)心:知識(shí)種類(lèi)、蒸餾策略、教師學(xué)生架構(gòu)

        最原始的蒸餾方法是使用大模型的logits層作為教師網(wǎng)絡(luò)的知識(shí)進(jìn)行蒸餾,但知識(shí)的形式還可以是:激活、神經(jīng)元、中間層特征、教師網(wǎng)絡(luò)參數(shù)等??梢詫⑵錃w類(lèi)為下圖中三種類(lèi)型。

        2基于響應(yīng)的知識(shí)(Response-Based Knowledge)

        基于響應(yīng)的知識(shí)一般指的是神經(jīng)元的響應(yīng),即教師模型的最后一層邏輯輸出。

        響應(yīng)知識(shí)的loss:

        其核心想法是讓學(xué)生模型模仿教師網(wǎng)絡(luò)的輸出,這是最經(jīng)典、最簡(jiǎn)單、也最有效的處理方法

        Hinton提出的KD是將teacher的logits層作為soft label.

        T是用于控制soft target重要程度的超參數(shù)。

        那么整體蒸餾loss可以寫(xiě)作:

        一般來(lái)講使用KL散度來(lái)衡量?jī)烧叻植疾町?,通過(guò)優(yōu)化以上loss可以使得學(xué)生網(wǎng)絡(luò)的logits輸出盡可能和教師網(wǎng)絡(luò)的logits輸出相似,從而達(dá)到學(xué)習(xí)的目的。

        KD中除了蒸餾的一項(xiàng)通常還會(huì)使用交叉熵?fù)p失函數(shù)令學(xué)生網(wǎng)絡(luò)學(xué)習(xí)真實(shí)標(biāo)簽(也稱(chēng)hard label),兩項(xiàng)聯(lián)合起來(lái)進(jìn)行訓(xùn)練。

        KD通常的解釋是學(xué)生網(wǎng)絡(luò)可以從教師網(wǎng)絡(luò)中學(xué)習(xí)到額外的隱形知識(shí)(dark knowledge), 而這種知識(shí)要比通過(guò)標(biāo)簽學(xué)習(xí)的知識(shí)更容易理解。

        KD其他角度的解釋還包括:KD可以生成類(lèi)似label smooth的soft target;KD可以視為一種正則化方法;

        基于響應(yīng)的知識(shí)只用到了模型最后一層logits中包含的知識(shí),而并沒(méi)有用到中間層的監(jiān)督,而中間層的監(jiān)督信息在表征學(xué)習(xí)中非常有用。

        3基于特征的知識(shí)(Feature-Based Knowledge)

        在深度卷積神經(jīng)網(wǎng)絡(luò)中,網(wǎng)絡(luò)學(xué)習(xí)到的知識(shí)是分層的,從淺到深層對(duì)應(yīng)的知識(shí)抽象程度越來(lái)越高。因此中間層的特征也可以作為知識(shí)的載體,供學(xué)生網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)。

        基于特征的知識(shí)可以視為基于響應(yīng)的知識(shí)的一個(gè)擴(kuò)展。

        FitNets是第一個(gè)引入中間層表征的,教師網(wǎng)絡(luò)的中間層可以作為學(xué)生網(wǎng)絡(luò)對(duì)應(yīng)層的提示(Hints層)從而提升學(xué)生網(wǎng)絡(luò)模型的性能。其核心是期望學(xué)生能夠直接模仿教師網(wǎng)絡(luò)的特征激活值。

        以FitNets為基礎(chǔ)擴(kuò)展出幾篇工作:

        • Paying more attention to attention: 提出去學(xué)習(xí)從原先特征圖中派生得到的注意力圖(Attention map)

        • Like what you like: Knowledge distill via neuron selectivity transfer: ?認(rèn)為神經(jīng)元是有選擇性的,而這種選擇性與任務(wù)是相關(guān)的,提出神經(jīng)元選擇性遷移,將教師與學(xué)生這種神經(jīng)元的選擇模式分布對(duì)齊。通過(guò)引入了MMD Matching Loss進(jìn)行實(shí)現(xiàn)。

        • Learning deep representation with probabilistic knowledge transfer: 通過(guò)匹配特征空間的概率分布遷移知識(shí)。

        • paraphrasing complex network: Network Compression via factor transfer:引入factor作為一種中間層表征的可理解形式。

        • Knowledge distillation via route constrained optimization: 致力于降低教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的gap,提出使用路線約束的暗示學(xué)習(xí)(Hints learning)。

        • Knowledge transfer via distillation of activation boundaries formed by hidden neurons: 提出使用隱層神經(jīng)元的激活邊界進(jìn)行知識(shí)遷移。

        • Cross-Layer Distillation with Sematic Calibration: 為了匹配教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的語(yǔ)義信息,提出通過(guò)attention allocation自適應(yīng)為學(xué)生層分配合適的教師層, 實(shí)現(xiàn)跨層的知識(shí)蒸餾。

        基于特征的知識(shí)遷移可以建模為:

        其中表示一個(gè)轉(zhuǎn)換函數(shù),因?yàn)榻處熅W(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的特征層可能出現(xiàn)尺寸不匹配的情況,所以需要轉(zhuǎn)換。表示用于匹配教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的相似度計(jì)算函數(shù)。

        下圖總結(jié)了各個(gè)基于特征的知識(shí)的匹配類(lèi)型:

        一般而言,在基于特征的知識(shí)遷移中,研究的對(duì)象包括了:

        • 如何需選擇知識(shí)類(lèi)型?特征圖、注意力圖、gram矩陣或其他

        • 如何選擇教師層和學(xué)生層?簡(jiǎn)單的一對(duì)一匹配,自適應(yīng)通過(guò)注意力匹配。

        • 如何彌補(bǔ)教師網(wǎng)絡(luò)與學(xué)生網(wǎng)絡(luò)之間的GAP?如果容量相差過(guò)大,可能會(huì)導(dǎo)致學(xué)習(xí)效果變差。

        4基于關(guān)系的知識(shí)(Relation-Based Knowledge)

        基于關(guān)系的知識(shí)進(jìn)一步擴(kuò)展了基于響應(yīng)的知識(shí)以及基于特征的知識(shí),更全面深入的探索了不同層、不同數(shù)據(jù)樣本之間的關(guān)系。

        不同層之間的關(guān)系建模

        • A gift from knowledgedistillation:fast optimization, network minimization and transfer learning: (FSP) 提出了Flow of solution process(FSP)的方法,定義了兩個(gè)層之間的Gram矩陣,從而可以總結(jié)特征圖不同對(duì)之間的關(guān)系。https://github.com/yoshitomo-matsubara/torchdistill/blob/5377be466c9460e0125892aa0d92aeb86418c752/torchdistill/losses/single.py L110行有具體實(shí)現(xiàn)。

        • self-supervised knowledge distillation using singular value decompostion: 提出利用特征圖之間的相關(guān)性進(jìn)行蒸餾,使用奇異值分解的方式來(lái)提取特征圖中關(guān)鍵信息。

        • Better and faster: knowledge transfer from multiple self-supervieds learning tasks via graph distillation for video classification: 為了使用多個(gè)教師網(wǎng)絡(luò)的知識(shí),構(gòu)建了使用logits層和特征圖作為節(jié)點(diǎn)的兩個(gè)graph。

        • Graph-based knowledge distillation by multi-head attention network: 提出使用Multi head graph-based 知識(shí)蒸餾方法,通過(guò)使用graph建模兩兩feature map之間的關(guān)系。

        • Heterogeneous Knowledge Distillation using information flow modeling: 提出讓學(xué)生模仿教師網(wǎng)絡(luò)信息流動(dòng)過(guò)程來(lái)得到知識(shí)。

        基于關(guān)系的知識(shí)通??梢越椋?/p>

        表示學(xué)生網(wǎng)絡(luò)內(nèi)成對(duì)的特征圖,代表相似度函數(shù),代表教師網(wǎng)絡(luò)與學(xué)生網(wǎng)絡(luò)的關(guān)聯(lián)函數(shù)。

        不同樣本之間的關(guān)系建模

        傳統(tǒng)的知識(shí)遷移通常只關(guān)心個(gè)體知識(shí)蒸餾,但是通常知識(shí)不僅包括特征的信息,還包括數(shù)據(jù)樣本之間的互作用關(guān)系。

        • Knowledge distillation via instance relationship graph提出了通過(guò)個(gè)體及關(guān)系圖進(jìn)行知識(shí)蒸餾的方法,遷移的知識(shí)包括個(gè)體級(jí)別特征。

        • Relational knowledge distillation提出關(guān)系知識(shí)蒸餾,從個(gè)體關(guān)系中進(jìn)行知識(shí)遷移

        • Learning student networks via feature embedding結(jié)合流型學(xué)習(xí),學(xué)生網(wǎng)絡(luò)可以通過(guò)特征嵌入進(jìn)行學(xué)習(xí),從而保證教師網(wǎng)絡(luò)中間層特征的樣本相似度。

        • Probabilistic Knowledge Transfer for Lightweight Deep Representation Learning使用概率分布來(lái)建模教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的關(guān)系。

        • Similarity-preserving knowledge distillation提出相似性保留的知識(shí),使得教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)根據(jù)相同的樣本對(duì)產(chǎn)生相似的激活。

        • Correlation congruence for knowledge distillation提出基于關(guān)系一致的知識(shí)蒸餾方法,可以同時(shí)蒸餾instance-level的信息以及between instance的信息。

        instance relation的建模如下:

        與不同層之間建模不同的是,上邊的公式衡量的對(duì)象是層與層的關(guān)系即:, 而此處衡量的是樣本與樣本之間的關(guān)系(如上圖所示),即

        下表對(duì)蒸餾知識(shí)從不同角度進(jìn)行分類(lèi),比如數(shù)據(jù)的結(jié)構(gòu)化知識(shí)、輸入特征的專(zhuān)有知識(shí)等。

        5參考

        Gou, J., Yu, B., Maybank, S.J., & Tao, D. (2021). Knowledge Distillation: A Survey. ArXiv, abs/2006.05525.

        https://arxiv.org/pdf/2006.05525.pdf







        瀏覽 110
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            看操逼视频123 | 白丝开裆校花裸体被羞羞爽视频 | 啊轻点灬太粗嗯太深了用 | 日本一级婬片A片AAA毛片价格 | 亚洲日韩一区二区在线观看 | 人人艹在线视频 | 黄色漫画推荐 | 99久久毛片 | 91大神『啪神ben最新 | 美女扒开粉嫩尿囗的桶爽www |