當前位置:
首頁 > 新聞 > 約翰霍普金斯大學劉晨曦:漸進式神經網路結構搜索

約翰霍普金斯大學劉晨曦:漸進式神經網路結構搜索

近年來,神經網路已經成為了計算機視覺中主要的機器學習解決方案。然而神經網路結構的設計仍然需要極強的專業知識,在一定程度上妨礙了神經網路的普及。

劉晨曦:約翰霍普金斯大學在讀博士,導師是 Alan Yuille 教授,主要研究方向為計算機視覺,自然語言處理等。曾就讀於加州大學洛杉磯分校及清華大學。其研究工作曾在 CVPR,ICCV,ECCV 等發表。

分享主題:漸進式神經網路結構搜索

分享大綱:

AutoML 和神經網路結構搜索的背景介紹

網路結構搜索空間

漸進式神經網路結構搜索演算法

圖像分類的實驗結果

雷鋒網 AI 研習社將其分享內容整理如下:

今天我要跟大家分享是漸進式神經網路結構搜索(Progressive Neural Architecture Search)。這項工作是我在 Google(美國)實習的時候做的項目,並在不久前的 ECCV 2018 上做口頭報告。


AutoML 和神經網路結構搜索的背景介紹

首先介紹一下 AutoML 和神經網路結構搜索的背景。

這篇文章主要涉及的領域是 AutoML,這是一個新興領域,也是 Google 非常重視的一個具體方向。它的目標很簡單但也很重要,就是能夠在 Machine Learning solution 的整個設計過程中,減少人的參與。當 AutoML 的實現程度夠高,能實現的具體場合是:人只需在早上起來的時候按一個回車鍵,整個設計過程就能實現高度的自動模式,晚上回來的時候就能夠完成。

當然理想很豐滿,現實實現難度卻比較大,為什麼?

現在的 Machine Learning solution 既有參數也有超參數,而現在最受歡迎的機器學習框架是神經網路,這裡主要討論它的優化是否自動化了。目前,參數的調整已經非常自動化了,可以直接用 Backpropagation 函數實現最優的參數調整,而難以實現較大程度自動化的,是超參數的調整。

那超參數都在哪裡?

一提到超參數,我們會更多地想到 learning rate 相關的數字,比如說整個 training 有多長時間,絕對數值應該選多少等。但是對於神經網路來說,很多超參數都在它的結構裡面。下圖就是一個網路結構:

很多神經網路結構需要很多的 expert experience 和 knowledge,但這樣得出的結果並不是最優的,這也是我們嘗試漸進式神經網路結構搜索最主要的 motivation。

近幾年來,大家逐漸開始關注一個問題:能不能不要過於依賴於 expert experience 和 knowledge,而通過自動的方式來得到一個非常好的神經網路結構?

神經網路領域發展得很快,但是現在神經網路結構搜索相關的文章中主要使用的方法是:進化的演算法(EA)和強化學習的演算法(RL)。

【關於這兩種演算法的講解,請回看視頻 00:07:00 處,http://http://www.mooc.ai/open/course/550?=aitechtalkliuchenxi

在我們之前,神經網路結構搜索的相關工作已經做得比較好了,但在我們研究這一領域的時候,發現的問題是,之前的工作都非常依賴計算資源。比如在 Google Brain 2017 年的一篇文章里,為了做神經網路結構搜索用了 800 塊 K40 的 GPU,然後訓練了 28 天。在今年的一篇文章里,雖然有了很大提升,但還是用了 500 塊 P100,並訓練了 5 天。

所以我們這項工作的主要目標是嘗試把神經網路結構搜索的速度和效率提高,具體的做法是:提出一個創新的演算法。在我們描述這個演算法前,我們需要了解網路結構搜索空間(Architecture Search Space)。


網路結構搜索空間

網路結構搜索空間大概的結構是:定義整個 Network 由一些 Cell 組成,一個 Cell 進一步由一些 Block 組成。

從 Cell 到 Network 的過程,如右圖所示,就是有了一個 Cell  structure 後,組建整個 Network,整個過程借鑒了 ResNet 的設計。

【關於從 Cell 到 Network 的過程更具體的講解,請回看視頻 00:12:40 處,http://www.mooc.ai/open/course/550?=aitechtalkliuchenxi

從 Block 到 Cell 的過程,是指一個 Cell 由 5 個 Block 組成,整個 Cell 的 output 是 5 個 Block 的 output 的 concatenation(連接)。如右圖,H 代表 Cell 的 output,H1 到 H5 代表了五個 Block 的 output。

而一個 Block 大概是下圖右邊的這樣一個結構,這是整個網路最小的形成段,Input1 通過 Operator1 transform 一下,Input2 通過 Operator2 transform 一下,二者通過一定方法 Combine 形成一個 Block。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

探索新的強化學習演算法遇到困難?不怕不怕,谷歌為你帶來「多巴胺」
清華大學韓旭:神經關係抽取模型

TAG:雷鋒網 |