本文首發於微信公眾號:新智元。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。
【新智元導讀】機器學習系統有大量的超參數,在應用中需要依賴領域專家知識,並且有繁重的人工調參任務。現在,有一項工作希望讓這些過程自動化,只需一個按鈕,就能讓你得到訓練好的模型,這就是「自動機器學習」(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)