【全自動機器學習】ML 工程師屠龍利器,一鍵接收訓練好的模型

2020-12-03 和訊

    本文首發於微信公眾號:新智元。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。

  1 新智元原創作者:胡毅奇,南京大學 LAMDA 研究所

  【新智元導讀】機器學習系統有大量的超參數,在應用中需要依賴領域專家知識,並且有繁重的人工調參任務。現在,有一項工作希望讓這些過程自動化,只需一個按鈕,就能讓你得到訓練好的模型,這就是「自動機器學習」(autoML)。而自動機器學習的兩大工具,Auto-weka 有可視化界面,只需輕點滑鼠就能完成訓練工作,auto-sklearn 也僅需數行代碼便可構建可用的模型。操作如此簡單,還不用擔心訓練後的模型不 work,是不是很值得上手試驗一番?

  某日出差,在出租上閒來無事和司機閒聊,告知其本人專業是人工智慧,司機師傅頓時打開了話匣子:人工智慧我知道,那個 AlphaGo 下圍棋沒有人能下得過它,吧啦吧啦吧啦......某次乘地鐵,聽見地鐵上三五青年大談深度神經網絡。似乎一夜之間,機器學習飛入尋常百姓家,大有全民機器學習之勢。

  然而,若在街上拉住一位大爺說:我們來討論一下 SVM 的機制吧,大爺必然掙脫開來大吼:不要耽誤我買菜!機器學習算法紛繁複雜,No free lunch 理論告訴我們,每一個模型都有其偏好,對待不同的學習任務,都需用不同的模型來解決。一個算法工程師可能需要多年的修煉,才能熟練掌握各個算法的特性,在處理問題時,仍然需要使用各種 tricks,花費大量時間去調整模型,以求達到最好的效果。

  計算機科學工作者本著能讓計算機幹就不要人費勁的原則,自然不能忍受這種重複繁瑣的勞動。因此,自動機器學習(Automatic Machine Learning, AutoML)應運而生,它能自動完成算法和超參的選擇。

  對於機器學習工程師來說,AutoML 能將他們從重複勞動中解脫出來;對於機器學習菜鳥來說,再也不用擔心所選的模型不 work、超參不收斂,所需要做的只是接收訓練好的模型。

  AutoML 如同倚天劍屠龍刀一般,使機器學習工程師功力大增,但這樣一件利器在不久之前似乎知曉的人並不多,2017 年 5 月 18 日,谷歌開發者大會(I/O)以「學會學習」(learning to learn)為口號,才將 AutoML 推到更多人的視野中來。其實,自動調參的工作早在 20 世紀末 21 世紀初就已經出現,每年的機器學習和人工智慧的各大頂會上也頻繁出現 AutoML 的身影。自 2014 年起,每年來自德國弗萊堡大學的 ML4AAD(Machine Learning for Automatic Algorithm Design)小組,均會在機器學習頂級會議 ICML 上組織 AutoML 的 workshop,這是來自全球的 AutoML 工作者集中交流的舞臺。近年,谷歌、MIT 等世界知名企業高校也紛紛發表文章,加入到此領域中。

  既然 AutoML 發展了多年,也不能光打雷不下雨,AutoML 的產品早已上線,auto-weka[1](2013年)、auto-sklearn[2](2015年) 是其中的代表,這兩個工具均是 ML4AAD 組的產品。此小組的 leader 是 Frank Hutter 博士,此人博士期間的研究方向即是 AutoML,但是大多成果均和自動超參選擇有關,博士畢業後轉戰貝葉斯優化領域,為 SMAC 算法的主要作者,之後成功的將貝葉斯優化技術應用在 AutoML 領域,不斷推出成熟的 AutoML 產品,可謂根正苗紅。

  本文就按時間為順序,以成果為線索,分別對 auto-weka、auto-sklearn 這兩大自動機器學習工具,以及谷歌大腦和 MIT 在今年 ICLR 上發表的工作進行介紹。其中,詳細介紹 auto-weka、auto-sklearn 和谷歌大腦的工作,簡略介紹 MIT 的工作。

  從非梯度優化算法走向全自動機器學習,以及 Auto-WEKA:幫你選擇分類器的分類器

  貝葉斯優化是非梯度優化的代表,因為不需要知道梯度信息,也不需要優化問題,具有良好的數學性質,所以適用範圍比梯度優化更加廣泛,常常被用來求解複雜的優化問題。

  貝葉斯優化與 autoML 的兩大工具 auto-weka、auto-sklearn 有著密不可分的關係。機器學習能自動化的原因在於其算法過程遵循固定的步驟,一般來說為數據處理、特徵選擇、模型選擇和超參優化。Auto-weka 和 auto-sklearn 中,便將機器學習過程歸約成了算法選擇和超參優化(Combined Algorithm Selection and Hyper-parameter optimization,CASH)問題。

圖1:auto-weka 算法選擇樹狀圖

  CASH 用一個樹形結構(如圖1 所示)刻畫機器學習中算法選擇和超參設置的步驟,每一種算法的組合和超參的選擇對應為一個採樣,用 k 折交叉驗證的錯誤率作為評價指標。SMAC 是基於隨機森林的貝葉斯優化算法,結構和優化設置上均契合 CASH 問題,當仁不讓的肩負起優化 CASH 的責任。SMAC 也出色地完成了這一任務,在ChaLearn AutoML challenge 競賽中,auto-sklearn 分別獲得了 auto 單元與 tweakathon tracks 單元的冠軍。

  Auto-weka 和 auto-sklearn 分別對應了 java 和 python 環境,兩者的調用也十分簡單,如圖 2、3 所示。Auto-weka 有可視化界面,只需輕點滑鼠就能完成訓練工作,auto-sklearn 也僅需數行代碼便可構建可用的模型。操作如此簡單,還不用擔心訓練後的模型不 work,是不是很值得上手試驗一番?

圖2:auto-weka 可視化界面

  圖3:auto-sklearn 調用代碼  AutoML 新方向:谷歌、MIT 用強化學習自動生成 CNN、RNN 等架構

  將 AutoML 歸約成一個優化問題,然後用非梯度優化算法直接求解,是通向自動機器學習的一種思路。ICLR 2017上谷歌大腦的工作「Neural Architecture Search with Reinforcement Learning」[3]結合深度學習和強化學習,給我們提供了另外一種解決此問題的方法。

  1. 谷歌大腦:用強化學習生成子網絡

  在谷歌大腦的工作中,待生成的神經網絡被稱為子網絡,子網絡中每一層的結構被看作是時間序列上某一個時刻的輸出結果,這樣一個 controller(用一個 RNN 網絡來表示),就可以用來生成子網絡每一層上的結構(圖4 所示),子網絡訓練後在驗證集上的準確率作為該子網絡的評價。

  於是,問題就轉化為優化 controller 的權重,使其能生成子網絡的準確率儘可能大。但是,優化 controller 權重時梯度無法直接獲得,此時需要藉助強化學習方法獲得梯度。如果將 controller 對每一層的結構預測視為一個動作,這樣準確率就可以視為一組動作之後的獎賞值,可用 REINFORCE 規則估計出 controller 的梯度,用於更新權重生成下一個子網絡。

圖4:controller 生成子網絡示意圖

  值得注意的是,每個子網絡訓練的計算開銷都十分巨大,此工作中採用了異步並行的方法加速子網絡的訓練,這樣就大大增加了對計算資源的需求,在 CIFAR-10 上生成 CNN 結構的實驗中,谷歌大腦便使用了 800 個 GPU 來完成訓練工作。在實驗中,此方法被用來自動生成 CNN、RNN 等網絡結構,生成的網絡泛化能力與人工設計的網絡結構相當,但是規模要略小於人工網絡,說明了方法的有效性。

  同時,此方法在生成子網絡時需要預先設定好網絡的深度(controller 的步數),而且每一層中結構也是從預先給定的候選結構中選擇,所以欠缺了生成網絡的靈活度。

  2. MIT:用 Q-learning 生成 CNN

  無獨有偶,同在 ICLR 2017 上 MIT 的研究者,在「Designing Neural Network Architectures using Reinforcement Learning」 [4]中,也利用強化學習技術自動生成了 CNN 結構。

圖5:用 Q-learning 生成 CNN 示意圖

  此工作也是通過逐層生成的方式得到網絡結構,與谷歌大腦不同的是,在此工作中,將前一層的網絡結構視為一個狀態,將預測下一層的結構視為一個動作,將網絡在驗證數據集上的準確率視為獎賞值,用 Q-learning 的方法不斷完善 Q 函數,最終給出驗證正確率高的動作預測,生成泛化性能好的網絡結構。

  讓機器學會學習,讓機器學習工程師更有價值

  諸如 Auto-sklearn 的工具數年前就已經問世,但卻沒有被機器學習科學家廣泛使用,其中一個原因是,模型的好壞很大程度取決於訓練模型之前對數據的清洗工作。正如 Keras 之父 Francois Chollet 所說:「數據清洗工作很難自動進行,它通常需要專業領域的知識以及對工程師想要實現的工作有明確且高度的理解。」

  因此,即使在算法和超參選擇上做得足夠出色,AutoML 工具得到的還僅是一個好的模型,並非足夠好的模型。自然,這樣的結果是不能令精益求精的機器學習科學家滿意的。深度網絡的出現改變了這一現象,谷歌大腦在其 ICLR 2017 論文中指出:「深度網絡已經成功將機器學習範式從特徵設計轉向網絡結構設計。」

  擺脫了數據清洗的困擾,AutoML 似乎能在其擅長的結構搜索上掙脫束縛,大放異彩。其實不然,AutoML 的搜索依賴於對網絡結構或算法組合的評價,當前的大部分工作中均將 k 折交叉驗證錯誤率作為評價準則,結構和算法稍作改變均要重新訓練,時間和計算開銷十分巨大,導致搜索不夠徹底,也會影響 AutoML 的效果,以至於谷歌大腦在其工作中「大動幹戈」,使用了 800 個 GPU 完成加速模型訓練工作。如何在模型發生變化時消除計算冗餘,高效地得到模型的評價指標,也是 AutoML 亟待解決的問題。

  AutoML目前面臨諸多困難,但是隨著 GPU 的大規模使用,新一代計算設備 TPU 的出現,硬體性能大幅增長,在技術上,深度學習的成熟和強化學習的發展也為 AutoML 注入了新活力。

  讓機器學會學習才是 AutoML 的終極目標,每向此目標靠近一步,均是機器學習技術的突破。一旦困難得以解決,AutoML 的實現將解放廣大機器學習工程師的勞動力,大幅降低機器學習的門檻。但是如 Francois Chollet 所說,「機器學習工程師的工作不會消失,相反,工程師將在價值鏈上走高」,這也是 AutoML 魅力所在,它體現了機器學習工程師的價值,這點也吸引著工程師們為之不斷奮鬥。

  【南京大學副教授俞揚專訪】AutoML 全自動機器學習

  為了更好地理解「自動機器學習」(AutoML),新智元特地採訪了南京大學計算機科學與技術系副教授俞揚博士。

  俞揚博士主要研究領域為人工智慧、機器學習、演化計算、數據挖掘。發表論文 40 餘篇,包括多篇 Artificial Intelligence、IJCAI、AAAI、NIPS、KDD等人工智慧、機器學習和數據挖掘國際頂級期刊和頂級會議論文,研究成果獲得IDEAL'16 Best Paper、KDD'12 Best Poster、GECCO'11 Best Theory Paper、PAKDD'08 Best Paper、PAKDD』06 數據挖掘競賽冠軍等論文和競賽獎。獲 2017 年江蘇省計算機學會青年科技獎。

  俞揚博士共同發起並主辦了亞洲強化學習系列研討會(AWRL)、中國演化計算與學習系列研討會(ECOLE)。由於非梯度優化在自動機器學習中所起到的關鍵作用,自動機器學習也是他近來的研究興趣點之一。

  1. 新智元:有好幾個概念都提到了「學會學習」(learning to learn),除了自動機器學習(autoML),還有「元學習」(meta-learning)、「終身機器學習」(lifelong machine learning)。AutoML 和終身機器學習、元學習之間的關係是什麼呢?

  俞揚:經典機器學習主要考慮對給定的數據集進行學習。這幾個概念都表達了對機器學習系統更智能更有效的期望,不僅可以學習一個給定的數據集,還能跨環境,更好地處理不同的學習任務。「元學習」(Meta-learning)是源自教育心理學的一個詞,原本表示對於個人學習行為的控制。在機器學習領域,早在 1976 年左右,J. Rice 關於算法選擇的研究就引入了元學習概念,上世紀 90 年代興起了一批元學習研究工作,例如 Giraud-Carrier 認為,元學習是關於理解學習機制與具體的學習上下文的交互關係。可以看出,元學習中學習分為兩層,上層抽取和學習「元知識」,並指導下層在具體環境中的學習。元學習是一個定義很寬泛的領域,「learning to learn」 則是元學習的通俗易懂的說法,例如 C. Finn 最近介紹 learning to learn 的博客中就是在回顧元學習。

  終身機器學習則更關注機器處於與人相似的環境中,即面臨一個又一個的學習任務,例如 UCI 的劉兵(B. Liu)教授在終身學習 tutorial 中介紹,終身機器學習保留以往結果、抽象知識、並用來幫助未來的學習和問題求解。在 AAAI 終身機器學習研討會中,列舉了的主要任務包括發現數據的高層表達、知識遷移、知識庫維護,以及結合外來指導信息等。

  自動機器學習最近得到了越來越多的關注。從科學問題上看,自動機器學習屬於元學習,然而自動機器學習更多是受到來自應用需求的驅動:

  機器學習系統有大量的超參數,在應用中需要依賴領域專家知識,並且有繁重的人工調參工作。自動機器學習則希望將這些繁重的工作自動完成,例如 Auto-Weka 項目,僅提供了一個「自動學習」按鈕,實現「一鍵學習」。

  2. 新智元:機器學習在多大程度上可以自動?全自動機器學習實現後的人機互動會是怎樣的?

  俞揚:一個機器學習系統可能包含數據預處理、特徵抽取、模型學習等環節,每一個環節都有多種算法可以選擇,每一種算法又有多種超參數可以調節,模型學習算法還存在遞歸嵌套的可能。自動機器學習在所有可能中尋找一個較好的算法組合及其超參數,面臨巨大且複雜的搜索空間。同時,對於每種算法組合和超參數選擇的評價,通常需要完成一次學習過程,花費的時間和計算成本極高,因此自動機器學習還面臨評價代價高昂的困難。另外,巨大的算法配置空間增加了數據過擬合風險,對準確評價一種配置的泛化能力(即真實的預測精度)造成困難。

  總的來說,自動機器學習面臨空間巨大、評價昂貴、測試不準等困難,目前還難以做到理想的全自動。在已有的自動機器學習工具中,對搜索空間進行了限制,使得在較小的空間中可以對不太大的數據進行自動算法和超參數選擇。全自動機器學習實現後,人機互動會非常簡單,就如同 Auto-Weka 已經展示出來的一樣,用戶只要輸入數據,然後「一鍵學習」,等待學習結果。

  3. 新智元:您預計自動機器學習領域未來 3 到 5 年會得到怎樣的發展?

  俞揚:如果能更好的處理空間巨大、評價昂貴、測試不準等困難,可以預見自動機器學習將獲得更強的性能。目前已經可以看到針對每一個問題有一些新的技術發展,例如自動機器學習主要依賴非梯度優化,非梯度優化方法近年在理論和效率上都得到了提高。未來 3 到 5 年,隨著技術和計算設備的升級,對於較小的常見類型數據,自動機器學習有望能取得超過人工配置的學習效果。

  參考文獻:

  Thornton C, Hutter F, Hoos H H, et al. 2013. Auto-WEKA: Combined selection and hyperparameter optimization of classification algorithms. In Proceedings of the 19th ACM SIGKDD international conference on Knowledge discovery and data mining, 847-855.

  Feurer M, Klein A, Eggensperger K, et al. 2015. Efficient and robust automated machine learning. In Advances in Neural Information Processing Systems, 2962-2970.

  Zoph B, Le Q V. 2016. Neural architecture search with reinforcement learning. arXiv preprint, 1611.01578.

  Baker B, Gupta O, Naik N, et al. 2016. Designing neural network architectures using reinforcement learning. arXiv preprint, 1611.02167.

   文章來源:微信公眾號新智元

(責任編輯:李佳佳 HN153)

相關焦點

  • 谷歌AutoML鼻祖新作AutoML-Zero:從零開始構建機器學習算法
    【新智元導讀】市面上的自動機器學習算法多如牛毛,但並沒有得到很好的普及,因為這些算法限制了搜索的空間,很多研究者還是需要自己設計機器學習模型的結構,而谷歌此次發布的AutoML-Zero搜索空間完全沒有限制,可以從最基礎的數學公式開始。「新智元急聘主筆、編輯、運營經理、客戶經理,添加HR微信(Dr-wly)了解詳情。」
  • 如何使用PySpark來利用機器學習模型對流數據進行預測?
    來源:Pexels概述流數據是一個在機器學習領域蓬勃發展的概念學習如何使用PySpark來利用機器學習模型對流數據進行預測我們將介紹流數據和Spark Streaming的基礎知識,然後深入到實現部分因為社交媒體平臺以評論和狀態更新的形式接收龐大的流數據。該項目將幫助我們審核公開發布的內容。設置項目工作流程1. 模型構建:構建邏輯回歸模型管道,對推文中是否包含仇恨言論進行分類。在這裡,我們的重點不是建立一個完全準確的分類模型,而是了解如何在流數據上使用任意模型並返回結果2.
  • 使用Flask部署機器學習模型
    介紹我記得我早期在機器學習領域的日子。我喜歡處理多個問題,對機器學習項目的各個階段都很感興趣。和我之前的許多人一樣,我被模型整個生命周期的構建所吸引。我和領域專家談過,項目經理和所有相關人員確保他們的投入被包括在模型中。但後來我遇到了一個障礙——我到底該如何把我的模型交給我的客戶呢?我不能給他們一個Jupyter notebook!
  • 六條規則讓你的ML模型部署的更快
    在過去的一年中,我們學到了很多關於更快地構建和部署機器學習模型的知識,我們想分享一些我們在這裡學到的東西。一路上我們學到了什麼在這個過程中,我們學習了一些關於如何安全、快速地構建、測試和部署機器學習模型的重要規則。這些規則改變了我們的工作方式,希望您會發現它們對您和您的組織有用。1.採用自助服務在我們的機器學習平臺存在之前,數據科學家創建的模型將交給IT部門,這樣他們就可以為每個模型創建數據管道和模型部署環境。
  • 陳天奇創業公司首個SaaS產品:快速構建部署ML應用,跨平臺優化
    機器之心對博客內容編譯如下:長期以來的 ML 痛點機器學習和深度學習對計算機領域產生了巨大的影響,其發展看起來非常光明,很多工程師可能會將其加入到自己的工具中。總而言之:機器學習依然困難。雖然很多科技巨頭都在大力招聘優秀人才,但在機器學習社區中,所有人都會遇到以下兩個難題:痛點 1:機器學習庫和服務依然處在低層等級,不能夠很好地抽象複雜性。儘管有很多開源項目力求加快 ML 模型的應用,但是這些項目無疑都需要使用者對底層算法和計算細節有很好的認識。
  • 機器人結構工程師薪資_中國機器學習工程師薪資 - CSDN
    來看看你距離成為一名AI工程師還有多遠吧~⭐具體內容:我是因為什麼開始接觸敲代碼人工智慧/機器學習/深度學習自學如何尋找學習資料如何選擇程式語言/框架校招/社招/實習/面試經驗一碗雞湯⭐聲明:本篇內容均屬於個人觀點,建議採納對自己有用的經驗,如有疏漏,歡迎指正,
  • 谷歌大腦開源項目 AutoML-Zero:用數學運算能探索出機器學習算法
    我們提出的方法,稱為 AutoML_Zero,從空程序開始,僅使用基本的數學運算作為構建塊,應用進化方法自動找到完整機器學習算法的代碼。針對小圖像分類問題,我們的方法重新發現了基本的機器學習技術,如帶有反向轉播的二層神經網絡、線性回歸等,這些都是多年來研究人員發明的。這一結果證明了自動發現更多新的機器學習算法來解決未來更難的問題的可行性。
  • 驚為天人,NumPy手寫全部主流機器學習模型,代碼超3萬行
    最近,來自普林斯頓的一位博士後將 NumPy 實現的所有機器學習模型全部開源,並提供了相應的論文和一些實現的測試效果。項目地址:https://github.com/ddbourgin/numpy-ml根據機器之心的粗略估計,該項目大約有 30 個主要機器學習模型,此外還有 15 個用於預處理和計算的小工具,全部.py 文件數量有 62 個之多。
  • 想快速部署機器學習項目?來看看幾大主流機器學習服務平臺對比吧
    通過使用機器學習雲服務,你可以開始構建第一個工作的模型,只要一小個團隊,就可以從機器學習的預測中獲得有價值的信息。許多人已經討論過不同的機器學習的策略。現在讓我們來看看市場上最好的機器學習平臺都有哪些服務。什
  • ML.NET 0.7 發布,微軟開源的跨平臺機器學習框架
    微軟發布了 ML.NET 0.7,此版本側重於為基於推薦的機器學習任務提供更好的支持,主要實現了異常檢測、增強了機器學習 pipeline 的可定製性,並且支持在 x86 應用程式中使用等。
  • Qeexo發布基於邊緣傳感器數據的全自動機器學習平臺AutoML
    來源:TechWeb.com.cn【TechWeb】12月3日,Qeexo奇手公司今日發布了全新的AutoML產品,這是一款一鍵式全自動化平臺,讓用戶能夠快速在邊緣設備上使用傳感器數據構建機器學習解決方案。
  • PyTorch橫掃各大頂會:機器學習框架,一年間局勢突變
    比如,你只要把一個pdb斷點扔進PyTorch模型裡,它直接就能用了。相比之下,在TensorFlow模型裡面debug的話,便會複雜得多了。二是API好。比起TensorFlow的API,大多數研究人員更偏愛PyTorch的API。
  • APIAuto 2.0.0 發布,機器學習自動化測試、自動生成代碼和注釋...
    更新內容1.新增機器學習測試;2.新增及增強各種其它功能;3.兼容多種資料庫。
  • Unity Perception工具 | 使用合成數據訓練出強大的物體檢測ML模型
    然而,人工監督的機器學習需要更大、更複雜的數據集,而搜集這些數據會消耗大量的成本,並且搜集時還會面臨如何保證標籤質量、如何確定數據真實有效等問題。如今,這些問題,尤其是對象檢測,有了一個全新的解決方案:藉助軟體生成大量的合成數據集。合成數據的出現降低了大量搜集帶標籤數據集的難度,可輔助機器學習模型的訓練。
  • 417頁《機器學習中的數學》免費開放下載!| 好書分享
    作者 | 陳大鑫近些年來,機器學習領域取得了巨大的發展
  • 人工智慧機器學習三大類之回歸模型(RM)
    人工智慧機器學習三大類之回歸模型(RM) 工程師1 發表於 2018-07-13 01:39:00 人工智慧之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點探討一下回歸模型(RM)。
  • Python機器學習7:如何保存、加載訓練好的機器學習模型
    本文將介紹如何使用scikit-learn機器學習庫保存Python機器學習模型、加載已經訓練好的模型。學會了這個,你才能夠用已有的模型做預測,而不需要每次都重新訓練模型。本文將使用兩種方法來實現模型的保存和加載:Pickle和joblib。
  • 機器學習之父Michael I. Jordan 親臨2018全球機器學習技術大會
    就是這樣一位頂級泰鬥,將於2018年9月22-23日親臨由Boolan在上海世紀皇冠假日酒店主辦的ML-Summit 2018全球機器學習技術大會現場(http://ml-summit.org/)。屆時,參會者將有與大師進行面對面交流的寶貴機會。
  • 三張圖讀懂機器學習:基本概念、五大流派與九種常見算法
    機器學習和人工智慧的關係 機器學習是一種重在尋找數據中的模式並使用這些模式來做出預測的研究和算法的門類。機器學習是人工智慧領域的一部分,並且和知識發現與數據挖掘有所交集。更多解讀可參閱《一文讀懂機器學習、數據科學、人工智慧、深度學習和統計學之間的區別》。
  • 全新AutoML工具實現基因組全自動建模「寶藏技術」解讀生命天書
    慧眼解讀「生命天書」此前,由於基因組數據的複雜性,主流的基於圖像和文本的AI模型不能很好地對基因組數據進行建模。如果基因組能夠實現全自動AI建模,或許可以幫助科研人員解決數據處理難、解讀累的難題。但是由於基因組數據量之大,AI模型搭建是一項非常複雜的任務,開發門檻非常高。