女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

介紹網絡壓縮算法,知識蒸餾

YCqV_FPGA_EETre ? 來源:FPGA開發圈 ? 2019-11-29 11:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

學過化學的都知道蒸餾這個概念,就是利用不同組分的沸點不同,將不同組分從混合液中分離出來。知識蒸餾用于網絡壓縮,也具有類似的性質。具體的講,有一個大的神經網絡充當了“老師”的角色,她將書本上的知識先經過自己的轉化和吸收,然后再傳授給“學生”網絡。學生網絡模型相對較小,但是經過老師將知識提取教授,也可以實現大網絡的功能。

知識蒸餾的方法是大名鼎鼎的Hinton提出的,這種方法實現了大網絡向小網絡的知識遷移,使得應用場景可以擴展到移動端。接下來我們具體看看知識蒸餾的整個過程。

1

原理

表面上看,大網絡應該有更好的表達能力,或者說泛化能力。而小網絡節點數量和大網絡還有很大的差距,它如何能夠做到逼近大網絡的結果呢?首先,這與具體的應用場景范圍有關,在一定的場景下,小網絡可以接近大網絡的分類能力。這就好像對于某個更復雜的函數,當限定某個值域的時候,可以用一些簡單函數來逼近。其次,網絡分類器最終的結果是用概率來表示的,分類結果取決于概率最大的。因此最大概率是90%和最大概率是60%的最終分類結果是一樣的,這點就給了小網絡更靈活的表達方式。最后就是小網絡逼近大網絡的程度和大網絡的冗余程度有關,這類似于對大網絡實行剪枝的結果。

那么如何訓練一個小網絡呢?我們可以先考慮一下在數值分析中,用一個函數S(x)來逼近另外一個函數f(x),那么就可以通過最小化這兩個函數在每個點的平方和來實現。同理,訓練小的網絡也必須使用大網絡的輸入和輸出作為訓練集,而不能再使用訓練大網絡的訓練集了。原始訓練集的標注結果是絕對的(是和不是:1,0),而大網絡的輸出結果是一個概率向量,其包含了每一類的概率大小。這個結果不再僅僅只含有原始訓練集的信息,它還包含了大網絡的信息。比如在原始圖片中,一張貓的圖片結果只有一個,但是經過大網絡后,不僅僅有貓的結果,還有狗,房子,樹等每個類別的概率結果。其他類別的概率實際上告訴了我們不同類別之間存在的差異和共性,比如一張貓的圖片中是狗的概率可能就比是房子的概率大,因為貓和狗相對于貓和房子有更大的共性。

神經網絡通常使用softmax函數來生成分類概率,這個函數形式為:

其中T是溫度,通常設置為1。使用較高的T可以產生更加softer的概率分布。更softer的概率分布提高網絡的泛化能力,有利于小網絡的訓練。

寫到這里小編對softmax函數感到好奇,為什么神經網絡都采用softmax來進行概率計算呢?學過熱力學的會發現,這個softmax函數非常類似不同能級上粒子分布概率,位于能級E的粒子分布概率就是正比于:

而且溫度越高高能級粒子概率也越大,這與softmax函數也有同樣的結果。其實觀察他們的推導過程就會發現,它們之所以有相同的形式來自于它們都是多分類問題,而且概率模型都屬于廣義線性模型。Softmax函數正是在廣義線性函數的假設上推導出來的。現在我們給出其傳統推導,和基于熱力學統計的推導方法。

首先看什么是廣義線性模型,廣義線性模型是用于處理條件概率的一個基本模型,很多常見的分布模型(伯努利,高斯等)都屬于廣義線性模型。定義線性預測算子:

定義y基于x的條件概率分布,這個分布就是廣義線性模型:

分類問題就是求在給定輸入x的條件下,估計y值,即y屬于哪個類的問題。可以通過期望值來作為y的估計。容易得到這個期望值為:

因此一旦知道y的概率分布就知道了y的估計。這個估計就是回歸函數。現在我們來看softmax的傳統推導。

Y有多個可能的分類:

每種分類對應著概率:

定義:

其中有:

于是得到廣義分布:

其中有,

然后可以求出:

求得估計值:

這就是softmax函數。

現在我們從統計熱力學角度來推導softmax函數。

神經網絡的作用是對輸入進行特征提取,我們可以把這個提取過程表示為:

現在我們需要來理解E_i,這個應該是表示從屬于特征i的程度,我們可以選擇一定函數f(E_i)來作為評價屬于特征i的程度。現在我們假設特征1到k是可以涵蓋所有輸入的,即任何輸入都是由這些特征構成的,特征值反應了輸入屬于某個特征的量,那么所有這些特征的量之和應該是所有輸入量的和,那么我們可以有:

我們現在需要求y屬于這個特征的概率,即:

現在我們假設有N個數,這些數要分配不同的y值。這些數被分配是完全隨機的,但是受到每種y值的數量限制,對應E_i的數量為N_i。那么將這N個數分配給k個不同類的分配方式可以得到:

我們來最大化W,即求最大似然函數:

滿足約束條件:

我們利用拉格朗日對偶原理來求解極值:

我們可以得到類似玻爾茲曼分布的公式:

其中u就是溫度1/T。

現在回到正題,過于softer的代價函數可能會造成分類結果錯誤率低,為了平衡分類錯誤和小模型泛化能力,hinton提出使用兩個代價函數來進行訓練,一個是T值較大,另外一個是T值為1。通過調節這兩個代價函數的比例來獲得滿意的訓練結果。

2

實驗結果

Hinton的論文中分別在MINIST,語音識別上進行了實驗。我們僅僅看一下實驗結果,對知識蒸餾效果有個簡單印象。更深入的理解離不開實踐,只有真正去寫代碼去看結果,才能不會紙上談兵。

1) MINIST

大網絡含有2個隱含層,1200個激活單元,60000個訓練集圖片。作者通過剪枝來將大網絡減小到只有800個激活單元,將溫度增加到20,相比于沒有regularization會減小很大錯誤率。

2) 語音識別

這里作者使用多個小網絡集合來作為教師網絡,然后單個網絡作為學生網絡。每個網絡為8個隱含層,2560個激活單元,訓練集有14000個標注數據。結果如下:

其中WER為錯誤率。

總結

本文介紹了網絡壓縮算法,知識蒸餾。很多是小編個人理解,如有不同意見歡迎指正交流。更多可以參考hinton大神的知識蒸餾文獻。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4709

    瀏覽量

    95362
  • 函數
    +關注

    關注

    3

    文章

    4380

    瀏覽量

    64850
  • 網絡節點
    +關注

    關注

    0

    文章

    54

    瀏覽量

    16357

原文標題:【網絡壓縮三】知識蒸餾

文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發圈】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于FPGA的壓縮算法加速實現

    本設計中,計劃實現對文件的壓縮及解壓,同時優化壓縮中所涉及的信號處理和計算密集型功能,實現對其的加速處理。本設計的最終目標是證明在充分并行化的硬件體系結構 FPGA 上實現該算法時,可以大大提高該
    的頭像 發表于 07-10 11:09 ?689次閱讀
    基于FPGA的<b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>加速實現

    神經網絡壓縮框架 (NNCF) 中的過濾器修剪統計數據怎么查看?

    無法觀察神經網絡壓縮框架 (NNCF) 中的過濾器修剪統計數據
    發表于 03-06 07:10

    什么是BP神經網絡的反向傳播算法

    BP神經網絡的反向傳播算法(Backpropagation Algorithm)是一種用于訓練神經網絡的有效方法。以下是關于BP神經網絡的反向傳播
    的頭像 發表于 02-12 15:18 ?765次閱讀

    摩爾線程宣布成功部署DeepSeek蒸餾模型推理服務

    近日,摩爾線程智能科技(北京)有限責任公司在其官方渠道發布了一則重要消息,宣布公司已經成功實現了對DeepSeek蒸餾模型推理服務的部署。這一技術突破,標志著摩爾線程在人工智能領域邁出了堅實的一步
    的頭像 發表于 02-06 13:49 ?812次閱讀

    大連理工提出基于Wasserstein距離(WD)的知識蒸餾方法

    自 Hinton 等人的開創性工作以來,基于 Kullback-Leibler 散度(KL-Div)的知識蒸餾一直占主導地位。 然而,KL-Div 僅比較教師和學生在相應類別上的概率,缺乏跨類別比較
    的頭像 發表于 01-21 09:45 ?634次閱讀

    EE-257:面向Blackfin處理器的引導壓縮/解壓縮算法

    電子發燒友網站提供《EE-257:面向Blackfin處理器的引導壓縮/解壓縮算法.pdf》資料免費下載
    發表于 01-07 13:56 ?0次下載
    EE-257:面向Blackfin處理器的引導<b class='flag-5'>壓縮</b>/解<b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>

    ?ISP算法及架構分析介紹

    ),從結果上看就是將RAW數據轉換成壓縮后的RGB(一般)數據,供后續CPU使用(識別、壓縮等)。 市面上很少有直接介紹ISP的書籍或者資料,今天我們主要是聊一聊ISP算法的架構,這樣
    的頭像 發表于 11-26 10:05 ?1890次閱讀
    ?ISP<b class='flag-5'>算法</b>及架構分析<b class='flag-5'>介紹</b>

    【「從算法到電路—數字芯片算法的電路實現」閱讀體驗】+內容簡介

    的Matlab建模和RTL設計,可幫助數字IC設計者掌握常用算法設計思路、工具和流程,從根本上提高設計基本算法電路和復雜算法電路的能力。本書共分為12章。第1~2章介紹
    發表于 11-21 17:14

    【「從算法到電路—數字芯片算法的電路實現」閱讀體驗】+介紹基礎硬件算法模塊

    作為嵌入式開發者往往比較關注硬件和軟件的協調。本書介紹了除法器,信號發生器,濾波器,分頻器等基本算法的電路實現,雖然都是基礎內容,但是也是最常用到的基本模塊。 隨著逆全球化趨勢的出現,過去的研發
    發表于 11-21 17:05

    【「從算法到電路—數字芯片算法的電路實現」閱讀體驗】+一本介紹基礎硬件算法模塊實現的好書

    的。 第一章簡介了芯片研發流程,算法和電路設計,算法和芯片驗證的關系,算法工具等第二章介紹了基本的數字電路基礎,具備基本的計算機或者數字電路教育的這部分
    發表于 11-20 13:42

    【BearPi-Pico H3863星閃開發板體驗連載】LZO壓縮算法移植

    壓縮算法使用 一、概述 壓縮算法是一類用于減小數據大小的計算方法,它們在數據存儲和傳輸領域扮演著重要角色。壓縮
    發表于 11-10 21:45

    壓縮算法的類型和應用

    壓縮算法是一種通過減少數據量來節省存儲空間或傳輸數據的技術。壓縮算法可以分為兩種類型:有損壓縮和無損壓縮
    的頭像 發表于 10-21 13:50 ?905次閱讀

    Huffman壓縮算法概述和詳細流程

    Huffman壓縮算法是一種基于字符出現頻率的編碼算法,通過構建Huffman樹,將出現頻率高的字符用短編碼表示,出現頻率低的字符用長編碼表示,從而實現對數據的壓縮
    的頭像 發表于 10-21 13:48 ?897次閱讀

    使用qboot時選擇了壓縮率更高的zip算法,但是發現編譯報錯,為什么?

    在使用qboot時選擇了壓縮率更高的zip算法,但是發現編譯報錯,如下圖:
    發表于 09-26 07:22

    冰箱壓縮機控制方案介紹

    冰箱壓縮機好比一個小型的“心臟”,通過壓縮低溫低壓氣體來提高氣體的溫度,并通過冷凝、膨脹、蒸發過程,為冰箱提供了制冷的動力。而冰箱壓縮機驅動芯片作為控制壓縮機啟停和運行,實現冰箱溫度調
    的頭像 發表于 08-26 16:53 ?1426次閱讀
    冰箱<b class='flag-5'>壓縮</b>機控制方案<b class='flag-5'>介紹</b>