最近,TNW一則熱門新聞炸開了鍋:google AutoML 系統近日居然自己寫了一串機器學習程式碼,其效率竟然超過了專業的研發工程師。這讓我們人類的優越感何存?你們這些機器人學生啊,學習能力不要太強哦
作者 | 周翔
人工智慧可謂是目前最熱門的行業,與此同時,相關人才的身價也跟著水漲船高。根據拉勾網的資料,2017 年,人工智慧招聘領域,2000 人以上大公司平均薪酬 25.2k。
而領英的資料則顯示,截至 2017 年一季度,基於領英平臺的全球AI領域技術人才數量已經超過 190 萬,排名全球第一的美國相關人才總數超 85 萬,相較而言,位列第七的中國只有 5 萬人左右,缺口巨大。
在高需求和高薪資的雙重刺激下,不管是學生物的,還是學材料的,想要轉戰 AI 的人越來越多,這也從側面驗證了為什麼吳恩達等 AI 大牛每次推出新的線上課程都能引發一輪“集體高潮”。
不過,想要轉行的同學要抓緊了,AI 既然可以速記員,取代翻譯,未來有沒有可能取代程式設計師呢?
5 個月前,谷歌開發出的 AI 自主設計的深度學習模型已經比創造它的工程師還要好了,如今這個 AI 系統又更進一步,在某些複雜任務上的表現也超越了人類工程師。
對此,你怎麼看?
在人工智慧的浪潮下,深度學習模型已經廣泛應用於語音識別、機器翻譯、影像識別等諸多領域,並取得了非常不錯的成果。但是深度學習模型的設計卻是一個艱辛且繁複的過程,因為所有可能組合模型背後的搜尋空間非常龐大,比如一個典型的 10 層神經網路就有種神經網路組合,為了應對這樣龐大的數量級,神經網路的設計不僅耗時,而且需要機器學習專家積累大量的先驗知識。
GoogleNet 架構,從最初的卷積架構開始,這種神經網路的設計需要進行多年的細心試驗和除錯。
在人工智慧頂級人才匱乏的情況下,為了讓機器學習模型的設計過程更加簡單,提升研發效率,谷歌於今年 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 開源地址是 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 工程師,但是機器都這麼努力了,你還有什麼藉口偷懶!
就在這篇文章的留言區,營長找到了好幾條評論稱:“作為AI工程師的我,感到了深深的壓力。機器學習能力照著麼發展下去,沒準飯碗兒就真丟了……”
參考資料: