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