本發(fā)明涉及一種基于全量化vgg風(fēng)格卷積神經(jīng)網(wǎng)絡(luò)的圖像分類方法,具體涉及一種基于查找表實(shí)現(xiàn)vgg風(fēng)格卷積神經(jīng)網(wǎng)絡(luò)全量化推理的圖像分類方法,屬于人工智能與圖像處理。
背景技術(shù):
::1、圖像分類是一項(xiàng)重要的圖像理解任務(wù),旨在從輸入的圖像確定其具體的類別。近年來,深度神經(jīng)網(wǎng)絡(luò)(dnn)在計(jì)算機(jī)視覺、自然語言處理和語音識(shí)別等領(lǐng)域取得了顯著的進(jìn)展,在圖像分類任務(wù)上也取得了顯著的效果。得益于越來越有效的網(wǎng)絡(luò)結(jié)構(gòu)和不斷增加的計(jì)算量與參數(shù)量,基于深度神經(jīng)網(wǎng)絡(luò)的圖像分類算法表現(xiàn)不斷提升。然而在使用階段,這些算法對(duì)算力需求的不斷增長(zhǎng),使得它們不得不被部署在高性能的計(jì)算設(shè)備(例如gpu和fpga服務(wù)器)上,并伴隨非常高的能量消耗。許多的實(shí)際應(yīng)用場(chǎng)景只能提供非常限的計(jì)算能力和能量,例如自動(dòng)駕駛、常開設(shè)備和移動(dòng)設(shè)備等應(yīng)用場(chǎng)景。因此,設(shè)計(jì)一種結(jié)構(gòu)簡(jiǎn)單、能耗更低的圖像分類算法,并保持最先進(jìn)的算法性能,對(duì)圖像分類技術(shù)的實(shí)際應(yīng)用十分重要。2、現(xiàn)有的針對(duì)圖像分類算法和高效深度神經(jīng)網(wǎng)絡(luò)推理技術(shù)的研究,主要包括網(wǎng)絡(luò)搜索、網(wǎng)絡(luò)剪枝和網(wǎng)絡(luò)量化。其中,網(wǎng)絡(luò)量化是一種最為直接和有效的方式,它的目的是減少dnn權(quán)重和激活值的比特位寬,并使用更低精度的整數(shù),甚至二進(jìn)制異或運(yùn)算(xnor)進(jìn)行dnn的推理,從而顯著降低網(wǎng)絡(luò)模型推理時(shí)的硬件資源開銷,節(jié)省內(nèi)存占用并降低推理階段的能量消耗。均勻量化是一類較為常用的量化方式,它通過相同的步長(zhǎng)將全精度值均勻的映射到整數(shù)表示。dorefa-net使用量化梯度進(jìn)行網(wǎng)絡(luò)量化。lsq利用反向傳播的梯度來學(xué)習(xí)量化步長(zhǎng)?,F(xiàn)有的一些工作也已經(jīng)考慮了應(yīng)用非均勻映射量化。lq-nets通過學(xué)習(xí)一組浮點(diǎn)值來得到非均勻量化級(jí)別。miyashita使用二次冪(pot)值來表示權(quán)重和激活。li進(jìn)一步提出了二的加性冪(apot),以更好地匹配數(shù)據(jù)分布。最近,wang提出學(xué)習(xí)查表作為量化器。這些努力使得dnn能夠以甚至更好的性能在非常低的比特下工作。然而,這些網(wǎng)絡(luò)量化的工作通常更關(guān)注于對(duì)卷積和全連接層的量化,因?yàn)樗鼈冋加昧薲nn推理時(shí)絕大部分的計(jì)算量,而其計(jì)算操作仍以全精度進(jìn)行計(jì)算,例如批正則化(batch?normalization)、殘差(residual)、首層和尾層等。這一問題使得在圖像分類網(wǎng)絡(luò)在部署時(shí)仍然需要使用高精度計(jì)算硬件,并且引入了數(shù)據(jù)精度轉(zhuǎn)換問題,一定程度上抵消了量化帶來的圖像分類效率優(yōu)勢(shì)。3、目前,圖像分類算法研究的第二個(gè)不足,是很少考慮與網(wǎng)絡(luò)架構(gòu)和網(wǎng)絡(luò)量化的聯(lián)合設(shè)計(jì)。相反,他們通常將量化算法應(yīng)用于現(xiàn)有的經(jīng)典網(wǎng)絡(luò)進(jìn)行測(cè)試,如vgg,resnet。這導(dǎo)致了兩個(gè)問題。首先,許多最先進(jìn)的網(wǎng)絡(luò)都是為了在全精度域中爭(zhēng)取最佳性能。盡管這些網(wǎng)絡(luò)具有非常高效的網(wǎng)絡(luò)架構(gòu)和非常先進(jìn)的性能,并且在設(shè)計(jì)過程中一定程度的平衡了計(jì)算量和參數(shù)量,但是它們更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)流,也導(dǎo)致了額外的硬件資源開銷。相關(guān)研究表明,很多的高效網(wǎng)絡(luò)架構(gòu)在量化后都可能出現(xiàn)性能的退化降低,如efficientnet和mobilenets等。這一量化崩潰問題限制了圖像分類算法在高能效需求場(chǎng)景下的表現(xiàn)。4、最近,重參數(shù)化技術(shù)為提升圖像分類算法效率提供了一個(gè)新的設(shè)計(jì)視角。重參數(shù)技術(shù)化通過重參數(shù)化引入結(jié)構(gòu)先驗(yàn),幫助簡(jiǎn)單的網(wǎng)絡(luò)模塊學(xué)習(xí)最優(yōu)參數(shù)。它簡(jiǎn)化了推理過程中的網(wǎng)絡(luò)結(jié)構(gòu),并在相同性能的情況下減少了計(jì)算開銷。簡(jiǎn)單的重參數(shù)化策略通常使用bn折疊和卷積融合策略。repvgg通過結(jié)構(gòu)先驗(yàn)增強(qiáng)了vgg型網(wǎng)絡(luò)的性能,并僅保留卷積和激活函數(shù)用于推理。這大大簡(jiǎn)化了模型結(jié)構(gòu),提高了對(duì)計(jì)算設(shè)備的友好性,并將重參數(shù)化提升到了一個(gè)新的水平。mobileone將重參數(shù)化網(wǎng)絡(luò)擴(kuò)展到移動(dòng)設(shè)備,以毫秒級(jí)的延遲實(shí)現(xiàn)高級(jí)性能。最近,針對(duì)cnn、mlp和transformer等網(wǎng)絡(luò)結(jié)構(gòu)的重參數(shù)化技術(shù)得到了廣泛的探索。這些策略已被廣泛用于低層視覺任務(wù)和各類高層視覺任務(wù)。5、盡管重參數(shù)化技術(shù)帶來了簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu)和先進(jìn)性能,但它與許多高效圖像分類算法一樣,存在量化崩潰問題。一些工作嘗試將repvgg量化為int8,但仍難以進(jìn)行較低比特量化。此外,重參數(shù)化的repvgg不再具有批正則化(batch?normalization),這使量化感知訓(xùn)練(qat)方法難以應(yīng)用;而不損害性能地為重參數(shù)化網(wǎng)絡(luò)增加bn非常困難。重參數(shù)化網(wǎng)絡(luò)的量化,仍是亟待解決的問題。技術(shù)實(shí)現(xiàn)思路1、本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)存在問題的不足和缺陷,創(chuàng)造性地提出一種基于全量化vgg風(fēng)格卷積神經(jīng)網(wǎng)絡(luò)的圖像分類方法。本發(fā)明改進(jìn)了使用重參數(shù)化增強(qiáng)網(wǎng)絡(luò)量化性能的策略,極大改善了vgg風(fēng)格圖像分類網(wǎng)絡(luò)在低比特全量化后的性能,提升了圖像分類的精確度和推理速度。2、本方法主要包括預(yù)訓(xùn)練全精度圖像分類網(wǎng)絡(luò)階段、低比特量化感知訓(xùn)練階段、分類模型轉(zhuǎn)換階段和分類模型部署階段。3、在預(yù)訓(xùn)練全精度圖像分類網(wǎng)絡(luò)階段,預(yù)訓(xùn)練改進(jìn)的量化友好重參數(shù)化網(wǎng)絡(luò),獲得性能優(yōu)異且對(duì)量化友好的全精度圖像分類網(wǎng)絡(luò)。該階段為后續(xù)的低比特量化感知訓(xùn)練提供良好的網(wǎng)絡(luò)初始值,幫助改善低比特量化后的網(wǎng)絡(luò)性能。由于已有的重參數(shù)化網(wǎng)絡(luò)存在權(quán)值和激活值方差大的現(xiàn)象,盡管它們有很先進(jìn)的性能,但是并不利于進(jìn)行網(wǎng)絡(luò)量化,并且導(dǎo)致了量化后性能的退化。一個(gè)好的量化初始化權(quán)重應(yīng)該有兩個(gè)特點(diǎn),一個(gè)是具有更小的權(quán)值和激活值方差,另一個(gè)是具有更小的量化誤差。為了解決這一問題,本發(fā)明選擇改進(jìn)的量化友好重參數(shù)化網(wǎng)絡(luò)進(jìn)行全精度的預(yù)訓(xùn)練,一是在原有的三個(gè)重參數(shù)化分支外,增加了一個(gè)額外的批正則化層來減少分支相加產(chǎn)生的異方差問題,二是去除了殘差分支和1×1分支中的批正則化層,避免由于relu激活函數(shù)導(dǎo)致的極端值和方差放大問題。這一改進(jìn)顯著的提升了量化后模型的性能。4、在低比特量化感知訓(xùn)練階段,采用學(xué)習(xí)量化步長(zhǎng)(lsq)算法實(shí)現(xiàn)低比特量化。由于重參數(shù)化網(wǎng)絡(luò)在推理階段沒有保留批正則化,在進(jìn)行習(xí)量化步長(zhǎng)的量化感知訓(xùn)練(qat)時(shí),存在網(wǎng)絡(luò)梯度爆炸和梯度消失的問題,使得網(wǎng)絡(luò)難以有效收斂,并導(dǎo)致了圖像分類性能的退化。為了應(yīng)對(duì)該問題,本發(fā)明提出,在重參數(shù)化主分支中增加額外的批正則化層,并且能夠在量化感知訓(xùn)練階段保留該批正則化層,從而有效穩(wěn)定訓(xùn)練過程中的梯度。這一策略極大的提升了網(wǎng)絡(luò)的性能,并使網(wǎng)絡(luò)能夠在甚至2比特位寬下運(yùn)行。5、在分類模型轉(zhuǎn)換階段,已訓(xùn)練好的低比特量化網(wǎng)絡(luò)被轉(zhuǎn)換為實(shí)際可部署的網(wǎng)絡(luò)權(quán)重?cái)?shù)據(jù)。為了進(jìn)一步加速推理,并在推理階段完全避免全精度計(jì)算,我們提出使用查找表(look-up-table),對(duì)量化網(wǎng)絡(luò)中剩余的全精度操作進(jìn)行替換。這些操作包括量化策略產(chǎn)生的低精度-高精度數(shù)轉(zhuǎn)換映射、批正則化層和激活層。得益于嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)推導(dǎo)和代碼實(shí)現(xiàn),轉(zhuǎn)換后的網(wǎng)絡(luò)模型能夠以更高效的操作等效替代原有的計(jì)算操作,從而不會(huì)出現(xiàn)任何的性能損失。6、在分類算法部署階段,轉(zhuǎn)換后的低比特量化網(wǎng)絡(luò)被導(dǎo)入到計(jì)算硬件(asic)上進(jìn)行實(shí)際的推理計(jì)算。其中,該計(jì)算硬件使用fpga進(jìn)行實(shí)現(xiàn),并且只以低精度整數(shù)運(yùn)行所實(shí)現(xiàn)的感知算法。7、為達(dá)到上述目的,本發(fā)明采用以下技術(shù)方案實(shí)現(xiàn)。8、一種基于全量化vgg風(fēng)格卷積神經(jīng)網(wǎng)絡(luò)的圖像分類方法,包括以下步驟:9、步驟1:預(yù)訓(xùn)練全精度圖像分類網(wǎng)絡(luò),用于為量化階段提供良好的初始化權(quán)值;通過構(gòu)建量化友好的重參數(shù)化圖像分類網(wǎng)絡(luò)模型,通過優(yōu)化重參數(shù)化網(wǎng)絡(luò)結(jié)構(gòu),在保持精度的前提下,獲得量化友好的網(wǎng)絡(luò)權(quán)值。10、重參數(shù)化網(wǎng)絡(luò)引入結(jié)構(gòu)先驗(yàn)。訓(xùn)練時(shí),原始的重參數(shù)化模塊包括3×3卷積分支差、1×1卷積分支和帶有批正則化的殘差分支,每個(gè)分支都帶有一個(gè)批正則化層,三個(gè)分支的運(yùn)算結(jié)果最后相加,并使用relu函數(shù)進(jìn)行激活;在三個(gè)分支后添加額外的批正則化,同時(shí)移除殘差分支和1×1分支中的批正則化。11、步驟2:將得到的量化友好的重參數(shù)化圖像分類網(wǎng)絡(luò)模型,利用低比特量化感知訓(xùn)練方法,訓(xùn)練并得到低精度vgg風(fēng)格圖像分類網(wǎng)絡(luò);12、訓(xùn)練過程中,保留主分支的批正則化,并在后續(xù)部署時(shí)使用查找表來代替批正則化;13、步驟3:根據(jù)圖像分類網(wǎng)絡(luò)參數(shù)計(jì)算查找表參數(shù);14、將得到的低精度vgg風(fēng)格圖像分類網(wǎng)絡(luò)轉(zhuǎn)換為使用查找表推理的全量化圖像分類網(wǎng)絡(luò);15、步驟4:將轉(zhuǎn)換后的圖像分類網(wǎng)絡(luò)部署到計(jì)算系統(tǒng)中,利用圖像分類網(wǎng)絡(luò)進(jìn)行圖像分類。該過程中,將網(wǎng)絡(luò)參數(shù)固定,不再對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行更新或轉(zhuǎn)換。16、有益效果17、本發(fā)明,對(duì)比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):18、本發(fā)明首次提出了使用查找表來進(jìn)行深度神經(jīng)網(wǎng)絡(luò)的低比特推理,并構(gòu)建了首個(gè)低比特量化的vgg風(fēng)格卷積神經(jīng)網(wǎng)絡(luò)圖像分類算法。該方法采用重參數(shù)化策略和穩(wěn)定化量化感知訓(xùn)練策略,極大的改善了低比特量化的vgg風(fēng)格卷積神經(jīng)網(wǎng)絡(luò)的性能。同時(shí),本發(fā)明為神經(jīng)網(wǎng)絡(luò)的量化和部署提供了一種新的思路,極大提升了圖像分類的精確度和推理速度,具有較高的實(shí)際應(yīng)用價(jià)值。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12