使用Learn2Compress定製移動端機器學習模型

原文地址:https://ai.googleblog.com/2018/05/custom-on-device-ml-models.html

使用Learn2Compress定製移動端機器學習模型(Custom On-Device ML Models with Learn2Compress)

2018年5月9日 星期三
Google Expander團隊高級職員兼研究科學家 Sujith Ravi

  成功的深度學習模型通常需要大量的計算資源、內存和電力來訓練和運行,如果你想讓它們在移動設備和物聯網設備上表現良好,這將是一個障礙。移動端機器學習允許您直接在設備上運行推理,它的好處是可以保護數據隱私,並且可以隨處訪問,不管網絡是否連接。移動端ML系統,如MobileNets和ProjectionNets,通過優化模型效率來解決移動設備上的資源瓶頸。但是,如果你想爲你的個人移動應用程序提供自己定製的、設備上的模型,那該怎麼辦呢?

  昨天,在GoogleI/O會議上,我們發佈了ML工具包,讓所有移動開發人員都可以使用機器學習。我們研究小組研發的“Learn2Compress”技術提供了一個自動模型壓縮服務,這是ML工具包的一個核心功能,並且將很快上線。Learn2Compress可以在TensorFlow Lite中實現自定義的移動端深度學習模型,在移動設備上可以高效運行,而不必擔心內存和速度的優化。我們很高興很快就可以在ML工具包中使用針對圖像分類的Learn2Compress。Learn2Compress最初將提供給少數開發人員,並將在未來幾個月內提供更廣泛的服務。如果您有興趣使用此功能來構建您自己的模型,您可以在這裏註冊。

Learn2Compress的工作原理

  Learn2Compress融合了之前的研究工作中引入的學習框架,如ProjectionNet,並結合了幾種最先進的技術來壓縮神經網絡模型. 它以用戶提供的很大的預訓練了的TensorFlow模型爲輸入,進行訓練和優化,並自動生成體積較小、內存效率更高、推理速度更快但精度損失最低的可供使用的移動端模型。

用於自動生成移動端ML模型的Learn2Compress

  爲此,Learn2Compress使用多個神經網絡優化和壓縮技術,包括:
  通過刪除權重或對預測沒什麼用的操作(例如低評分權重)實現的剪枝(pruning)來減少模型大小。這些操作非常有效,特別是對涉及稀疏的輸入或輸出的移動端模型,可以減少2倍的大小,同時保持97%的原始預測質量。
  量化(quantization)技術在訓練中的應用特別有效,可以通過減少用於模型權重和激活的位數來提高推理速度。例如,使用8位定點表示代替浮點數可以加快模型推理速度,降低功耗,並進一步減小4倍的大小。
  遵循老師-學生學習策略的聯合訓練(joint training)和蒸餾(distillation)– 我們使用一個更大的教師網絡(在本例中,用戶提供的TensorFlow模型)來訓練一個緊湊的學生網絡(設備上的模型),其準確性損失最小。

聯合訓練和蒸餾壓縮學生模型

  老師網絡可以固定(如蒸餾法中的一樣)或聯合優化,甚至可以同時訓練不同規模的多個學生模型。因此,與單一模型不同,Learn2Compress只需一次操作就可以生成多個不同大小和推理速度移動端模型,並讓開發人員選擇一個最適合他們的應用程序需求的模型。
這些以及其他的技術,如傳輸學習,也使壓縮過程更有效,並且可以擴展到大規模數據集。

Learn2Compress的實際效果如何?

  爲了證明Learn2Compress的有效性,我們使用它構建了幾個用於圖像和自然語言任務的最先進的深層網絡的移動端壓縮模型,如MobileNets、Nasnet、Inception、ProjectionNet等等。對於給定的任務和數據集,我們可以生成多個推理速度和模型大小不同的移動端模型。

各種尺寸的Learn2Compress模型和全尺寸Baseline網絡在CIFAR-10(左)和ImageNet(右)圖像分類任務中的精度。用於生成CIFAR-10和ImageNet任務使用的壓縮變體的學生網絡分別使用Nasnet和MobileNet啓發的架構進行建模。

  對於圖像分類,Learn2Compress可以生成適合於移動應用的小而快速的模型,具有良好的預測精度。例如,在ImageNet任務上,Learn2Compress實現了一個比Inception v3 Baseline小22倍,比MobileNe tv1 Baseline小4倍的模型,精確度下降了4.6-7%。在CIFAR-10上,聯合訓練具有共享參數的多個Learn2Compress模型只需10%的時間,僅比訓練一個Learn2Compress大型模型多花費10%的時間,但是產生了3種壓縮模型,它們的體積小了94倍,速度快了27倍,成本降低了36倍,預測質量好(90%-95%TOP-1精度)。


CIFAR-10圖像分類任務的Baseline和Learn2Compress模型的計算成本和平均預測延遲(在Pixel手機上)。Learn2Compress優化模型使用Nasnet風格的網絡架構。

  我們也很期待看到在開發人員的用例上Learn2Compress的效果如何。例如,漁業愛好者的社交平臺FishBrain利用Learn2Compress將現有的圖像分類雲模型(大小爲80 MB+,Top-3準確率爲91.8%)壓縮爲小得多的移動端模型,尺寸小於5MB,精度卻差不多。在某些情況下,我們觀察到,由於更好的正則化效果,壓縮模型甚至可能略優於原始模型的精度。

  我們將繼續改進Learn2Compress以獲得在機器學習和深度學習方面的更多進展,並將其擴展到圖像分類以外的更多用例。我們很興奮,並期待着通過ML工具包在雲端上的壓縮服務來提供這一功能。我們希望這將使開發人員能夠輕鬆地自動構建和優化他們自己的移動端ML模型,以便他們能夠專注於構建更好的應用程序並提升用戶體驗。

感謝

  我要感謝我們的核心貢獻者Gaurav Menghani、Prabhu Kaliamooti、 Yicheng Fan,以及Wei Chai、 Kang Lee、 Sheng Xu、 Pannag Sanketi。
  特別感謝Android團隊的Dave Burke、Brahim Elbouchikhi、Hrishikesh Aradhye、Hugues Vincent、 Arun Venkatesan;Firebase團隊的Sachin Kotwani、Wesley Tarle、Pavel Jbanov;Google Expander團隊和TensorFlow團隊的Andrei Broder、Andrew Tomkins、Robin Dua、Patrick McGregor、Gaurav Nemade。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章