谷歌MorphNet:讓你的神經網絡更小但更快

2021-01-14 雷鋒網

雷鋒網 AI 科技評論按,深度神經網絡(DNN)在解決圖像分類、文本識別和語音轉換等實際難題方面具有顯著的效果。然而,為一個給定的問題設計一個合適的 DNN 體系結構仍然是一個具有挑戰性的任務。考慮到架構可能需要巨大的搜索空間,從頭開始為特定的應用程式設計一個網絡在計算資源和時間方面花銷可能非常大。神經網絡架構搜索和 AdaNet 等方法利用機器學習來搜索設計空間,以便找到改進架構的方法。另一種選擇是將現有的體系結構用於類似的問題,並一次性為手頭的任務進行優化。

正對這個問題,谷歌 AI 發布了一篇博文討論了 MorphNet。MorphNet 是一種複雜的神經網絡模型細化技術,它採用了上面說的第二種方法。本文對 MorphNet 的解釋是:「深度神經網絡的快速、簡單的資源受限結構學習」。MorphNet 以現有的神經網絡為輸入,生成一個更小、更快、性能更好的新神經網絡,以適應新的問題。我們已經將這項技術應用於「Google-scale」問題,以設計更小、更準確的生產服務網絡。而且,現在我們已經向社區開放了 MorphNet 的 TensorFlow 實現,這樣你就可以使用它來提高你的模型的效率。

它是如何工作的

MorphNet 通過收縮和擴展階段的循環優化神經網絡。在收縮階段,MorphNet 識別效率低下的神經元,並利用稀疏正則化器將其從網絡中刪去,這樣網絡的總損失函數就包含每個神經元的成本。然而,MorphNet 並沒有對每個神經元使用一樣的成本,而是根據目標資源計算神經元成本。隨著訓練的進行,優化器在計算梯度時會意識到資源成本,從而了解哪些神經元是是節省資源的,哪些神經元可以被移除。

例如,考慮 MorphNet 如何計算神經網絡的計算成本,以觸發器為例。為了簡單起見,讓我們考慮一個用矩陣乘法表示的神經網絡層。在這種情況下,層有 2 個輸入(xn),6 個權重(a,b,…,f)和 3 個輸出(yn;神經元)。使用標準教科書中的行和列相乘的方法,可以計算出評估該層需要 6 次相乘。

神經元的計算成本

MorphNet 將其計算為輸入計數和輸出計數的乘積。注意,儘管左邊的例子顯示了兩個為 0 的權重值,我們仍然需要執行所有的乘法來評估這個層。然而,中間的例子顯示了結構化稀疏性,其中神經元 yn 中的所有行權重都為 0。MorphNet 識別出這個層的乘法數從 6 減少到 4,於是這個層的新輸出計數是 2。利用這一思想,MorphNet 可以確定網絡中每個神經元的增量成本,從而生成一個更有效的模型(右邊),其中神經元 y3 已經被移除。

在展開階段,我們使用寬度乘數來均勻地擴展所有的層大小。例如,如果我們擴大 50%,那麼一個以 100 個神經元開始並縮小到 10 個的低效率層只會擴大到 15 個,而一個只縮小到 80 個神經元的重要層可能會擴大到 120 個,並有更多的資源來工作。也就是將計算資源從網絡中效率較低的部分重新分配到可能更高效的部分。

在縮減階段之後,人們可以停止 MorphNet,只需縮減網絡以滿足更嚴格的資源預算。這會導致在給定目標成本的時候網絡效率更高,但有時也會導致精度下降。另外,用戶還可以完成擴展階段,該階段將與原始目標資源成本相匹配,但提高了準確性。稍後我們通過一個示例來介紹這個的完整實現過程。

為什麼是 MorphNet?

MorphNet 提供了四個關鍵的有價值的主張:

有針對性的正則化:與其他稀疏的正則化方法相比,MorphNet 採取的正則化方法目的性更強。尤其是,MorphNet 方法進行更好的稀疏化的目的是減少特定的資源。這可以更好地控制由 MorphNet 生成的網絡結構,根據應用領域和相關約束,MorphNet 可以有明顯的不同。例如,下圖的左側面板顯示了一個基線網絡,該網絡具有在 JFT 上訓練的常用 ResNet-101 體系結構。當以觸發器(中間圖,觸發器減少 40%)或模型大小(右圖,權重減少 43%)為目標時,MorphNet 生成的結構有很大不同。在優化計算成本時,較低層網絡中的高解析度神經元比低解析度神經元更容易受到修剪。當模型尺寸較小時,在修剪權衡上正好相反。

MorphNet 有針對性的正則化。矩形寬度與層中的通道數成正比。底部的紫色條是輸入層。左圖:基線網絡用作 MorphNet 的輸入。中圖:輸出應用觸發器調節器。右圖:輸出應用大小調整器。

MorphNet 是為數不多的能夠針對特定參數進行優化的解決方案之一。這使它能夠針對特定實現的參數。例如,可以通過結合特定於設備的計算時間和內存時間,將延遲作為一階優化參數。

拓撲變形:當 MorphNet 學習每層神經元的數量時,算法在一個層中稀疏所有神經元的過程中可能會遇到一種特殊的情況。當一個層有 0 個神經元時,通過切斷網絡中受影響的分支,可以有效地改變網絡的拓撲結構。例如,當遇到 ResNet 體系結構時,MorphNet 可能保留 skip-connection,但刪除殘差塊,如下左圖所示。對於 Inception 樣式的架構,MorphNet 可能會刪除整個平行的塔,如右圖所示。

左圖:MorphNet 可以刪除 ResNet 樣式網絡中的殘差連接。右圖:它還可以刪除 Inception 樣式的網絡中的平行塔。

可擴展性:MorphNet 在一次訓練中學習新的結構,在培訓預算有限時,它是一個很好的方法。MorphNet 也可以直接應用於昂貴的網絡和數據集。例如,在上面的比較中,MorphNet 直接應用於 ResNet-101,而它最初是在 JFT 上花費了 100 個 GPU 月訓練的。

可移植性:MorphNet 產生的網絡是「可移植的」,從這個意義上說,它們是打算從頭開始重新訓練的,並且權重與體系結構學習過程無關。你不必擔心複製檢查點或遵循特殊的訓練規則,而只需像平時一樣訓練你的新網絡!

變形網絡

作為一個演示,我們將 MorphNet 應用於在 ImageNet 上通過目標定位 FLOPs 訓練的 Inception V2(見下文)。基線方法是使用一個寬度倍增器,通過均勻地縮小每個卷積(紅色)的輸出數量來權衡精度和觸發器。MorphNet 方法的目標是直接 FLOPs,並在縮小模型時產生更好的權衡曲線(藍色)。在這種情況下,與基線相比,觸發器成本降低了 11% 到 15%,而精確度相同。

MorphNet 應用於 ImageNet 上的 Inception V2。單獨使用 FLOP 正則化器(藍色)可將性能相對於基線(紅色)提高 11-15%。在一個完整的周期中,正則化器和寬度乘法器在相同的成本(「x1」;紫色)下提高了精度,並在第二個周期(「x2」;青色)持續改進。

此時,您可以選擇一個 MorphNet 網絡來滿足較小的 FLOP 預算。或者,您可以通過將網絡擴展回原始的 FLOP 成本來完成這個周期,從而在相同的成本(紫色)下獲得更好的準確性。再次重複變形網縮小\擴展循環會導致另一個精度增加(青色),使總精度增加 1.1%。

結論

我們已經將 MorphNet 應用到了谷歌的幾個量產級圖像處理模型中。使用 MorphNet 可以在質量幾乎沒有損失的情況下顯著減少模型大小。我們邀請您嘗試 MorphNet。可以在這裡找到開源 TensorFlow 實現方法,還可以閱讀 MorphNet 論文了解更多詳細信息。

via:https://ai.googleblog.com/

雷鋒網雷鋒網(公眾號:雷鋒網)

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 網絡規模更小、速度更快,這是谷歌提出的MorphNet
    一直以來,深度神經網絡在圖像分類、文本識別等實際問題中發揮重要的作用。但是,考慮到計算資源和時間,深度神經網絡架構往往成本很高。此次,谷歌研究人員提出一種自動化神經網絡架構的新方法 MorphNet,通過迭代縮放神經網絡,節省了資源,提升了性能。深度神經網絡(DNN)在解決圖像分類、文本識別和語音轉錄等實際難題方面顯示出卓越的效能。
  • 硬剛無限寬神經網絡後,谷歌大腦有了12個新發現
    作者 | 青暮、陳大鑫編輯 | 陳彩嫻各位煉丹師平時「煉丹」時最多跑過多深的神經網絡呢?152層,256層,還是更多層?那各位跑過最寬的神經網絡又有多寬呢?可能一層撐死有10個或20個神經元?對第二個問題,谷歌的回答是:我可以跑無限寬的神經網絡。
  • 使用神經網絡提取PDF表格工具來了,支持圖片,關鍵是能白嫖谷歌GPU...
    別著急,一種使用深度神經網絡識別提取表格的開源工具可以幫助你。兼容圖片、高準確率、還不佔用本地運算資源,如此實用的工具值得你擁有。使用姿勢詳解神經網絡算法,還不佔用本地運算資源?對,你沒聽錯,這個工具的所有代碼都可以在谷歌Colab上運行。也就是說你可以利用Colab雲端資源完成訓練和推理,無需本地安裝。
  • 谷歌和 OpenAI 強強聯手找到了神經網絡「黑盒子」的正確打開方式!
    隨著人工智慧系統被應用到更多重要的場景中,更好地了解其內部決策過程將有助於研究者能夠及時發現其中的缺陷和錯誤。對此,谷歌 AI 研究院與 OpenAI 一起合作提出了能夠弄清這個「黑盒子」裡面到底有什麼的新方法——激活圖集。谷歌在博客上發布文章介紹了這一意義重大的成果,雷鋒網 AI 科技評論編譯如下。
  • 用神經網絡給照片補光 谷歌這項研究卻實現了「鬼片」效果
    打光方法也各有不同,MIT、谷歌等的一項新研究另闢蹊徑,通過神經光傳輸方法進行圖像的二次打光和視圖合成,實現了相當不錯的效果。圖像合成早已不是新鮮話題,但是「打光」可是所有照片的難題。對於人類攝影師而言,打光就是件挺複雜的事,那麼合成圖像中的光線問題又該如何解決呢?
  • 神經網絡提取PDF表格工具來了,支持圖片,還能白嫖谷歌GPU資源
    別著急,一種使用深度神經網絡識別提取表格的開源工具可以幫助你。兼容圖片、高準確率、還不佔用本地運算資源,如此實用的工具值得你擁有。使用姿勢詳解神經網絡算法,還不佔用本地運算資源?對,你沒聽錯,這個工具的所有代碼都可以在谷歌Colab上運行。也就是說你可以利用Colab雲端資源完成訓練和推理,無需本地安裝。
  • 智慧型手機導入專用的神經網絡引擎
    考慮到以上所有的好處,我有信心做一個大膽的預測:在幾年之內,大多數智慧型手機將配備一個專用的神經引擎。幾個月前,一系列網絡消息宣稱蘋果正在開發一款晶片,被稱為Apple Neural Engine,專門處理設備上的AI計算。如今,隨著iPhone 8和iPhone X陸續發布,我們已經證實這些傳言的真實性了。
  • 將科幻變成現實,谷歌百度用神經機器翻譯踐行人類的「巴別塔之夢」
    而谷歌的神經機器翻譯提出了帶有 8 個編碼器和 8 個解碼器的深度 LSTM 網絡組成的模型,使用了注意力和殘差連接。為了提升並行性從而降低訓練時間,注意機制將解碼器的底層連接到了編碼器的頂層。在推理計算過程中使用了低精度運算來加速翻譯速度。為改善對罕見詞的處理,谷歌將詞分成常見子詞單元(詞的組件)的一個有限集合,該集合既是輸入也是輸出。
  • MIT開發出輕量級MCU神經網絡系統MCUNet
    人工智慧的這一分支可以管理你的社交媒體並為谷歌搜索結果提供最準確的服務。很快,深度學習還可以檢查你的生命體徵或設置你的恆溫器。麻省理工學院的研究人員開發了一種系統,可以將深度學習的神經網絡帶到新的、小得多的地方,比如可穿戴醫療設備、家用電器中的微型計算機晶片,以及構成「物聯網」(IoT)的2500億個物體。
  • 微軟提出Petridish,完美解決問題的神經網絡?
    從概念上講,NAS方法專注於為給定問題和數據集找到合適的神經網絡體系結構。不妨將這個方法理解為使機器學習架構本身成為機器來學習問題。近年來,NAS技術的數量激增,並且正在更多主流的深度學習框架和平臺得到應用。但是,第一代NAS模型在經歷神經網絡域名變更時遇到了許多困難。因此,尋找新的NAS技術極有可能會繼續推動該領域的深層次創新。
  • 谷歌發明的由2D圖像生成3D圖像技術解析
    谷歌發明的由2D圖像生成3D圖像的技術,利用3D估計神經網絡圖像信息的補全以及預測,融合了拍攝角度、光照等信息,讓生成的3D圖像看起來更加逼真,這種技術對於三維建模以及工業應用都具有極大的指導意義。
  • 中科院計算所研究團隊提出圖神經網絡加速晶片設計
    嚴明玉在受訪時說,圖神經網絡在搜索、推薦、風險控制等重要領域有著廣泛應用。現有的處理器晶片在執行圖神經網絡的計算中效率低下,其團隊展開面向圖神經網絡的加速晶片設計,為解決這一難題提供可行方案。   讓機器「會思考」 設計中「增引擎」   圖神經網絡被認為有望解決深度學習無法處理的關係推理、可解釋性等一系列問題,讓機器「能理解、會思考」。然而由於圖神經網絡在圖數據處理方面的特殊性,傳統用於加速神經網絡的晶片難以直接對圖神經網絡的執行提供高效計算支撐。
  • 從"棄兒"到大神,神經網絡之父Hiton說人類就是機器
    在當時,Hinton提出的被稱為「神經網絡的概念」當時被證明是錯誤的,但是,後來我們都知道這成為了「深度學習」和「機器學習」的基礎。在50年代後期,康奈爾大學的科學家弗蘭克·羅森布拉特(Frank Rosenblatt)發布了世界上第一臺神經網絡機器。它被稱為感知機(Perceptron),執行一個簡單的任務——識別圖像。從理論上講,你給感知機展示一個蘋果的圖片,它就會說出這是「蘋果」。
  • OpenAI發布「顯微鏡」,可視化神經網絡內部結構
    意為可以像實驗室中的顯微鏡一樣工作,幫助AI研究人員更好地理解神經網絡的結構和特徵。如上,點擊神經網絡的每一層,OpenAI 顯微鏡都會對處理圖片的過程進行可視化的展示,具體到每一個神經元都會對應一張處理後的圖片。非常清晰的展示了每一張圖片的「漸進」過程。據OpenAI介紹,這種探索神經元的過程,對另一份神經網絡可解釋性研究《Zoom In: An Introduction to Circuits》提供了意想不到的幫助。
  • Transformer新型神經網絡在機器翻譯中的應用|公開課筆記
    如左圖所示,我們輸入一個待翻譯的句子,通過神經網絡編碼器,去把這個句子的信息編碼成中間狀態,就是這個圖中紅色的部分,它用數值的隱層來表示。經過中間狀態、經過神經網絡解碼器去生成對應的翻譯,是編碼、解碼的過程。翻譯的知識和參數都是由神經網絡自動進行學習的,它省去了之前傳統方法之前的人工幹預模塊,使整個翻譯過程統一化,並且簡潔。
  • 中科院計算所設計全球首款圖神經網絡加速晶片
    「HyGCN,寓意向圖神經網絡的加速說『Hi』。」嚴明玉介紹道,圖神經網絡將深度學習算法和圖計算算法相融合,取長補短,能達到更優的認知與問題處理等能力,在搜索、推薦、風險控制等重要領域有著廣泛應用。現有的處理器晶片在執行圖神經網絡的計算中效率低下,其團隊前瞻性地展開面向圖神經網絡的加速晶片設計,為解決這一難題提供了可行方案。
  • 一種神經網絡結構改進方法「ReZero」
    現在,加州大學聖地牙哥分校的研究者提出了一種名為 ReZero 的神經網絡結構改進方法,並使用 ReZero 訓練了具有一萬層的全連接網絡,以及首次訓練了超過 100 層的 Tansformer,效果都十分驚豔。 深度學習在計算機視覺、自然語言處理等領域取得了很多重大突破。神經網絡的表達能力通常隨著其網絡深度呈指數增長,這一特性賦予了它很強的泛化能力。
  • 【中國新聞網】中科院計算所研究團隊提出圖神經網絡加速晶片設計
    文章披露,該團隊提出了圖神經網絡加速晶片設計「HyGCN」。相關論文也先後在計算機體系結構國際會議上發表。  嚴明玉在受訪時說,圖神經網絡在搜索、推薦、風險控制等重要領域有著廣泛應用。現有的處理器晶片在執行圖神經網絡的計算中效率低下,其團隊展開面向圖神經網絡的加速晶片設計,為解決這一難題提供可行方案。
  • 重磅| 谷歌大腦養成記:從識別貓到突破性機器翻譯
    我們目前仍然遠遠不能構建那麼大規模的網絡,但谷歌大腦的投資已經幫助實現了大約小鼠大腦的人工神經網絡。為了理解為什麼規模會如此重要,你首先要理解這項技術的細節。有些人認為人工智慧可以直接從圖書館或網絡上讀取理解知識,但事實並非如此。它們的工作是在數據中尋找模式——先是基本模式,然後尋找更複雜的模式。
  • 谷歌新研究:基於數據共享的神經網絡快速訓練方法
    導讀:神經網絡技術的普及離不開硬體技術的發展,GPU 和 TPU 等硬體型訓練加速器帶來的高算力極大的縮短了訓練模型需要的時間,使得研究者們能在短時間內驗證並調整想法,從而快速得到理想的模型。然而,在整個訓練流程中,只有反向傳播優化階段在硬體加速器上完成,而其他的例如數據載入和數據預處理等過程則不受益於硬體加速器,因此逐漸成為了整個訓練過程的瓶頸。