如何評價Google Brain的新論文,利用RNN自動生成網路結構,並獲得接近和超過SOTA的成績?

Neural Architecture Search with Reinforcement Learning

Open Review

利用RNN來自動生成network,然後通過RL和policy gradient來優化網路結構。


首先,請大家假設一下,如果有一天,你有了成千上萬台計算機,換句話說,運算能力不再是局限的時候,你會需要一種什麼樣的演算法呢?

其次,也請再想像一下,如果有一天,你手頭的數據,是按秒,成 GB 的增長,你又需要什麼樣的演算法呢?

接下來,想像一下,如果你有了世界上所有人的實時數據,又有著無窮的計算能力,你又會需要什麼樣的演算法呢?

資源,這個事是相對的。所以平台才那麼重要。

PS:以上回答是沒有閱讀原文之前寫的一點感想(主要是實習中遇到的問題促發的一些感想,但放在這個問題下面,確實是無比的貼切。)

------------

讀過論文後的回答:

趁著出差坐飛機讀了論文之後,大體想法沒有變化。

與論文的巨大意義比起來,其中的具體實現已經是平凡的了。

論文內容如果用一句話來說就是,用深度神經網路來設計解決具體問題的最佳深度神經網路結構。

稍微了解一點神經網路的學生,應該都有過這種想法吧。但一般也都會被神經網路訓練的巨大開銷所擊倒。在無望地為調試網路而花費幾天到幾個月不等的時間之後,多半是為自己的年少輕狂、不知深淺訕笑兩聲,又再度投入到調參的汪洋大海般的人民戰爭里去了吧。

這裡就體現了大牛的眼光了,如果堅信道路是正確的,那就想辦法補齊資源的短板,堅定信念做下去。

按照論文現有的描述,其設計神經網路的能力還是有局限的,但擴展也不是太難的事。至此,可以解決學術問題的人工智慧即將實現。路線與結構都很清晰,通過語音或者文字,輸入問題並進行語義分析;根據問題,搜索收集相關數據,建立評估指標;根據搜索收集的數據,尋找到一個最優的神經網路結構,及一組參數;問題解決。

相比之下,某講究軍團作戰的企業,通過投入數千人的科研骨幹,進行人工智慧大戰役,簡直 LO 爆了。

機器學習,本質就是自動化,決策的自動化。能用演算法解決的事,怎麼能用人呢?

前幾天一次報告,勾回往昔的回憶,當初剛接觸模糊數學、神經網路、遺傳演算法三大智能演算法的時候,也是自信爆棚,真的做過用遺傳演算法調參神經網路識別人臉的實驗。把神經網路結構參數設計成一個遺傳演算法基因,然後把人臉識別的識別率作為遺傳演算法的適應度函數,來做優化。當時用的還是最最簡陋的 ORL 人臉資料庫。效果當然是慘不忍睹,而且極為緩慢。只能是一段不知天高地厚的青春回憶。

不曾想,也是不經意間走在正確的道路上呢!(^_^)


這種方法雖然聽起來高大上,然而需要大量的計算資源,感覺並不是很實用。因為每一次 policy rollout 生成一個網路結構就要從新訓練一次,那個 CIFAR10 的實驗每一個 policy gradient step 就要訓練 800個網路。這麼多的網路他們用了800個 GPU 同時訓練。然而如果對於大的數據集比如 ImageNet,每訓練一個網路的時間就會大大加長,在現有的硬體條件下這種方法可能就行不通了。


就摘兩句:

1) (on Cifar10)...which means there are 800 networks being trained on
800 GPUs concurrently at any time...

2) (on PTB)...which means there are 400 networks being trained on 400 CPUs concurrently at any
time...

不得不感慨,土豪有錢就是爽啊,小實驗,卡當白菜暴力用。

以及這麼多gpu,random search都能search出來個好的structure了吧。

(每次被我司資源又少又難用的gpu cluster折磨成狗的時候只能望天。。。)


雖然要大量計算資源來尋找最優網路結構,但一旦找到了就可以一直用了啊。就像現在把googlenet,resnet直接拿來用一樣。文章中將word-level找到的rnn cell structure用於char-level同樣獲得了超越lstm的實驗結果,一定程度上說明找到的最優網路結構可以用於transfer learning。

所以不差錢的google給大家找到了最優網路結構,作為伸手黨還是很感謝的。


這篇文章告訴我們

當前的RL框架只適合於決策成本很低、能快速模擬出結果的的環境

RL+DL絕非通向AI之路

只有當每個環節的演算法都趨於完善時,RL會成為那個整合起所有成果的角色


看了下cnn部分,除了預測一些基本參數,還對一些高級模塊,如skip connection,branch等進行預測,而這本身已經利用了人們總結出一些高級的先驗知識,自動學習出的網路結構只是機械地加層,加線,並沒有進化出人們理解外的網路結構。要是在沒有背景知識下自動學習出inception或者residual block的結構,才算是真的厲害


看樓上唱衰的多,我來唱唱反調。對那些唱衰的只能說明腦洞不夠啊。計算資源從來都不是問題,你今天沒有,以後肯定會有的,你今天隨隨便便玩得起的,過兩年就全是白菜。

假如有那麼一天,google在不斷訓練神經網路的時候訓練出了一個可以設計超參數的神經網路,他能夠根據訓練數據的數量以及質量,自動計算出一個神經網路,並自動優化,你說可怕不。往大了就不說了,扯些人工智慧威脅論也不好。往小了說吧,那些在私活接單網上賣1層3塊錢設計神經網路的你說google是不是拿機器人去賺錢...一個resnet1000層,3000塊錢呢...


花了2分鐘掃了一下這個。擼主和各位層主水平小弟我望塵莫及,在此膜拜Orz.

我也來說說我的想法吧,各位大師可圈可點可噴。

1.文章的意思很簡潔明了:以機器自動結構優化來換取傳統的人工設定網路結構。這一點是這個工作最重要的一點,是唯一的閃光點,也是小弟我最欣賞的一點。DeepLerning 各種牛逼的網路結構AlexNet,VGGNet,GoogleNet,ResNet..........這些東西結構都是死的,只能稱之為Learn。而人類做人工智慧最終的夢想是活的,要讓機器自能自定義網路結構,機器自己學習(Learn to Learn)。目前國內外的科學家中有那麼一小撮人在干這個事情。這篇文章邁開的步子雖然沒有一些科學家邁的遠。但終歸是邁出了一點。

2.通用系統觀點 VS. 專用系統思維。包括我還有大多數人咋一看這個文章。哇,這麼個搞法有啥用啊。那麼大規模的網路,連嬰兒大腦都用上了,就去弄一個Cifar什麼什麼的數據集,有意思么?閑的蛋疼? 隨便弄一個XX網路輕巧便捷分分鐘性能就上去了。這個要從研究動機和研究目的來看了:google作為(最)牛逼的搜索引擎和互聯網公司,要處理的任務、業務都是複雜而繁雜的。有錢且能燒錢研究這種通用系統是最終的選擇。它不僅在將來能滿足智能計算需求也是公司對前沿研究的挑戰。 相反來看,大部分做機器學習和AI的工程師們,在自己的公司和領域其實做的都是專用系統。藉助機器學習工具來解決語音識別、人臉、行人、車輛........等等。這些都需要輕便高效廉價的方案。 如果考慮Brain這種方案,別人肯定以為你是瘋球了。

3.上面一個層主說的RL+DL不可取。我覺得有道理,也感覺到RL這個東西是該工作比較惋惜的地方。因為一用了RL實際上將DL上層的東西給做死了。雖然把DL的結構能夠自動優化。不過人類的研究都是一步一步的往前怕的。再過10年回頭看這些東西,會覺得哇,當時的人怎麼那麼笨拙啊。:)

4.效率問題。人家說了我這個用起來很快的嘛。我覺得應用上是有價值的。因為針對各種應用,這一攤東西就建立初始模型的時候花點時間。基本模型穩定後應該是可以在線自優化的。應用效率高就可取。離線處理慢點也沒問題。

就醬!各位大神可擼可噴。


個人覺得這不是正道,正道應該是設計一個超級寬超級深的神經網路,這個網路本身已經包含了任意可能的網路結構,所以只需要找到正確的訓練方法,在訓練過程中動態切斷一些連接,它就能變成針對具體問題最佳的網路結構。。嗯,像不像大腦?


從未來的角度來說,這是在現有框架下向著強人工智慧的一個嘗試,儘管在現有的硬體下是粗笨緩慢的解決方案,但是是第一個去學習網路結構的嘗試,而不是純人工設計的網路結構,我覺得是今後發展的必然方向。

就像當年發明計算機的時候,它算的還沒人算的快,但證明了機器算東西是可行的。這篇文章同樣證明了,讓機器自己去調節網路結構是可行的,雖然現在慢得幾乎不可用罷了。


認真看看實驗吧,不就是暴力搜索嘛。(逃


我覺得什麼時候搞個量子顯卡,那麼這些都解決了!!

各位想想,如果顯卡沒有升級,有誰可能去發明什麼VGG??ResNet-152???

所以,量子計算機是人類歸宿!!!


推薦閱讀:

TAG:人工智慧 | 機器學習 | 神經網路 | 深度學習DeepLearning | GoogleBrain |