谷歌宣佈開源AdaNet!

格伯納發表於2018-11-02

整合學習是結合不同機器學習(ML)模型預測的藝術,廣泛用於神經網路以實現最先進的效能,受益於豐富的歷史和理論保證,以便在諸如Netflix和各種Kaggle比賽等挑戰中取得成功,獲得獎品。然而,由於訓練時間長,它們在實踐中使用不多,而且ML模型候選者選擇需要其自己的領域專業知識。但隨著計算能力和專用深度學習硬體(如TPU)變得更容易獲得,機器學習模型將變得更大,系統整合將變得更加突出。現在,想象一個工具可以自動搜尋神經架構,並學會將最好的架構組合成一個高質量的模型。

今天,我們很高興能夠分享AdaNet,這是一個基於TensorFlow的輕量級框架,可以通過最少的專家干預自動學習高質量的模型。AdaNet以我們最近的強化學習和基於進化的AutoML努力為基礎,在提供學習保證的同時快速靈活。重要的是,AdaNet提供了一個通用框架,不僅可以學習神經網路架構,還可以學習整合以獲得更好的模型。

AdaNet易於使用,並且可以建立高質量的模型,為ML從業者節省了通常用於選擇最佳神經網路架構的時間,實現了將神經架構學習為子網集合的自適應演算法。AdaNet能夠新增不同深度和寬度的子網,以建立多樣化的集合,並通過引數數量來改善效能。

谷歌宣佈開源AdaNet!

AdaNet自適應地增長了神經網路的集合。在每次迭代中,它測量每個候選者的集合損失,並選擇最佳的一個

快速且容易使用

AdaNet實現了TensorFlow Estimator介面,通過封裝訓練、評估、預測和服務匯出,大大簡化了機器學習程式設計。它整合了開源工具,如TensorFlow Hub模組、TensorFlow模型分析和Google Cloud的Hyperparameter Tuner。分散式訓練支援可顯著縮短訓練時間,並可與可用的CPU和加速器(例如GPU)進行線性擴充套件。

谷歌宣佈開源AdaNet!


AdaNet在CIFAR-100上每列車步(X軸)的精度(y軸)。藍線是訓練集上的準確度,紅線是測試集上的效能。一個新的子網路開始訓練每一百萬個步驟,並最終提高整體的效能。在新增新子網之前,灰線和綠線是整體的精確度。

由於TensorBoard是用於在訓練期間視覺化模型度量的最佳TensorFlow功能之一,因此AdaNet可與其無縫整合,以監控子網路訓練、集合組合和效能。當AdaNet完成訓練後,它會匯出一個可以使用TensorFlow服務部署的SavedModel。

學習保證

構建神經網路集合有幾個挑戰:要考慮的最佳子網架構是什麼?是否最好重用相同的架構或鼓勵多樣性?雖然具有更多引數的複雜子網將傾向於在訓練集上表現更好,但由於其更大的複雜性,它們可能不會推廣到看不見的資料。這些挑戰源於評估模型效能。我們可以評估來自訓練集的保持集分割的效能,但這樣做會減少可用於訓練神經網路的示例數量。

相反,AdaNet的方法(在ICML 2017中的“AdaNet:人工神經網路的自適應結構學習”中提出)是為了優化平衡集合在訓練集上的表現與其推廣到看不見的資料的能力之間的權衡的目標。直覺是指整體只有當它改善整體訓練損失而不是影響其概括能力時才包括候選子網。這保證了:

集合的泛化誤差受其訓練誤差和複雜性的限制。

通過優化此目標,我們直接最小化此限制。

優化此目標的一個實際好處是,它不需要保留集來選擇要新增到集合中的候選子網。這樣做的另一個好處是可以使用更多的訓練資料來訓練子網。要了解更多資訊,請瀏覽有關AdaNet目標的教程。

(https://github.com/tensorflow/adanet/blob/v0.1.0/adanet/examples/tutorials/adanet_objective.ipynb)

可擴充套件

我們認為,為研究和生產使用提供有用的AutoML框架的關鍵是不僅要提供合理的預設值,還要允許使用者嘗試自己的子網/模型定義。因此,機器學習研究人員,從業者和愛好者被邀請使用高階TensorFlow API(如tf.layers)定義他們自己的AdaNet adanet.subnetwork.Builder。

已經在其系統中整合了TensorFlow模型的使用者可以輕鬆地將他們的TensorFlow程式碼轉換為AdaNet子網,並使用adanet.Estimator提高模型效能,同時獲得學習保證。AdaNet將探索他們定義的候選子網的搜尋空間,並學習整合子網。例如,我們採用了NASNet-A CIFAR架構的開源實現,將其轉換為子網,並在八次AdaNet迭代後對CIFAR-10最先進的結果進行了改進。此外,我們的模型使用更少的引數實現了這個結果:

谷歌宣佈開源AdaNet!


2018年Zoph等人提出的NASNet-A模型與AdaNet學習在CIFAR-10上結合NASNet-A子網路的效能。

還邀請使用者將自己的自定義損失功能用作AdaNet目標的一部分,以便訓練迴歸、分類和多工學習問題。

使用者還可以通過擴充套件adanet.subnetwork.Generator類來完全定義要探索的候選子網的搜尋空間。這允許他們根據可用硬體增加或減少搜尋空間。子網的搜尋空間可以簡單到使用不同的隨機種子複製相同的子網配置,訓練具有不同超引數組合的數十個子網,並讓AdaNet選擇包含在最終集合中的子網。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31509949/viewspace-2218477/,如需轉載,請註明出處,否則將追究法律責任。

相關文章