近十年來,不管是機器學習相關的應用還是研究,都迎來了爆發式增長。尤其是深度學習,使得很多應用領域都取得了關鍵性突破,如計算機視覺、語音處理和遊戲。然而,多數機器學習方法的性能在很大程度上依賴於過量的模型設計策略,這導致新手難以較快地掌握和應用機器學習。在深度學習上更是如此,如果人類工程師想要讓神經網絡在特定的任務上取得理想的表現性能,就需要很好地選擇和設計網絡結構、學習過程、正則化方法及超參等。另外,隨著任務的不同,工程師需要重復上述過程。需要說明的是,即使是專家,在一個特定的數據集上,也需要經過多次的迭代和試錯纔能找到一組良好的網絡配置參數,新手更是如此。
自動機器學習(AutoML)旨在以一種數據驅動、目標導向及自動化的方法實現上述過程。換言之,用戶隻需要提供數據,AtuoML繫統就能夠自動學習出使得該應用取得性能的機器學習模型。因此,自動機器學習能夠讓那些想要使用機器學習方法但是缺乏機器學習資源或背景知識的領域科學家使用到的機器學習模型。這可以被視為一種機器學習的民主化,即通過AutoML,每個人都能獲得定制化的且達到行業水準的機器學習模型。
正如本書所展現的,自動機器學習方法已經成熟到可以與人類機器學習專家相競爭的水平,甚至在有些時候,自動機器學習的表現可以超越人類機器學習專家。簡單來說,機器學習專家一方面比較稀缺,另一方面人力成本較高,而自動機器學習卻可以在大量時間和金錢的前提下提升算法性能。自動機器學習的這種優勢使得自動機器學習的商業關注度在近幾年得到極大提升,而且幾家有影響力的科技公司目前正在開發自己的AutoML繫統。需要強調的是,讓機器學習民主化的好方式是通過開源的自動機器學習繫統,而非專營付費的黑盒服務。
本書對正在快速發展的自動機器學習領域進行了整體介紹。值得說明的是,目前大家都非常關注深度學習,導致很多研究者錯誤地將自動機器學習和神經網絡架構搜索(NAS)畫上了等號。如果你閱讀這本書,你就會了解到,NAS隻是自動機器學習的一個極佳案例,而自動機器學習實際所涵蓋的內容遠不止NAS。本書一方面可以為那些想要研究出自己的自動機器學習方法的研究者提供背景知識和起點;另一方面可以為那些想要將自動機器學習應用到實際問題的實踐者提供可用的AutoML繫統。而對於那些已經從事自動機器學習的研究者而言,本書可以提供一個AutoML研究成果和進展的概覽。根據自動機器學習所涵蓋的內容,本書主要分為三個篇章。
篇主要對自動機器學習方法進行介紹,一可以為新手提供全面的自動機器學習概述,二可以為有自動機器學習經驗的研究者提供參考。具體如下:第1章主要討論超參調優、自動機器學習中為關鍵和普遍的問題,同時介紹各種各樣的自動機器學習方法,並對那些目前較為有效的方法進行重點介紹和說明。 第2章主要介紹如何學會學習,舉例而言,如何利用評價機器學習模型中的經驗為新的數據設計新的學習方法。這樣的技術可以小化為一個機器學習新手向一個機器學習專家的轉換過程,同時能夠極大地降低在一個新的機器學習任務上獲得期望性能的所需時間。 第3章主要介紹NAS方法。NAS是自動機器學習領域中挑戰性的任務,因為神經網絡的設計空間極其巨大且神經網絡的單次評估極其耗時。雖然NAS相關的研究極具挑戰性,但這個領域的研究非常活躍,定期都會有一些令人振奮的解決NAS問題的新方法。
第二篇主要介紹了新手也可以使用的自動機器學習繫統。如果你更多地是想要將自動機器學習繫統應用到自己的實際問題上,可以重點學習該篇。這一篇中的章節評估所介紹的自動機器學習繫統,目的是讓讀者對這些繫統在實際任務中的表現性能有一個直觀的認識和了解。具體如下:第4章介紹個自動機器學習繫統——Auto-WEKA。該繫統主要基於WEKA機器學習工具包,支持各種分類方法、回歸方法自動搜索,同時支持方法所對應的超參自動設置和數據自動預處理。所有這些功能可以直接通過WEKA圖形化用戶界面一鍵點擊使用,不需要一行代碼。 第5章主要介紹基於scikit-learn框架的自動機器學習繫統——Hyperopt-sklearn,同時給出了若干個如何使用該繫統的代碼案例。 第6章介紹同樣基於scikit-learn工具包的自動機器學習繫統——Auto-sklearn。
該繫統使用了與Auto-WEKA類似的優化方法,同時增加了一些改進,如針對優化熱學習和自動集成方法。此外,第6章比較了Auto-sklearn和自動機器學習繫統Atuo-WEKA及Hyperopt-sklearn的性能。在兩個不同的版本上,Auto-sklearn在本書第三篇所介紹的自動機器學習挑戰賽上都取得了好成績。 第7章介紹能夠選擇深度神經網絡結構和超參的自動深度學習繫統——Auto-Net。在自動機器學習挑戰賽上,一個早期版本的Auto-Net所生成的個自動學習神經網絡的表現性能超過了人類專家所設計的模型。 第8章介紹可以自動組建和優化基於樹的機器學習管道的自動機器學習繫統——TPOT。顯而易見,這些經過自動學習出的管道的靈活性明顯優於那些以預先定義好的連接方式所形成的固定機器學習管道。 第9章介紹自動統計繫統,該繫統能夠自動生成一份含有數據分析、預測模型分析及模型性能比較的完整數據報告。尤為重要的是,該繫統能夠以自然語言的方式對分析結果進行表述,較好地契合了非機器學習專家的需求。
後,第三篇(即第10章)對自2015年以來自動機器學習繫統相關的挑戰賽進行概述。介紹這些挑戰賽的目的是促進從業者能夠設計出在實際任務中表現得更好並能夠從眾多備選中挑出模型的方案和方法。第10章詳細介紹這些挑戰賽,以及相應設計和過往挑戰賽結果背後所蘊含的理念和概念。
據我們所知,這是本全面介紹自動機器學習繫統的書a,主要包含自動機器學習的方法、實際可用的自動機器學習繫統及目前所面臨的挑戰。本書能夠為實踐者提供開發自己的AutoML繫統所需的背景知識和方法,同時提供能夠快速應用到廣泛的機器學習任務中的自動機器學習繫統的詳細內容。自動機器學習領域的發展可謂一日千裡,我們希望通過這本書能夠對近期的眾多進展進行組織和梳理。同時,我們希望諸位讀者能夠喜歡這本書,加入日益壯大的自動機器學習隊伍中。
a 譯者注:本書英文版是本全面介紹自動機器學習繫統的書,在譯者翻譯過程中,又有一些本領域的新書出版,特此說明。
致謝感謝所有章節的作者,沒有他們的貢獻和付出,該書無法成型和出版。同時,感謝“歐盟地平線2020研究&創新項目”為本書所提供的費用支持(弗蘭克ERC啟動基金,基金編號:716721)。
德國弗萊堡大學教授,弗蘭克·亨特美國懷俄明大學助理教授, 拉斯·特霍夫荷蘭埃因霍溫理工大學助理教授,華昆·萬赫仁
2018年10月