智慧應用 影音
Microchip
ADI

如何設計低耗能、高功效深度學習網路(一)

精簡網路設計,不只在推論時縮短運算時間、降低耗能,在訓練階段更能大大縮短訓練時程,對於斤斤計較的產品開發週期,十分重要。Systran

目前智能應用的普及來自近年機器學習技術的精進,其中最大的突破在於深度學習網路。給予適當的類神經網路架構以及足夠的訓練資料下,在各種智能應用中都有突破性的發展。而付出的代價則是龐大的參數模型以及運算量。舉例來說,常用的深度學習網路參數大約數百(千)萬個(浮點)參數,每次推論運算約需數個G-FLOPs,可以想像對於運算資源的需求十分龐大。

所以部署這些算法在應用場域時,低耗能、高功效的設計是產品化的必要條件。特別在機會龐大的智能終端應用,如手機、自駕車、穿戴裝置、機器人、IoT設備,有更高的精簡需求。不僅如此,在雲端或是伺服器等級的服務中,這也是必要條件,因為每個智能服務所允許的運算時間可能只有幾個毫秒,運算資源有限,電力耗損也是重要的優化指標。

精簡網路設計,不只在推論時縮短運算時間、降低耗能,在訓練階段更能大大縮短訓練時程,對於斤斤計較的產品開發週期,十分重要。可以想見,這是智能產品落地相當關鍵的步驟。

為使應用符合商業價值,我們必須設計出在正確率不打折的情況下,兼具低運算複雜度、低耗電、低參數量的智能算法。這裡討論的設計準則獨立於硬體加速之外,因此精簡的智能網路設計,加上目前百家爭鳴的深度學習硬體加速(CPU、GPU、ASIC、FPGA等)更會相得益彰。

在應用上,最為關鍵的元件為卷積網路,為目前處理影像、視訊的必備元件,另一個有趣的趨勢是使用卷積網路來處理語音、文字的資料,因可以共用硬體加速。但是卷積網路卻是耗費最多運算資源的!

每一層卷積網路的運算量取決於輸入(影像或是特徵圖)頻道個數、卷積核心個數、大小、以及輸出特徵圖的表面積。為了降低運算量,最簡單的方式是減少這些配置的數目,但是隨之而來是正確率大幅下降,所以必須有理論支持的作法。

精簡網路設計的核心演算法,在過去三十幾年機器學習研究中已著墨不少,其原則是將「冗餘」的運算,予以精簡。原因是近來很多研究顯示目前的深度學習網路設計中夾雜了冗餘的參數以及運算。所以過去常用的資料降維、特徵轉換、稀疏編碼、遷移學習等都可以在此活用。

依照這幾年的研究,我們將其整理為四種精簡設計方向:金字塔原則、低秩逼近法(low-rank approximation)、網路知識蒸餾(knowledge distillation),網路模型剪枝(network pruning)等。這些方法彼此間是互補的,實務上也會混用,以達到最大的功效。

結合我們過去參與幾個深度學習技術落地的經驗以及與國際團隊的討論所得,我們希望利用接下來的專文繼續分享如何設計精簡(低耗能、高功效)的深度學習網路,協助國內資通訊產業在產品智能化的過程中少走冤枉路。

徐宏民(Winston Hsu)現任富智捷(MobileDrive)技術長暨副總經理以及台大資訊工程學系教授。哥倫比亞大學電機博士,專精於機器學習、大規模影像視訊搜尋與辨識。為訊連科技研發團隊創始成員,慧景科技(thingnario)共同創辦人,NVIDIA AI Lab計畫主持人;曾任IBM華生研究中心客座研究員、美國微軟研究院客座研究員。習慣從學術及產業界的角度檢驗技術發展的機會;十餘年產學合作及新創經驗。曾獲2018 IBM Research Pat Goldberg Memorial Best Paper Award 、2018偽裝人臉辨識冠軍、傑出資訊人才獎、吳大猷先生紀念獎等國內外研究獎項。