想在手機上用自己的機器學習模型?谷歌爸爸的模型壓縮包你滿意

.. 雷鋒網按: Google I/O 2018 上,谷歌發佈了可供開發者定製移動端機器學習模型的 ML Kit 開發套件,關於該套件中的核心技術:Learn2Compress 模型壓縮技術,谷歌也火速在 Google AI 上撰文對其進行了詳細介紹和實戰測試,雷鋒網 AI 科技評論將其內容編譯如下。

大家都知道,要成功地訓練和運行深度學習模型,通常要求海量的計算資源,超大內存以及足夠的能源來支撐,這也就為想要在移動端(mobile)和 IoT 設備上同樣成功地運行模型帶來了相應的障礙。移動端機器學習(On-device machine learning)允許你直接在該設備上運行推理,且具有保證數據隱私性和隨時使用的優勢,不管網絡連接狀況如何。此前的移動端機器學習系統,如輕量神經網絡 MobileNets 和 ProjectionNets 均通過對模型效率的優化來處理資源瓶頸問題。但如果你想要在手機上的移動應用中運行自己設計和訓練的模型呢?

現在谷歌幫你解決了這個難題,在 Google I/O 2018 上,谷歌面向所有移動端開發者發佈了移動端機器機器學習開發套件 ML Kit。該 ML Kit 開發套件中的一項即將可用的核心功能,是由谷歌 research 團隊開發的 Learn2Compress 技術所驅動的一項自動模型壓縮服務。Learn2Compress 技術能夠在 TensorFlow Lite 內定製移動端深度學習模型,定製后的模型可高效的運行在移動端設備上,無需擔心內存不足和運行速度過慢。谷歌也很高興不久后在 ML Ki 中實現 Learn2Compress 技術驅動的圖像識別功能。Learn2Compress 技術將率先開放給一小部分開發者,並將在接下來的幾個月內提供給更多的開發者們使用。對該技術特性感興趣並有意設計自己模型的開發者可以點擊此網址(https://g.co/firebase/signup)進行註冊。

Learn2Compress 技術的工作原理

Learn2Compress 技術融合了此前研究中介紹的 ProjectionNet 等學習框架,並結合了神經網絡模型壓縮的幾項前沿技術。Learn2Compress 技術的工作原理是這樣的:先輸入一個用戶提供的預先訓練好的 TensorFlow 模型,隨後 Learn2Compress 技術開始訓練和優化該模型,並自動生成一個隨時可用的移動端模型,該模型尺寸較小,內存佔用和能源利用效率更高,且能在保證最小限度丟失準確率的情況下達到更快的推理速度。

可自動生成移動端機器學習模型的 Learn2Compress 技術

為了達成模型壓縮的目的,Learn2Compress 技術使用了多重神經網絡優化和下面三項模型壓縮技術:

  • 通過移除那些對預測沒有太大作用的的權重或者運算(比如低分權重)來修剪,降低模型尺寸。該操作尤其能使包含稀疏輸入或輸出的移動端模型的效率得到相當大的提升,雖然模型在尺寸上被壓縮小 2 倍,但仍保留着原來模型 97% 的預測質量。

  • 在訓練模型的過程中應用的量子化技術格外有效,該技術可以通過減少用於模型權重和激活數值的位數來提升模型推理速度。例如,使用 8-bit 固定點表示而非浮點數值可以加速模型推理,降低能源消耗以及有望進一步將模型尺寸縮小 4 倍。

  • 遵循老師-學生學習策略的聯合訓練(Joint training)和蒸餾(distillation)方法—保證最小限度丟失準確率的前提下,谷歌在使用一個大的老師網絡(在該案例中,使用的是用戶提供的 TensorFlow 模型)來訓練一個壓縮學生網絡(即移動端模型 on-device model)。

使用聯合訓練和蒸餾方法來學習壓縮學生模型

老師網絡可以是固定的(就像在蒸餾方法中那樣)或者是被共同優化的,老師網絡甚至還可以同時訓練不同尺寸的多種學生模型。因而,Learn2Compress 技術只需一次操作就可以生成具有不同尺寸和不同推理速度的多種移動端模型,而非單一模型,同時還支持開發者從中選取最符合自己應用需求的那個模型。

以上這些再加上其他類似遷移學習這樣的技術也可以使模型壓縮進程更加具有效率和可擴展至大規模數據集。

Learn2Compress 技術的實戰表現如何?

為了證明 Learn2Compress 技術的有效性,谷歌基於幾個在圖像和自然語言任務中使用的最先進的深度神經網絡(如 MobileNets,NASNet,Inception,ProjectionNet 等),並使用該技術將它們壓縮成移動端模型。給定一個任務和數據集,谷歌就可以使用該技術生成具有不同的推理速度和模型尺寸的多種移動端模型。

Learn2Compress 模型在多種尺寸下的準確度,在 CIFAR-10(左圖)上的全尺寸基線網絡,以及 ImageNet(右圖)圖像識別任務。生成了多種 CIFAR-10 和 ImageNet 分類器變體的學生網絡的架構的靈感來自 NASNet 和 MobileNet。

在圖像識別方面,Learn2Compress 技術可生成適合手機應用的,且具有良好預測精度的既小又快的模型。舉個例子,在 ImageNet 任務上,Learn2Compress 技術可實現一個比 Inception v3 baseline 小 22 倍,比 MobileNet v1 baseline 小 4 倍的模型,而準確率僅下降了 4.6-7%。在 CIFAR-10 上,使用共享參數來共同的訓練多種 Learn2Compress 模型所花費的時間,只比訓練單獨的一個 Learn2Compress 大模型多耗時 10%,例如 yields 3 壓縮模型在尺寸上要小 94 倍,而速度上快 27 倍,成本降低 36 倍,且能達到很好的預測質量(90-95% 的 top-1 級別準確度)。

在 CIFAR-10 圖像識別任務下,使用 Pixel phone 測試 baseline 和 Learn2Compress 模型得到的計算成本和平均預測延遲。Learn2Compress-優化模型使用 NASNet 樣式的網絡構架。

谷歌也很開心地看到開發者已經使用這種技術做出了一些成果。例如,一個名為 Fishbrain 的垂釣愛好者社交平台使用了谷歌的 Learn2Compress 技術,將平台目前的圖像識別雲模型(尺寸大小 80MB+,達到了 91.8% 的 top-3 級別準確度)壓縮成了一個十分小的移動端模型(尺寸少於 5MB,但仍保持與原來大模型相似的準確度)。在另外一些案例中,谷歌發現得益於正則化效應(regularization effect),壓縮后的模型在準確度上甚至有稍微勝於原來的大模型的可能。

谷歌表示,隨着機器學習和深度學習技術的不斷發展,他們將會繼續改進 Learn2Compress 技術並將其擴展至更多的用戶案例(不僅局限於圖像識別這類模型)。谷歌還很期待上線 ML Kit 的模型壓縮雲服務。谷歌希望 Learn2Compress 技術可以幫助開發者自動構建和優化他們自己的移動端機器學習模型,這樣開發者們就可以專註於開發包含計算機視覺、自然語言以及其他機器學習應用在內的優秀的應用程序和酷炫的用戶體驗了。

via Google AI Blog,雷鋒網AI科技評論編譯。


想在手機閱讀更多網站設計及開發資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems