人工智慧確實可以編程。近日,據外媒 tnw 報道,google automl 系統居然自己寫了一串機器學習代碼,其效率竟然超過了專業的研發工程師。這讓我們人類的優越感何存。
你們這些機器人學生啊,學習能力不要太強哦。
在人工智慧頂級人才匱乏的情況下,為了讓機器學習模型的設計過程更加簡單,提升研發效率,谷歌於今年 5 月推出了「automl」,顧名思義,automl 實際上就是一種讓模型設計過程自動化的機器學習軟體,該系統會進行數千次模擬來確定代碼的哪些方面可以作出改進,並在改變後繼續該過程,直到達成目標。
為了測試 automl,谷歌將其自行設計的模型用在了專注圖像識別的 cifar-10 與語言建模的 penn treebank 兩大數據集上。實驗證明,automl 設計的模型的性能表現與目前機器學習專家所設計的先進模型不相上下。令人尷尬的是,有些模型甚至還是 automl 團隊的成員設計的,也就是說,automl 在某種程度上超越了自己的締造者。
5 個月過後,automl 又往前邁進了一部。據外媒 thenextweb 報道,在某個圖像識別任務中,automl 設計的模型實現了創紀錄的 82% 的準確率。即使在一些複雜的人工智慧任務中,其自創建的代碼也比人類程式設計師更好,比如,在為圖像標記多個對象的位置這一任務中,它的準確率達到了 42%;作為對比,人類打造的軟體只有 39%。
automl 的進展超出了很多人的預期,那麼為何機器在設計深度學習模型這一任務上表現的如此出色?先讓我們來了解下 automl 的工作原理。
automl 是如何設計模型的?
作為 ai 領域的領頭羊,谷歌其實暗地裡做了不少嘗試,包括進化算法(evolutionary algorithms)和強化學習算法(reinforcement learning algorithms)等,並且都展現了不錯的前景,而 automl 則是谷歌大腦團隊利用強化學習取得的成果。
在 automl 架構中,有一個名為「the controller(控制器)」的 rnn(循環神經網絡),它可以設計出一種被稱為「child」的模型架構(子模型),而這個「子模型」在訓練後可以通過特定任務來進行質量評估。隨後,反饋的結果返回到控制器中,以此來幫助提升下一次循環中的訓練設定。如下圖所示:
生成新的架構、測試、把反饋傳送給控制器以吸取經驗——這一過程將重複幾千次,最終,控制器會傾向於設計那些在數據集上取得更好的準確性的架構。
ai 工程師古筱凡表示,automl 的運作過程實際上可以分成以下兩部分:
元學習的熱啟動:在機器學習框架中尋找效果好的算法;計算不同數據集之間的相似度,相似的數據可以採取類似的超參數。
超參數優化,算法包括:hyperopt(tpe 算法);smac(基於隨機森林);spearmint。輸入不同的超參數為,以損失函數為準確率,調優器會在隨機選擇一些值的基礎上,利用貪心算法去尋優。
下圖的兩個模型是基於 penn treebank 數據集設計的預測模型,其中左邊是人類專家設計的,右邊則是 automl 設計的。
谷歌團隊表示,機器自行選擇架構的過程其實和人類設計模型架構的過程是有共通之處的,比如兩者都採用了合併輸入,並借鑑了前向的隱藏層。不過,automl 也有一些值得一提的亮點,比如機器選擇的架構包含了乘法組合( multiplicative combination),比如上圖中 automl 設計的模型的最左邊的「elem_mult」。對 rnn 而言,出現這種組合的情況並不常見,可能是因為研究人員並沒有發現這種組合有什麼明顯優勢。但是有意思的地方在於,近來正好有人提議過這種方法,並認為乘法組合能夠有效緩解梯度消失/爆炸的問題。這意味著,機器選擇的架構對探索新的神經網絡架構有很大的幫助?
此外,這種方法或許還能教會人類:為何某些特定類型神經網絡的效果更好?比如上圖右邊的架構有非常多的 channels,因此梯度可以向後傳遞,這也解釋了為何 lstm rnns 的表現比標準 rnns 的性能更好。
automl 開源地址是 https://github.com/automl,感興趣的朋友可以自己動手嘗試一下。
automl 會取代 ai 工程師嗎?
automl 能在短時內取得顯著進步,證明了用機器設計模型這個方向是有前途的,但是 automl 的終極目的是為了取代 ai 工程師嗎?
現如今,ai 專家必須通過本能和試錯來不斷調試神經網絡的內部架構。加州大學伯克利分校研究員 roberto calandra 表示 :「工程師的很大一部分工作本質上非常無聊,需要嘗試各種配置來看哪些(神經網絡)效果更好。」calandra 認為,因為要解決的問題越來越難,神經網絡也越來越深,未來設計一個深度學習模型的將會是一個艱巨的挑戰。
而從理論上來講,automl 未來設計一個深度神經網絡所耗費的時間,與人類專家相比幾乎可以忽略不計,而且這個由機器設計的模型的效果也會更好,顯然 automl 將大有可為。
但是,這並不意味著 automl 會將人類從 ai 系統的開發過程中剔除出去。
實際上,automl 的主要目的會降低機器學習的門檻,促進 ai 的民主化。要知道,即便實力雄厚如谷歌,也不敢說自己已經擁有足夠的 ai 人才,因此降低門檻,提高效率,對 ai 行業的發展至關重要。
谷歌執行長 sundar pichai 在上周的發布會上表示:「如今,這些(ai 系統)都是機器學習專家親手搭建的,而全世界只有幾千名科學家能夠做到這一點。我們希望讓成千上萬的開發者也能夠做到這一點。」
因此,雖然 automl 可能沒有繼承谷歌頂尖工程師的理論基礎和數學才華,但是它卻可以幫助 ai 工程師節省時間,或者啟發他們,為他們提供靈感。
古筱凡也認為,automl 是真正的機器學習,它把經驗性的工作自動化,現在的機器學習只是半成品。automl 能極大地降低未來機器學習的門檻,將是普通人使用機器學習的利器。
據悉,automl 團隊將會對機器所設計的架構進行深入的分析和測試,幫助 ai 工程師重新審視自身對這些架構的理解。如果谷歌成功,這意味著 automl 將有可能引發新的神經網絡類型的誕生,也能讓一些非專業研究人員根據自己的需要創造神經網絡,造福全人類。
automl 可能不會取代 ai 工程師,但是機器都這麼努力了,你還有什麼藉口偷懶?
- 編程問答
- 答案列表
編程能否用人工智慧[朗讀]
加入收藏