集成學(xué)習(xí)是將不同的機(jī)器學(xué)習(xí)模型結(jié)合在一起的創(chuàng)新方法,它廣泛應(yīng)用于神經(jīng)網(wǎng)絡(luò)中,可以收獲很好地表現(xiàn),例如在Netflix Prize和Kaggle競賽中都有它的身影。
但是,在實踐中,這種方法卻很少用到,因為訓(xùn)練時間很長,并且在選擇機(jī)器學(xué)習(xí)模型時需要考慮各種類型的專業(yè)領(lǐng)域。隨著計算力和各種深度學(xué)習(xí)硬件的出現(xiàn)(例如TPU),機(jī)器學(xué)習(xí)模型會越來越豐富,集成現(xiàn)象也會越來越多。那么是否有一種工具可以自動搜索神經(jīng)網(wǎng)絡(luò)框架,然后學(xué)習(xí)將最佳的幾種模型集合,創(chuàng)造出另一個高質(zhì)量模型。
最近,谷歌推出了AdaNet,這是一個基于TensorFlow的輕量化框架,可以自動學(xué)習(xí)高質(zhì)量模型,只需人類少量干預(yù)。AdaNet以最近的強(qiáng)化學(xué)習(xí)和基于演化的AutoML為基礎(chǔ),不僅速度快、靈活度高,而且還能保證成功學(xué)習(xí)率。重要的是,AdaNet不僅僅為學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)架構(gòu)提供了通用框架,而且還能學(xué)習(xí)集成,得到更好的模型。
AdaNet使用起來很方便,并且得到的都是高質(zhì)量模型,為機(jī)器學(xué)習(xí)從業(yè)者節(jié)省了大量時間,用一種適應(yīng)性算法學(xué)習(xí)將神經(jīng)架構(gòu)看作是子網(wǎng)絡(luò)的集成。AdaNet可以將不同深度和寬度的子網(wǎng)絡(luò)結(jié)合起來,創(chuàng)造出一個多樣化的集成模型,減少參數(shù)的數(shù)量提高性能。
AdaNet逐漸生成神經(jīng)網(wǎng)絡(luò)集成的過程,在每一次迭代,它會計算每個候選網(wǎng)絡(luò)的集成損失,選擇最佳的那個加入到下次迭代中
快速易用
AdaNet采用TensorFlow估計器的交互界面,它通過簡單訓(xùn)練、評估,大大簡化了機(jī)器學(xué)習(xí)的編程過程。它把TensorFlow Hub模塊、TensorFlow模型分析和谷歌云的超參數(shù)調(diào)整期等開源工具結(jié)合在了一起。分布式訓(xùn)練可以極大地減少訓(xùn)練時間。
AdaNet在CIFAR-100上每一訓(xùn)練步驟的精確度。藍(lán)線代表在訓(xùn)練集上的精確度,紅線代表測試集上的表現(xiàn)。在每百萬個步驟上都有一個新的子網(wǎng)絡(luò)開始訓(xùn)練,最終會提高整個集成模型的性能。灰色和綠色的線表示新的子網(wǎng)絡(luò)加入之前集成的精確度
TensorBoard是可視化模型尺度在訓(xùn)練時最佳的TensorFlow特征之一,AdaNet與其無縫銜接,從而控制子網(wǎng)絡(luò)的訓(xùn)練、集成的構(gòu)成和性能。當(dāng)AdaNet完成訓(xùn)練后,它會輸出一個SavedModel,之后會利用TensorFlow Serving進(jìn)行部署。
學(xué)習(xí)保證
創(chuàng)建一個神經(jīng)網(wǎng)絡(luò)集成會面臨多種問題:哪種是最好的子網(wǎng)絡(luò)架構(gòu)?是重復(fù)使用同一種架構(gòu)好,還是讓架構(gòu)多樣化好?雖然參數(shù)更多的復(fù)雜子網(wǎng)絡(luò)在訓(xùn)練集表現(xiàn)得可能更好,但也正是因為它們的復(fù)雜性,可能無法在陌生數(shù)據(jù)上進(jìn)行泛化。這些挑戰(zhàn)都來自于對模型性能的評估,我們可以從訓(xùn)練集中分出一部分?jǐn)?shù)據(jù)對模型性能進(jìn)行評估,但是這樣做可能會減少用于訓(xùn)練的樣本數(shù)量。
而在這里,AdaNet的方法對目標(biāo)進(jìn)行優(yōu)化,平衡了集成框架在訓(xùn)練時的性能和它對陌生數(shù)據(jù)泛化之間的差別。核心思想就是,當(dāng)備選子網(wǎng)絡(luò)提高了集成的訓(xùn)練損失超過了其對泛化能力的影響時,子網(wǎng)絡(luò)才能加入到集成中去。這保證了:
集成的泛化錯誤由它的訓(xùn)練錯誤和復(fù)雜性所限制。
通過對目標(biāo)進(jìn)行優(yōu)化,我們可以直接對這一限制進(jìn)行最小化。
對這一目標(biāo)進(jìn)行優(yōu)化的實際好處就是,它無需再選擇哪個子網(wǎng)絡(luò)要被添加到集成中去,這也使得更多的訓(xùn)練數(shù)據(jù)可以用于訓(xùn)練更多子網(wǎng)絡(luò),成為了額外的好處。想了解更多,可以閱讀我們關(guān)于AdaNet的教程。
可擴(kuò)展
對研究者和從業(yè)者來說,讓AutoML框架產(chǎn)生作用的關(guān)鍵不僅僅是提供合理的默認(rèn)值,而且要讓用戶嘗試對他們自己的子網(wǎng)絡(luò)或模型進(jìn)行定義。機(jī)器學(xué)習(xí)研究者、從業(yè)者和愛好者都可以通過adanet.subnetwork.Builder來定義自己的AdaNet。
已經(jīng)在自己的系統(tǒng)中集成TensorFlow模型的用戶可以輕松將他們的TensorFlow代碼轉(zhuǎn)移到AdaNet子網(wǎng)絡(luò)中,并使用adanet.Estimator提高模型性能,同時保證學(xué)習(xí)成功率。AdaNet會找到他們所定義的子網(wǎng)絡(luò)搜索空間,學(xué)習(xí)如何集成子網(wǎng)絡(luò)。在谷歌官方博客中,研究人員取了一個開源的NASNet-A CIFAR架構(gòu),將它轉(zhuǎn)換成一個子網(wǎng)絡(luò),并在CIFAR-10上優(yōu)化,經(jīng)過八次AdaNet迭代后得到最佳結(jié)果。另外,我們的模型在更少的參數(shù)上也達(dá)到了相同結(jié)果:
用戶也可以用自己特殊的損失函數(shù)作為AdaNet目標(biāo)的一部分,從而訓(xùn)練回歸、分類和多任務(wù)學(xué)習(xí)等問題。
用戶還可以擴(kuò)展adanet.subnetwork.Generator的類別,完全定義候選子網(wǎng)絡(luò)的搜索空間。這可以讓他們基于自己的硬件設(shè)備增加或減少搜索空間。子網(wǎng)絡(luò)的搜索空間和復(fù)制有著相同配置不同隨機(jī)種子的子網(wǎng)絡(luò)一樣簡單,訓(xùn)練多個有著不同超參數(shù)組合的子網(wǎng)絡(luò),讓AdaNet選擇一個添加到最終的集成中。
如果你想試試AdaNet,可以查看谷歌的GitHub,其中包含了幾個利用密集圖層和卷積的例子。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4831瀏覽量
107263 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8546瀏覽量
136535
原文標(biāo)題:谷歌推出集成學(xué)習(xí)的有力工具AdaNet,靈活快速實現(xiàn)AutoML
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
谷歌深度學(xué)習(xí)插件tensorflow
Tensorflow量化缺少腳本/工具/文檔AWS Xilinx ML Suite(f1.2xlarge)
汽車輕量化采用3D打印
用TensorFlow將神經(jīng)網(wǎng)絡(luò)量化為8位
汽車輕量化技術(shù)
PACK輕量化設(shè)計介紹及電芯選擇
常見的輕量化材料的分類與汽車輕量化材料的應(yīng)用
低速電動車輕量化的作用和蘊含的技術(shù)分析
TensorFlow的框架結(jié)構(gòu)解析
谷歌推出了AdaNet,一個基于TensorFlow的輕量化框架
評論