推薦一下自己的survey工作《AutoML: A Survey of State-of-the-Art》,有任何修改意見歡迎留言或者郵件告知。
以下內容是對AutoML技術現狀與未來展望講座的總結。
1.機器學習定義
-
《西瓜書》中的直觀定義是:利用經驗來改善系統的性能。(這里的經驗一般是指數據)
-
Mitchell在《Machine Learning》一書中的較為形式化的定義是一個程序通過給它一些數據,它能夠提升在某個任務上的某種度量。(如下圖示)

下圖很清楚明了的展示了機器學習所做的事情,不再贅述。

2.AutoML技術回顧
很多時候在某一領域使用機器學習得到了效果很好的模型,但是若要在另一個領域使用該模型則不一定適用,而且通常需要大量的專業知識。正是由於受到這樣的限制,所以才有了AutoML技術的發展。
2.1 AutoML研究的主要場景
2.1.1 靜態閉環AutoML
a. 介紹
第一個場景是靜態閉環AutoML,該場景是目前用的最多的場景。該場景是給定數據和度量標准之后,通過AutoML選擇出效果最好的模型。該過程沒有任何的人工干預,都是算法自動選擇的。

下圖展示了機器學習的基本流程圖,可以看到主要有數據預處理、特征處理、模型訓練等過程,並且每個過程都包含多種方法。

b. 存在的問題
而AutoML的本質工作是將各個過程的方法進行選擇、組合、優化。
但是AutoML存在如下問題:
- 由於我們通常並不知道所優化的參數和預期效果之間是什么樣的顯示表達,所以 目標函數形式未知。
- 由於可能的組合方式太多,所以 搜索空間巨大
- 正是由於組合方式太多,而且每一個組合都需要從頭做數據預處理,特征處理,模型訓練等操作,所以 函數計算代價巨大。

c. 解決辦法
- 1.基礎搜索方法
該方法其實就是網格搜索,即將各種參數排列成矩陣的形式,然后使用 笛卡爾積(\(A×B = {(x,y)|x∈A∧y∈B}\)) 將所有的組合可能遍歷一遍。

該方法有兩個缺陷:
- 隨着超參數的規模越來越大,組合的可能性會指數增加,從而導致計算量大大增加。
- 有的參數重要,但是有的並不重要,但是網格搜索會無差別組合,所以在不重要參數上浪費大量時間和計算資源。所以通常會采用隨機搜索的方法來增加搜索效率,並且不會存在指數爆炸,組合爆炸的問題。

- 2.基於采樣的方法
上面介紹的網格搜索和隨機搜索實現起來簡單,而且使用比較多,但是它們搜索起來比較盲目。
所以有了基於采樣的方法以期望避免搜索盲目。
該方法是基於某種策略去產生一組可能的參數候選組合,然后對候選組合進行評估。評估之后我們可以得到反饋,基於這個反饋我們會進一步優化搜索策略,以此迭代去解決優化問題。

這樣的一個優化過程是一個黑盒函數,學術界也叫做“零階優化”,因為在這一過程中我們只能獲取函數值,無法獲取到它的導數信息。
具體的實現方法有如下四種:
- 1) 基於模型的零階優化

如圖示,該方法也是通過采樣,評估,反饋等迭代操作來得到優化結果,包含兩個重要部件:一是用什么樣的模型,而是采用什么樣的采樣策略。
而常用的優化方法有兩種:貝葉斯優化和 隨機坐標收縮。
貝葉斯優化是被研究的最多的一種方法之一,而最常見的是采用高斯過程來建模。但是高斯過程在求解的時候需要一個三次方操作,所以當數據點特別多的時候計算效率是非常低下的。所以就有貝葉斯神經網絡來解決復雜度問題。
另外,高斯過程要求參數必須是連續空間的,而且還有一些其他的限制,所以需要用到隨機森林來解決參數類型受限問題。
對應的參數選擇策略標准有:
- 選擇概率提升較大的點
- 選擇提升幅度大的點
- 通過交叉熵選擇
- GP_UCB(不了解。。。)

貝葉斯模型存在一個致命的錯誤,那就是它依賴於很強的模型假設(表示我們對函數空間的認知)。
為了解決貝葉斯的缺點,有人提出可以通過分類的方式來解決,即將好的點和壞的點區分開來,而不是對模型進行假設,該方法就是隨機坐標收縮(RACOS, RAndomized Coordinate Shrinking)。
該方法采用的模型是使用框將好的點選中,壞的點在框外。而框需要滿足兩個條件:一是盡可能的隨機,而是框要盡可能的“瘦”,最瘦就是瘦成一條垂直於坐標軸的直線。

- 2) 局部搜索
該方法是指從一個點出發,在它的鄰域內進行搜索。
最常見的局部搜索方法是 爬山法。即尋找可能性最大的一個方向后,往該方向前進。該方法能夠收斂,但是可能會陷在局部最優解或者停在比較平的地方。
為了解決陷在局部最優問題,迭代式局部搜索應運而生。它的思想是在找到局部最優點后,對局部最優點有一些擾動,然后重新開始一輪局部搜索。

- 3) 啟發式算法
該類方法相較於前兩種缺乏堅實的理論支撐,主要是根據對生物,自然界的觀察,去模擬一些生物或者自然現象,從而進行優化。

- 4) 強化學習
該方法是有一種殺雞用牛刀的感覺,因為強化學習自身的優化就是一個比較大的問題。

- 3.基於梯度的方法
2.1.2 外部知識輔助AutoML
該場景其實也是靜態場景,只不過該場景會從其他任務遷移一些已經做過的知識來作為輔助。



2.1.3 動態環境AutoML
上面兩種場景都是靜態場景,而現實應用中每天的數據都是不斷產生的,任務度量也是不斷變化的,所以就有了動態環境AutoML。
例如常見的推薦系統,每天有新用戶注冊,又有老用戶離開。並且用戶的喜好也不斷發生變化,這就是典型的動態場景。

2.2 AutoML熱點研究方向
AutoML熱點研究方向主要有兩個:效率和 泛化性
2.2.1 效率
常見的提高效率的方法有如下:
- 將串行的計算方式改成 同步並行或者 異步串行
- 提前停止模型訓練,避免模型過擬合等現象的產生
- 使用預訓練模型進行熱啟動
- 混合優化目標,即將計算代價和損失函數結合起來作為優化目標

2.2.2 泛化性
還有一個研究熱點是訓練模型的泛化性。因為機器學習的本質是希望所訓練得到的模型能夠對多個任務都有效,即在從未見過的樣本上也能表現優秀。
- 評估
以基於采樣的優化為例,假設我們通過采樣得到了一些數據點,然后進行超參數評估。這個評估是怎么做的呢?
一般我們會從原數據集中選擇一部分數據作為驗證集,然后查看驗證集的效果如何。但是這個驗證集是否能代表未來的數據集呢?答案是不確定的。
所以有些工作就需要去研究怎么做更合理的評估。
我們知道AutoML是從眾多模型中選擇出在某一數據集上表現最好的一個作為最終的輸出模型,那么這就意味着其他的模型都浪費掉了。那些模型雖然表現不是最好的,但是可能也不差,而且可能在其他數據集上表現會更好。所以我們可以試着做集成學習,以此來提高泛化性。

2.3 從理論角度看AutoML
世上沒有免費的午餐。
有很多理論都證明不存在一種通用的算法能解決所有問題。

2.4 AutoML應用
視頻中主講人打了下廣告,介紹了由第四范式主辦的AutoML比賽。


3. AutoML未來展望
- 算法效率的提升
未來展望一個大方向是算法效率的提升。而算法效率又分為時間復雜度和樣本復雜度。
時間復雜度很好理解,它主要是希望能夠對全流程進行優化,如下圖示,不再贅述。
樣本復雜度則是指降低收集樣本的成本等。因為收集高質量的有標簽的樣本是很昂貴而且很困難的,所以可行的辦法是才用遷移學習來解決。周志華老師也提出了 學件的概念,即將以往訓練的 模型和對該模型的 歸約組合成學件,以供后續任務的使用。

- 算法

- AutoML理論