實現設備上的節能圖像識別 — Qualcomm Technologies 的方法

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

來源 | 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 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 大有幫助。」學習

實現設備上的極速圖像識別

在邊緣設備上準確快速地識別圖像須要執行如下步驟:測試

  • 建立和訓練一個神經網絡模型,從而以浮點運算對圖像進行識別和分類。優化

  • 將浮點模型轉化爲定點模型,後者能夠在邊緣設備上高效運行,而不會出現延遲和準確度問題。google

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

模型架構

在可分離卷積結構中,咱們將深度卷積分別應用於每一個通道。可是,用於權重量化的最小和最大值是從全部通道中總體獲取的。因爲數據範圍的擴大,某個通道中的異常值可能會致使整個模型的量化損失。若是未在不一樣通道中進行數據計算,深度卷積結構可能會在某個通道內產生全零值的權重,而這在 MobileNet v1 和 v2 模型中都很常見。某個通道中的全零值意味着誤差很小。在完成深度卷積後,直接應用批量歸一化轉換時,預計該特定通道的"縮放"值會較大。這會損害整個模型的表示能力。

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

量化後技術

定義模型結構後,您即可在數據集上訓練浮點模型。在量化後步驟中,咱們使用各類不一樣的輸入內容並針對訓練數據中各個類別的單張圖像運行模型,以收集最小和最大值以及每層輸出的數據直方圖分佈。咱們選取最佳 「步長」 和 「偏移」 值(用 ∆ 表示)以用於線性量化,這能夠在貪婪搜索期間最大限度地減少量化損失和飽和損失的總量。根據計算出的最小和最大值範圍,TensorFlow Lite 提供了將圖表模型轉化爲.tflite 模型的路徑,以便在邊緣設備上部署模型。

Qualcomm Technologies, Inc 的 Ning Bi(上圖右側中間)表明團隊領獎

結論

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

相關文章
相關標籤/搜索