實現裝置上的節能影象識別 — Qualcomm Technologies 的方法

TensorFlowers發表於2018-10-08

文 / 特邀文章作者,Qualcomm Technologies 的 Chen Feng、Terry Sheng、Jay Zhuo、Zhiyu Liang、Parker Zhang 和 Liang Shen

來源 | TensorFlow 公眾號

IEEE LPIRC 挑戰賽

低功耗影象識別挑戰賽 (LPIRC) 是一年一度的競賽,主要從準確度、執行時間和能量消耗方面評估計算機視覺技術。今年的競賽由 Google 和 Facebook 贊助,共分為三個賽道,其中賽道 1 的挑戰目標是使用由 Qualcomm Snapdragon 835 移動平臺支援的 Pixel 2 智慧手機,在 10 分鐘的時間限制內處理 20000 張影象,同時最大程度地保證影象分類的準確度。此次競賽使用大型資料集作為訓練資料,其中包含大約 120 萬張 JPEG 影象,涵蓋 1000 個不同類別,同時使用 Holdout 影象集作為測試資料。

現實世界需要能夠在移動裝置上實時執行且可準確進行影象分類的神經網路模型,此項公開競賽正是為此目的而舉行。除準確度以外,計算效率對電池供電裝置也至關重要。在競賽中,我們團隊將易於量化的 MobileNet V2 架構與先進的量化後方案結合使用,並因絕佳速度和準確度拔得頭籌。我們使用每層計算好的最小和最大值插入 FakeQuantization 節點,以修改 TensorFlow 中的圖表,並使用 TensorFlow Lite 將圖表轉化為用於硬體部署的.tflite 檔案。

實現裝置上的節能影象識別 — Qualcomm Technologies 的方法
Qualcomm Canada Inc 的團隊成員:Parker Zhang、Liang Shen、Chen Feng、Terry Sheng、Jay Zhuo 和 Zhiyu Liang

我們的模型在單個 ARM CPU 上的每次推理中以 28 毫秒識別 20000 張影象時,實現了最高的準確度。

Qualcomm Technologies, Inc. 工程部副總裁 Mickey Aleksic 說:“此次挑戰與我們的 AI 戰略完美契合,而贏得這次競賽對於確立 Qualcomm Technologies 在機器學習中的重要地位以及推廣裝置中的 AI 大有幫助。”

實現裝置上的極速影象識別

在邊緣裝置上準確快速地識別影象需要執行以下步驟:

  • 建立和訓練一個神經網路模型,從而以浮點運算對影象進行識別和分類。

  • 將浮點模型轉化為定點模型,後者可以在邊緣裝置上高效執行,而不會出現延遲和準確度問題。

我們團隊的模型基於 MobileNet v2 構建,但以 “易於量化” 的方式進行了修改。雖然 Google 的 MobileNet 模型通過使用可分離卷積結構成功縮小了引數大小和計算延時,但直接量化預訓練的 MobileNet v2 模型可能會造成準確度下降。我們的團隊分析並找出了在此類可分離卷積網路中因量化而降低準確度的根本原因,並在不使用量化感知重新訓練的情況下解決了此問題。通過量化感知訓練,模型可獲得良好的準確度,而我們的方法是一種替代方案,能夠修改網路架構以解決量化問題,而無需重新訓練。另一種更為端到端的方法是使用 Google 的 ML 框架 Learn2Compress,通過優化多個網路架構和同時使用量化及其他技術(如提煉、剪枝和聯合訓練),直接從頭開始訓練高效的裝置上模型或現有的 TensorFlow 模型。 注:Learn2Compress 連結 ai.googleblog.com/2018/05/cus…

模型架構

實現裝置上的節能影象識別 — Qualcomm Technologies 的方法
在可分離卷積結構中,我們將深度卷積分別應用於每個通道。但是,用於權重量化的最小和最大值是從所有通道中整體獲取的。由於資料範圍的擴大,某個通道中的異常值可能會導致整個模型的量化損失。如果未在不同通道中進行資料計算,深度卷積結構可能會在某個通道內產生全零值的權重,而這在 MobileNet v1 和 v2 模型中都很常見。某個通道中的全零值意味著偏差很小。在完成深度卷積後,直接應用批量歸一化轉換時,預計該特定通道的"縮放"值會較大。這會損害整個模型的表示能力。

我們的團隊提出一種易於量化的高效可分離卷積架構作為解決方案,將深度和逐點卷積層之間的非線性操作(批量歸一化和 ReLU6)全部移除,讓網路學習合適的權重來直接處理批量歸一化轉換。此外,我們還將所有逐點卷積層中的 ReLU6 替換為 ReLU。在使用 MobileNet v1 和 v2 模型進行的多項試驗中,此架構在 8 位量化通道中展示出顯著的準確度提升。

量化後技術

定義模型結構後,您便可在資料集上訓練浮點模型。在量化後步驟中,我們使用各種不同的輸入內容並針對訓練資料中各個類別的單張影象執行模型,以收集最小和最大值以及每層輸出的資料直方圖分佈。我們選取最佳 “步長” 和 “偏移” 值(用 ∆ 表示)以用於線性量化,這可以在貪婪搜尋期間最大限度地減小量化損失和飽和損失的總量。根據計算出的最小和最大值範圍,TensorFlow Lite 提供了將圖表模型轉化為.tflite 模型的路徑,以便在邊緣裝置上部署模型。

實現裝置上的節能影象識別 — Qualcomm Technologies 的方法
Qualcomm Technologies, Inc 的 Ning Bi(上圖右側中間)代表團隊領獎

結論

將計算移至 8 位並保留較高的準確度是在邊緣裝置上快速高效地執行模型的關鍵步驟。我們的團隊發現了此量化問題,分析並找出其根本原因,然後解決了此問題。之後,我們將這些發現應用於影象分類挑戰賽,並看到我們的理論成果變為了現實。您可以在我們發表的論文《適用於 MobileNets 的易於量化可分離卷積架構》(A quantization-friendly separable convolution architecture for MobileNets) 中瞭解詳情 (arxiv.org/abs/1803.08…)。

相關文章