延續深度學習網路精簡設計的主題,為了符合商業價值(特別是邊緣計算的龐大機會),我們必須在正確率不打折的情況下,設計出兼具低運算複雜度、低耗電、低參數量的智能算法。目前的設計原則是將「冗餘」的運算予以精簡。原因是近來很多研究顯示目前的深度學習網路設計中夾雜了冗餘的參數以及運算。這些龐大運算由何而來,可以參考前文。依照這幾年的研究,我們將其整理為四種精簡設計策略,在本文中先介紹其中兩種。
首先,最直覺的為專注於運算資源配置的「金字塔原則」。因卷積運算量正比於輸入影像(或是特徵圖)的大小以及頻道數(詳細參考上文),此原則為避免龐大資料量(影像或是特徵圖)進入複雜或是層數過多的卷積運算。這就是為什麼這幾年幾個性價比較高的卷積網路(如inception系列、ResNet、SqueezNet等),其主要構成的卷積區塊中都會先使用1x1的卷積運算將輸入特徵圖的頻道數降低為原來的一半或是四分之一。
這樣的原則也可善用特定領域的獨特知識。例如視訊中主要的訊息大都集中在畫面中央,所以事件偵測時可以專注在主要的畫面範圍而降低輸入的影像尺寸。或是智能手機為了自動偵測拍照模式得了解所處的情境(食物、室內、風景、人物等),只需使用縮小的畫面即可達到非常好的效果(因為偵測全局情境)。
第一個達到即時影像語義分割的的ICNet,則是發現同時分析不同解析度的照片可以大大增加正確率,及平衡計算以及效能。該團隊讓較大的影像通過較少的卷積層而較小的影像則利用更多的層數來擷取更高的語意,再將這些訊息匯集進行最終分割判斷。這些都是善用金字塔原則以維持效能並降低整體運算量,這樣的原則容易擴展到其他應用。
其次為「低秩逼近法 (low-rank approximation)」,這個設計策略具有較嚴謹的理論支持。一般而言,深度網路中各層的運算可以轉化為矩陣乘法(嚴格來說為多維的tensor),而其中的矩陣因為有不少「冗餘」,可以利用低秩的矩陣來表示,也就是大矩陣可以利用兩個較小矩陣相乘來逼近。所以每一層原為龐大矩陣相乘的卷積運算,可以轉化為兩個小卷積運算,因此可以大大降低運算量。
這個策略已可採用不同的數學模型實現,一般可以達到精簡數倍左右的運算,並已落實在行動設備中。其中被最多人採用的是MobileNet系列的基底網路;經過實驗,在邊緣計算平台中,為目前性價比最高(運算速度以及正確率綜合考量)的卷積網路。
本文中所提兩個時常被採用的設計準則,設計完成之後大部分不用再大規模更動網路架構。我們在下文將再討論另兩個產業界也時常使用的精簡網路設計原則以及應用實例。
徐宏民(Winston Hsu)現任富智捷(MobileDrive)技術長暨副總經理以及台大資訊工程學系教授。哥倫比亞大學電機博士,專精於機器學習、大規模影像視訊搜尋與辨識。為訊連科技研發團隊創始成員,慧景科技(thingnario)共同創辦人,NVIDIA AI Lab計畫主持人;曾任IBM華生研究中心客座研究員、美國微軟研究院客座研究員。習慣從學術及產業界的角度檢驗技術發展的機會;十餘年產學合作及新創經驗。曾獲2018 IBM Research Pat Goldberg Memorial Best Paper Award 、2018偽裝人臉辨識冠軍、傑出資訊人才獎、吳大猷先生紀念獎等國內外研究獎項。