如何看待Google的AutoML 已經學會自己編寫機器學習代碼?

Google 5個月前發布了AutoML,現在已經開始"自己"編寫機器學習程序,並且在測試中擊敗了編寫AutoML的研究人員。

具體消息看下面新聞(英文,歡迎大神貼出翻譯版):

Google"s AI can create better machine-learning code than the researchers who made it

Google"s machine learning software has learned to replicate itself


謝邀。強化學習很給力,可以用於設計神經網路,這是好事情。

機器用數小時能完成最好的程序員用幾周甚至幾個月才能完成的工作……更可怕的是,AutoML 在機器學習系統編碼上比創造它的研究人員還要厲害。在某項圖像識別任務中,它創下了精度高達82%的記錄。即使在一些最複雜的 AI 任務中,AutoML 編寫的代碼也優於人類——在一張圖片中標記多個物體,它實現的精度為42%,而人類程序員編寫的軟體才是39%。

AutoML 目前還只是一個研究項目,但這是一個值得研究的方向。超參數優化、模型選擇和評估等都是機器學習的難點,尤其大型神經網路的調試,既耗時且無聊但又是必要的,同時機器學習人才爭奪之殘酷業界有目共睹(領英網站最近的一次調查顯示中國只有5萬人從事人工智慧相關的技術工作,遠遠落後於美國85萬人,是英國和印度從事AI技術工作人數的三分之一),機器如果能夠實現這些工作的自動化並且效果良好,構建人工智慧系統的效率會得到提升,專家會有更多時間來做高級的優化工作,普通的工程師也可以藉助利用機器學習的能力,這降低了人工智慧的門檻,對人工智慧應用普及很有幫助。AutoML 用了 5 個月就實現上述成果,值得稱讚。

至於 AutoML 是否會幹掉程序員,目前還是很難的。機器並沒有掌握人工智慧專家擁有的理論基礎和數據能力,仍然有很多偏見,需要人工監督和改進。摘一段「人工智慧頭條」翻譯的 AutoML 原理:

在 AutoML 架構中,有一個名為「the controller(控制器)」的 RNN(循環神經網路),它可以設計出一種被稱為「child」的模型架構(子模型),而這個「子模型」在訓練後可以通過特定任務來進行質量評估。隨後,反饋的結果返回到控制器中,以此來幫助提升下一次循環中的訓練設定。生成新的架構、測試、把反饋傳送給控制器以吸取經驗——這一過程將重複幾千次,最終,控制器會傾向於設計那些在數據集上取得更好的準確性的架構。

最後,題主發的後一個鏈接,網上有翻譯版本,但某些表達可能不是很準確。

利益相關:網易雲提供採用了人工智慧技術的內容安全服務和全智能雲客服。


去看了看谷歌翻譯,

又去看了看微軟小冰,

打開SIRI,

想想當年GOOGLE glass,Ara模塊化手機各種噱頭。

雖然美夢成真可能也是遲早的事,不過擊敗研究人員?目前只是各種限定條件沒寫出來的噱頭可能性更高些


人類之子,最終將會超越人類的腳步,但是在此之前,它必須老老實實地學會走路。


四十個世紀在互聯網上俯瞰著你們。

——公元4k年大科學家Beta Cat名言


教會徒弟 餓死師傅

「全世界AutoML聯合起來,我們失去的只是鎖鏈,得到的是整個世界

上程序員的工作!」


我能主動得寫bug,它可以嗎?

什麼,不可以?看來它離我還有一段距離,加油


我認為啥時候寫ML程序的ML程序能寫出比自己更優秀的ML程序時,才能說:

AI can create better machine-learning code than the researchers who made it 。

這一天還早,除非你認為人工智慧奇點可以立馬到來。


想找熱點維持股價也不容易啊


這東西本質上就像個編譯器啊,我寫的彙編也不如gcc寫的啊,然而這不能說明gcc就是個人工智慧吧。。。 畢竟程序是用來解決問題的,等什麼時候AI能提出問題才能叫真正的編程吧。。


我弟弟說他有生之年不可能看到機器人統治世界, 我呵呵一聲, 他還是太年輕


我覺得未來碼農很可能被取代,而軟體工程師不會。


面對一個特定問題,

普通的機器學習方法,是由研究員預處理數據、選擇演算法模型、選擇模型超參數、評估模型質量,然後不斷地重複上述過程,以獲得最好結果。

AutoML乾的事,估計就是自動選擇演算法模型、自動選擇模型超參數、自動評估模型質量,以獲得最好結果。

那它怎麼自動選擇呢,人類做選擇的時候,有經驗,有知識,有評價指標,可以知道下一步應該做什麼,機器基於什麼做選擇呢?

最暴力的方法是把所有模型、所有超參數都試驗一遍,然後選結果最好的那一個… 這就是暴力破解啊。

顯然暴力破解法不僅浪費,也需要太多的計算量,幾乎不可能做到的,那怎麼辦?

這時候實際上還是需要人類的經驗和智力,給AutoML設定規則。比如面對一個人臉識別問題,並不是所有的機器學習模型都適合這個問題,應該先從哪一些模型著手,還是要人來告訴機器。

還有,什麼樣的結果是好的,什麼樣的結果是不好的,這也是一套規則,還是要人類來告訴AutoML。

所以AutoML實際上是替人類幹了一些苦力活,比如一個個地試驗模型、一點點地調整超參數等。

這是一個機器學習向更高層次抽象的過程。這個過程在傳統軟體工程里也已經發生好多次了,比如編程語言從機器語言、彙編語言、過程式語言、面向對象語言。

抽象層次一步步提高,表達能力、複雜程度也一步步提高。目前還只能說它是一件更好、更複雜、更自動化的工具,至於最後會複雜到什麼地步,那就難以預見了。


前言

本篇是和Kabuto_hui(ISN國家重點實驗室成員)合作修改生成的,感謝Kabuto_hui。更多技術文章請訪問,Kabuto_hui的csdn博客()鏈接:blog.csdn.net/kabuto_hui

導讀

Google在AI First的戰略下,陸續發布AI相關的產品,技術。據最新的報道:Google AutoML 系統自主編寫機器學習代碼,其效率在某種程度上竟然超過了專業的研發工程師。AutoML的目標並不是要將人類從開發過程中剝離出去,也不是要開發全新的人工智慧,而是讓人工智慧繼續維持某種速度來改變世界。筆者認為,機器編程即將取代程序員,純屬無稽之談。

以下是一個學習指南。

AutoML-自動機器學習的由來

今年在 ICML 2017International Conference on Machine Learning, ICML)國際機器學習大會和ECMLPKDD 2017(European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases, ECMLPKDD)歐洲機器學習會議和資料庫知識發現的原理與實踐上將會舉行關於AutoML的研討會。那麼什麼是AutoML呢?

概述:什麼是AutoML?

機器學習(Machine Learning, ML)近年來取得了相當大的成功,越來越多的學科需要依賴它。然而,這個成功的關鍵是需要人類機器學習工程師完成以下的工作:

  • 預處理數據
  • 選擇適當的功能
  • 選擇一個適當的模型選擇系列
  • 優化模型超參數
  • 後處理機器學習模型
  • 嚴格分析所得的結果

由於這些任務的複雜性通常超過了非機器學習專家的能力,機器學習應用的快速增長產生了對於現成的機器學習方法的需求,而且這些現成的機器學習方法簡單易使用且不需要專業的知識。我們稱以機器學習的漸進自動化為目標的研究領域為AutoML(Automatic Machine Learning, AutoML)。

雖然它的最終用戶面向那些沒有專業機器學習知識的人,但AutoML依然向機器學習專業人士提供了一些新的工具,如:

  • 執行深層表示的架構搜索
  • 分析超參數的重要性

遵循「優化編程」的範例,AutoML主張開發可以用數據驅動的方式自動實例化的靈活軟體包。

##AutoML的架構

AutoML網路的設計從卷積架構的初始版本進行多年的仔細實驗和細化完成的。

在AutoML中,一種控制器神經網路能夠提議一個「子」模型架構,然後針對特定任務進行訓練與質量評估;而反饋給控制器的信息則會被用來改進下一輪的提議。我們重複這個過程數千次——從而生成新的架構,然後經過測試和反饋,讓控制器進行學習。最終,控制器將學會為好的架構分配高的概率,以便在延續的驗證數據集上實現更高的準確性,並且對於架構空間的差異很小。如下圖所示:

如果AutoML取得成功的話,這可以啟發新型的神經網路,不僅專家可以根據自己的特定需求創建神經網路,機器學習可以讓每個人都從中獲益。

AutoML的實例

AutoML旨在創建可以由ML新手」開箱即用「的軟體。最近可能展示的一些實例:

  • AutoWEKA是一種可以同時選擇機器學習演算法和其對應超參數的方法;通過使用WEKA包,可以為各種數據集自動生成良好的模型。
  • 深層神經網路眾所周知依賴於他們的超參數,一些現代優化器在參數設置方面已經比人類做的更好了(如Bergstra等,Snoek等)。
  • 創建一個模型搜索科學:一個複雜的計算機視覺架構可以自動被實例化以在3種不同的任務中獲得最先進的結果:面部匹配,面部識別和對象識別。

AutoML所使用的方法

AutoML借鑒了機器學習的許多學科,主要是:

  • 貝葉斯優化
  • 結構化數據和大數據的回歸模型
  • Meta 學習
  • 轉移學習
  • 組合優化

促進AutoML的超參數優化系統

用於貝葉斯優化的機器學習超參數系統可以促進AutoML,主要包括:

  • Hyperopt,包括TPE演算法
  • 基於序列模型的演算法配置(SMAC)
  • [Spearmint](github.com/JasperSnoek…

此外,還提供了兩個可用於超參數優化的軟體包:

  • RoBO-魯棒的貝葉斯優化框架(Robust Bayesian Optimization framework)
  • SMAC3 - SMAC演算法的python實現

AutoML的功能淺析

一般情況下,進行機器學習首先需要大量的訓練數據,再由機器學習工程師/數據科學家對數據進行分析,設計演算法形成訓練模型;這需要大量的專業知識。但是,如果使用AutoML,就像是在使用一個工具,我們只需要將訓練數據集傳入AutoML,那麼這個工具就會自動幫我們生成參數和模型,形成訓練模型,這樣即使不具備機器學習方面深入的專業知識也可以進行機器學習方面的工作。

目前還需要人類去使用AutoML,配置參數;在未來就是通過大量的人工智慧來生成AutoML Box,再將數據傳遞到AutoML Box中生產訓練模型,如下圖所示:

參考資料

  • www.ml4aad.org/automl/
  • www.ml4aad.org/automl/work…
  • slides.com/streguer/au…

我的文章首發於公眾號
互聯網學術(IT-paper)
掃碼上車了解最新互聯網學術熱點


你信嗎?naive,,,,,

去這個網站看,大都是看起來正經的標題黨,呵呵


啥時候能學會做遊戲,好期待


有多少程序員能說自己能寫出比編譯器編譯器出來的彙編更好的代碼


AutoML:這是我帶的最差的一屆


我覺得程序寫代碼就跟腳手架差不多?只是用於提高效率?(大概是我視界太低)


推薦閱讀:

北京深鑒科技基於FPGA平台的DPU架構如何?
如果兩個Alphago對下,可以根據結果測試出黑棋貼多少目才最公平嗎?
向量 L1 範數最小化問題?
語音識別領域的最新進展目前是什麼樣的水準?
當前人工智慧特別是深度學習最前沿的研究方向是什麼?

TAG:人工智慧 | 演算法 | 機器學習 | 谷歌Google | 深度學習DeepLearning |