AutoML技術現狀與未來展望
以下內容是對
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∈BA×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理論
MARSGGBO♥原創
AutoML技術現狀與未來展望 - marsggbo - 部落格園