關(guān)于自動機器學(xué)習(xí)的概述(AutoML)
機器學(xué)習(xí)是讓算法自動的從數(shù)據(jù)中找出一組規(guī)則,從而提取數(shù)據(jù)中對分類/聚類/決策有幫助的特征,隨著機器學(xué)習(xí)的發(fā)展,其中人工需要干預(yù)的部分越來越多,而AutoML則是對機器學(xué)習(xí)模型從構(gòu)建到應(yīng)用的全過程自動化,最終得出端對端的模型(end to end)。有了AutoML,機器學(xué)習(xí)就會從下圖的曲折變?yōu)樯蠄D的一馬平川。
從流程先后順序來分,最初是數(shù)據(jù)準(zhǔn)備,包括數(shù)據(jù)收集和清洗,之后是特征工程,其中包括特征選擇(決定哪些特征需要保留),特征提?。▽μ卣鬟M行降維,常用的方法例如PCA),特征組合(將多個特征合并/構(gòu)建為一個新的特征)。
在之后的模型構(gòu)建中,最關(guān)鍵的是模型選擇,之后超參數(shù)優(yōu)化,可以采取很多方式,最簡單的做法是網(wǎng)格搜索,常用的方法包括用強化學(xué)習(xí),進化算法,貝葉斯優(yōu)化,以及梯度下降,來縮小搜索空間;最后,AutoML通過引入提前停止,降低模型的精度,參數(shù)共享來自動化模型評價的過程。
數(shù)據(jù)收集這項任務(wù),不在是搜索與收集真實數(shù)據(jù),還包括產(chǎn)生模擬數(shù)據(jù),用來擴展訓(xùn)練數(shù)據(jù)集,可以使用的新技術(shù)包括對抗神經(jīng)網(wǎng)絡(luò)(點擊查看對應(yīng)文章),還可以使用強化學(xué)習(xí)的框架,來優(yōu)化用于控制生成數(shù)據(jù)的參數(shù),從而使得生成的數(shù)據(jù)能更有效的助力模型的訓(xùn)練。而數(shù)據(jù)清洗則是自動完成包括缺失值補全,離群點處理,特征歸一化,類別型特征的不同編碼等之前手動完成的工作。
模型的自動化選擇,傳統(tǒng)的方法是從傳統(tǒng)的模型,例如KNN,SVM,決策樹中選出一個,或多個組合起來效果最好的模型,而當(dāng)前AutoML的研究熱點是N eural Architecture Search, 也就是不經(jīng)過人工干預(yù),模型自動生成一個對當(dāng)前任務(wù)最有效的網(wǎng)絡(luò)結(jié)構(gòu),模型自動在自我生產(chǎn)的不同結(jié)構(gòu)下搜索最好的操作組合序列。
搜索的結(jié)果如下圖所示:
其中應(yīng)用到強化學(xué)習(xí)的部分如下圖所示:
這里的行為是以一定的概率選擇某個網(wǎng)絡(luò)結(jié)構(gòu),行為是在該結(jié)構(gòu)下,訓(xùn)練子網(wǎng)絡(luò),使其在訓(xùn)練集上達到預(yù)設(shè)的準(zhǔn)確率,獎勵是該子網(wǎng)絡(luò)在測試數(shù)據(jù)集上的準(zhǔn)確率與該網(wǎng)絡(luò)被選擇的概率的乘積,通過將子模型的泛化能力作為反饋,用于控制不同模型被選擇概率的RNN得以優(yōu)化其梯度,以選出泛化能力最強的模型,同時通過始終保持一定概率選擇其他模型,處理explore VS exploit的權(quán)衡。
NAS算法作為當(dāng)前AutoML最熱的研究領(lǐng)域,有很多變種,下圖展示了在CIFAR1000上,不同NAS方法的效果及訓(xùn)練用時。相比于強化學(xué)習(xí)和進化算法,傳統(tǒng)方法的用時更少。為了找到合適的網(wǎng)絡(luò)架構(gòu),除了傳統(tǒng)的串行網(wǎng)絡(luò),還有基于cell來做層級化網(wǎng)絡(luò)架構(gòu)搜索的。下圖展示的是先從幾個最基本的操作,搜索得出一個一級的網(wǎng)絡(luò)組件,之后在自動化的搜索如何用一級組件搭建網(wǎng)絡(luò)。
模型選定后的調(diào)參過程,最常用的是網(wǎng)格搜索,也就是按照固定的間距,在搜索空間上打點,但下圖指出,網(wǎng)格搜索不一定好過隨機搜索,原因是對于重要參數(shù),網(wǎng)格搜索采樣地點會不足,從而導(dǎo)致無法取到對模型效果相對較好的點,autoML會使用隨機抽樣,首先評價各個超參數(shù)的重要性,之后再對重要的參數(shù)進行微調(diào)。