亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        知識蒸餾在神經(jīng)網(wǎng)絡(luò)中的應(yīng)用

        2023-02-18 09:54:42牛小明
        科海故事博覽 2023年3期
        關(guān)鍵詞:模型教師學(xué)生

        李 銳,周 勇,牛小明

        (中國兵器裝備集團自動化研究所,四川 綿陽 621000)

        近年來,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)在智能機器人、汽車自動駕駛等領(lǐng)域獲得了廣泛的應(yīng)用并取得了良好的應(yīng)用成果。但性能優(yōu)異的DNN 往往具有網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜、節(jié)點數(shù)量巨大等特點。早在2012年ImageNet 競賽中獲得冠軍的AlexNet 就已具有超過6 千萬的參數(shù),且模型占據(jù)的內(nèi)存高達(dá)241MB。隨后涌現(xiàn)的優(yōu)秀神經(jīng)網(wǎng)絡(luò)如ResNet、VGG、GoogLeNet、DenseNet 等具有更加優(yōu)異的性能,但隨之而來的是更加龐大的網(wǎng)絡(luò)模型、更加復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),所以模型運行對內(nèi)存需求和算力需求逐漸增加。目前來看將DNN 模型部署到一些存儲和算力相對較低的硬件設(shè)備上依舊具有一定的難度。所以,如何在保證神經(jīng)網(wǎng)絡(luò)性能的同時盡可能降低網(wǎng)絡(luò)模型的復(fù)雜度,從而使得優(yōu)秀的網(wǎng)絡(luò)模型能夠運行在更廣泛的硬件設(shè)備上是近年來學(xué)界的熱門課題,該項課題技術(shù)的進(jìn)步也對人工智能的廣泛應(yīng)用有著積極的意義。本文將介紹知識蒸餾的基本方法,并展示一種手寫體識別模型的蒸餾以及硬件設(shè)備的部署。

        1 知識蒸餾

        知識蒸餾的過程涉及教師模型(Teacher Model)、學(xué)生模型(Student Model)這兩個模型。教師模型選取大型神經(jīng)網(wǎng)絡(luò),具有網(wǎng)絡(luò)復(fù)雜度高、參數(shù)量巨大的特點,識別效果好但是不適合在低算力低內(nèi)存設(shè)備中運行的模型,這類模型依賴大型服務(wù)器訓(xùn)練這種高性能硬件。學(xué)生模型復(fù)雜度低,但需要結(jié)構(gòu)與教師模型相近,是適合在硬件資源有限的平臺部署的一類模型。知識蒸餾的主要思想是以教師模型的高識別準(zhǔn)確率經(jīng)驗去指導(dǎo)并訓(xùn)練學(xué)生模型,使得學(xué)生模型的識別準(zhǔn)確率較傳統(tǒng)訓(xùn)練方法大幅提升,從而達(dá)到精簡模型,降低模型部署門檻的目的。

        Hinton 等人[1]在2015 年首次提出知識蒸餾(Knowl edge Distillation,KD)這一網(wǎng)絡(luò)壓縮技術(shù)。在現(xiàn)有的神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法的基礎(chǔ)上,區(qū)別于傳統(tǒng)的硬標(biāo)簽(hard-taget)只能給出唯一的識別結(jié)果,Hinton 等人提出了軟目標(biāo)(soft-target),能夠給出分類結(jié)果屬于某一種類別的概率,這一參數(shù)用于計算出總損失函數(shù)用以指導(dǎo)訓(xùn)練學(xué)生模型。軟目標(biāo)(soft-target)的計算結(jié)果qi可從以下函數(shù)計算得出。

        與傳統(tǒng)的softmax 函數(shù)不同,這里引入了蒸餾溫度T 這一參數(shù),公式中的zi是輸入數(shù)據(jù)為第i 類結(jié)果的概率。在訓(xùn)練的過程中需要計算蒸餾損失(Distillation Loss)以及學(xué)生模型損失(Student Loss)。其中蒸餾損失是在選定的蒸餾溫度下分別訓(xùn)練教師模型和學(xué)生模型后,通過交叉熵?fù)p失函數(shù)[2]計算出的結(jié)果;學(xué)生模型損失是學(xué)生模型在選定蒸餾溫度T 為1 訓(xùn)練后與已知的硬標(biāo)簽(hard-taget)對比計算出的結(jié)果。結(jié)合以上兩個損失參數(shù)可計算出一個新的損失函數(shù),用該函數(shù)對學(xué)生模型進(jìn)行反向傳播。整個蒸餾過程如圖1所示。

        圖1 知識蒸餾基本流程

        知識蒸餾壓縮效果的評價指標(biāo)包含以下三種:(1)學(xué)生網(wǎng)絡(luò)中模型參數(shù)較教師模型的降低比率,這一指標(biāo)直接體現(xiàn)知識訓(xùn)練對網(wǎng)絡(luò)的壓縮率;(2)通過知識蒸餾訓(xùn)練后學(xué)生模型識別效率與教師模型之間的差距;這一指標(biāo)能夠直觀體現(xiàn)壓縮后網(wǎng)絡(luò)的精度損失量;(3)通過知識蒸餾這一訓(xùn)練的學(xué)生模型與常規(guī)訓(xùn)練后的學(xué)生模型性能之間的差異。這一標(biāo)準(zhǔn)能夠體現(xiàn)在一定壓縮率(本次蒸餾訓(xùn)練)的情況下訓(xùn)練學(xué)習(xí)過程的有效率。

        圖2 卷積神經(jīng)網(wǎng)絡(luò)構(gòu)成圖

        通過知識蒸餾的過程獲得的學(xué)生模型,與教師模型相比復(fù)雜度明顯降低,模型性能損失可控在一定范圍,對低算力硬件平臺友好。但是由于知識蒸餾對softmax函數(shù)的改造以及軟標(biāo)簽(soft-target)的特性,目前知識蒸餾在分類任務(wù)中能夠取得較好的效果,但在復(fù)雜的識別類任務(wù)中還有很強的局限性。并且學(xué)生模型的性能提升效果嚴(yán)重依賴一個性能良好且適用于該學(xué)生模型的教師模型進(jìn)行訓(xùn)練,所以知識蒸餾在實際應(yīng)用中還有很多需要發(fā)展的方向。

        2 手寫體分類的蒸餾與部署

        2.1 手寫體分類算法

        字符識別一直是圖像分類領(lǐng)域的一項重要應(yīng)用,在簽字文件、金融票據(jù)、郵件信息等方面的手寫信息錄入有著良好的應(yīng)用前景。特別是在實時應(yīng)用場景中,手寫字母識別可以被認(rèn)為是一種特殊的人機交互方式,具有很大的價值。本文中構(gòu)建的手寫體卷積神經(jīng)網(wǎng)絡(luò)構(gòu)成如下。

        2.1.1 輸入層

        輸入層是神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)預(yù)處理層,當(dāng)網(wǎng)絡(luò)的輸入數(shù)據(jù)為圖像數(shù)據(jù)時,圖像信息經(jīng)過輸入層處理后會將轉(zhuǎn)換為一個三維矩陣。該矩陣第一個維度是輸入圖像的高度,第二個維度是圖像的寬度,第三個維度是RGB 數(shù)據(jù)通道。由于不同的圖像可能由不同的色彩分量主導(dǎo),從而使得權(quán)值的主導(dǎo)權(quán)不斷變化導(dǎo)致收斂速度變慢,故需要對RGB 分量做標(biāo)準(zhǔn)化處理。

        2.1.2 卷積層

        卷積層的主要作用是對輸入層預(yù)處理過的圖像數(shù)據(jù)進(jìn)行特征提取。具體規(guī)則是使用較小的矩陣對輸入層得到的三位矩陣進(jìn)行卷積運算,這里使用到的小矩陣又稱做卷積核或濾波器,需要注意卷積核的深度需要與圖像數(shù)據(jù)矩陣的深度一致。選取不同卷積核對應(yīng)提取不同的特征,一般卷積核不宜過大。

        2.1.3 池化層

        池化層實現(xiàn)的效果類似于圖片壓縮,可以在保留有效特征值的同時降低參數(shù)復(fù)雜度。最大池化將矩陣劃分為相同大小的區(qū)域,并在每個區(qū)域內(nèi)選取最大的特征值,該過程忽略了提取的特征值的精確位置,而保留了特征值本生及其相對位置。通過該步驟網(wǎng)絡(luò)中的參數(shù)量會迅速下降,不但提升了后級的計算速度,也可防止過擬合,提高網(wǎng)絡(luò)模型的魯棒性[3]。

        2.1.4 全連接層

        全連接層就是一個分類器,經(jīng)過網(wǎng)絡(luò)中輸入層、卷積層、池化層對數(shù)據(jù)的運算,可以將輸入數(shù)據(jù)映射到特征空間,但是并未與樣本標(biāo)簽產(chǎn)生關(guān)聯(lián)。通過全連接層后,可直接將特征數(shù)據(jù)映射到樣本標(biāo)簽,全連接層可直接由卷積操作實現(xiàn)。

        2.1.5 Softmax 層

        Softmax 層可以將全連接層算出的數(shù)值向量歸一化為得到概率分布向量,各類標(biāo)簽的概率之和為 1。

        2.2 蒸餾過程

        1.首先使用MINST[4]數(shù)據(jù)集訓(xùn)練每個隱藏層具有2000 個神經(jīng)元基于Pytorch 搭建的教師模型,設(shè)置的訓(xùn)練20 輪,得到在數(shù)據(jù)集上分類準(zhǔn)確率為98.32%的onnx 模型。

        2.構(gòu)建一個每個隱藏層僅有50個神經(jīng)元的學(xué)生網(wǎng)絡(luò)。

        3.使用蒸餾溫度T=6 訓(xùn)練教師網(wǎng)絡(luò)(此過程切斷反向傳播)得到soft target1,訓(xùn)練學(xué)生網(wǎng)絡(luò)得到soft targ et2,結(jié)合以上兩個參數(shù)使用交叉熵?fù)p失函數(shù)得到蒸餾損失(Distillation Loss),即學(xué)生模型與教師模型之間的誤差。

        4.在蒸餾溫度T=1 的情況下對訓(xùn)練學(xué)生網(wǎng)絡(luò)得到soft target3,通過學(xué)生網(wǎng)絡(luò)的訓(xùn)練情況與正確的標(biāo)簽結(jié)果進(jìn)行對比,得到學(xué)生模型損失(Student Loss),即學(xué)生模型與正確結(jié)果之間的誤差。

        5.通過以上步驟獲得的蒸餾損失與學(xué)生模型損失利用以下公式得到學(xué)生模型反向傳播時使用的損失函數(shù)L。通過損失函數(shù)L 對學(xué)生模型進(jìn)行反向傳播,即可完成對學(xué)生模型的知識蒸餾過程。

        由于softmax 函數(shù)中引入了蒸餾溫度T,反向傳播過程中梯度受蒸餾影響變?yōu)樵瓉淼?,為恢?fù)梯度尺度,使其與真實標(biāo)簽對應(yīng)的交叉熵的尺度一致,需要在計算交叉熵時乘以T2。

        2.3 晟騰310 平臺的部署及運行結(jié)果

        本文的硬件部署平臺選取華為Atlas 200DK[5],它是基于升騰310 人工智能芯片的一個開發(fā)板產(chǎn)品。該開發(fā)板以Atlas 200AI 加速模塊為核心,可以適配種類眾多的機器學(xué)習(xí)模型對圖片視頻信息進(jìn)行分類推理,該開發(fā)套件有良好的社區(qū)生態(tài)以及完備的技術(shù)指導(dǎo)資料,可快速搭建環(huán)境并進(jìn)行開發(fā),且支持的機器學(xué)習(xí)模型也較為廣泛。

        首先,準(zhǔn)備好一張容量大于32GB 的內(nèi)存卡,一臺有Ubuntu18 系統(tǒng)并配置好交叉編譯環(huán)境的PC 機;使用讀卡器連接內(nèi)存卡與該PC 機,使用weget 獲取制卡腳本make_sdcard.py 和make_sd_card.sh,并使用腳本制卡;制卡成功后使用ssh 連接到開發(fā)板,并用pip 安裝attrs、numpy、decorator、sympy 等相關(guān)依賴;之后安裝Ascend-cann-toolkit。至此開發(fā)板相關(guān)環(huán)境搭建完畢。

        下面進(jìn)行模型部署,模型部署的關(guān)鍵在模型轉(zhuǎn)換,有Mind Studio[6]開發(fā)工具平臺、ATC 命令這兩種方法,由于本文中已配置好CANN 環(huán)境和ATC 工具,可直接將上文中訓(xùn)練好的上傳至開發(fā)套件,并使用ATC 命令將onnx 模型轉(zhuǎn)化為晟騰310 支持的om 離線模型。

        蒸餾結(jié)果及結(jié)論:對于未蒸餾的學(xué)生模型,其在用MINST 數(shù)據(jù)集訓(xùn)上的準(zhǔn)確率為89.68%。而蒸餾后的學(xué)生模型在相同數(shù)據(jù)集上的準(zhǔn)確率提升至91.63%。由此可以較為明顯地看出蒸餾對準(zhǔn)確率的提升。

        3 總結(jié)與展望

        隨著人工智能的發(fā)展,神經(jīng)網(wǎng)絡(luò)會被更多地部署到各種硬件平臺中,其中就包括大量資源有限的硬件,所以未來一定會對降低神經(jīng)網(wǎng)絡(luò)復(fù)雜度及降低對硬件資源的需求設(shè)計產(chǎn)生巨大的需求,知識蒸餾技術(shù)作為一種高效的網(wǎng)絡(luò)壓縮技術(shù),在未來一定會獲得更多的應(yīng)用并獲得長足的發(fā)展。知識蒸餾的效果很大程度上取決于學(xué)生模型能夠從教師模型那里學(xué)到多少知識,即提取知識的效率。目前提取效率還有很大的提升空間。未來,如何讓學(xué)生模型更高效率地從教師模型中提取知識必然成為知識蒸餾的發(fā)展方向。隨著神經(jīng)網(wǎng)絡(luò)規(guī)模的不斷增大,未來知識蒸餾將越來越多地和其他網(wǎng)絡(luò)壓縮方法結(jié)合交叉使用,例如剪枝、量化等方法。隨著具有AI 算力的硬件設(shè)備不斷發(fā)展,未來人工智能算法高效的硬件部署也將成為重要課題。

        猜你喜歡
        模型教師學(xué)生
        一半模型
        最美教師
        快樂語文(2021年27期)2021-11-24 01:29:04
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        教師如何說課
        甘肅教育(2020年22期)2020-04-13 08:11:16
        未來教師的當(dāng)下使命
        趕不走的學(xué)生
        學(xué)生寫話
        3D打印中的模型分割與打包
        學(xué)生寫的話
        国产精品白丝久久av网站| 青青自拍视频成人免费观看| 蜜桃噜噜一区二区三区| 亚洲av综合av一区二区三区| 丰满人妻被黑人猛烈进入| 久久99欧美| 日本久久精品在线播放| 少妇被黑人嗷嗷大叫视频| 人人妻一区二区三区| 精品性影院一区二区三区内射 | 男女激情视频网站在线| 99久久亚洲精品日本无码| 精品久久久久久中文字幕大豆网 | 久久亚洲av无码西西人体| 少妇的丰满3中文字幕| 国产免费午夜福利蜜芽无码| 国产精品一区二区三区在线观看| 日韩少妇内射免费播放18禁裸乳| 一本大道东京热无码| 97av在线播放| 青青久在线视频免费视频| 久久久久久久极品内射| 北条麻妃毛片在线视频| 国产偷闻隔壁人妻内裤av| 国产精品亚洲二区在线看| 日本一卡2卡3卡4卡无卡免费网站 亚洲av无码一区二区三区不卡 | 免费观看黄网站在线播放| 国产无码十八禁| 国产一区二区三区18p| 久久久国产精品va麻豆| 人人妻人人爽人人做夜欢视频九色 | 51看片免费视频在观看| 911精品国产91久久久久| av天堂手机在线免费| 国产人妻熟女高跟丝袜| 人人澡人人澡人人看添av| 久久99精品中文字幕在| 宅男视频一区二区三区在线观看| 日本丰满熟妇videossex一| 亚洲最大天堂无码精品区| 日本一区二区三区的免费视频观看 |