日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一文讲解自动机器学习(AutoML)!

發布時間:2025/3/8 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一文讲解自动机器学习(AutoML)! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?Datawhale?

作者:瞿曉陽,AutoML書籍作者

寄語:讓計算機自己去學習和訓練規則,是否能達到更好的效果呢?自動機器學習就是答案,也就是所謂“AI的AI”,讓AI去學習AI。

隨著深度神經網絡的不斷發展,各種模型和新穎模塊的不斷發明利用,人們逐漸意識到開發一種新的神經網絡結構越來越費時費力,為什么不讓機器自己在不斷的學習過程中創造出新的神經網絡呢?

正是出于這個構思,2017年Google推出了AutoML,一個能自主設計深度神經網絡的AI網絡。

自此,人工智能又有了更進一步的發展,人們開始探索如何利用已有的機器學習知識和神經網絡框架來讓人工智能自主搭建適合業務場景的網絡,人工智能的另一扇大門被打開。

深度學習vs自動化深度學習

隨著深度神經網絡的廣泛應用和不斷發展,越來越強大的網絡模型被構建,從AlexNet,到VGGNet,GoogleNet以及ResNet。

雖然這些模型足夠靈活,但人工神經網絡結構仍然需要大量的專業知識并且需要充足的時間,而且調參對于深度模型來說也是一項非常痛苦的事情,眾多的超參數和網絡結構參數會產生爆炸性的組合。

是否有可能使這一過程自動化,讓每一個人,甚至是不了解機器學習的人可以輕松地將機器學習應用于所面臨的問題,自動化深度學習(AutoDL)就是答案。

如圖1所示,是現在的深度學習方法與自動化深度學習的對比圖,自動化深度學習的目標是通過超參數優化的方法讓機器學會自動設計網絡及調參優化。

圖1:傳統深度學習與AutoDL比較

什么是神經架構搜索(NAS)

神經架構搜索(NAS)是一種針對特定數據集從頭開始自動設計性能良好的模型的技術,NAS技術與超參數優化所解決的問題相同:在搜索空間中找到對目標任務表現良好的網絡結構。

NAS主要由三個基本問題組成,分別是搜索空間、優化方法、以及評估方法。

  • 搜索空間針對目標任務定義了一組可能的神經網絡結構。

  • 優化方法確定如何探索搜索空間以找到好的架構。

  • 評估方法評估通過優化方法考慮的每種網絡結構的性能。

由于神經網絡的結構和連接通常可以由可變長度的字符串指定,在實際問題中,根據特定數據集生成指定的“子網絡”,通過訓練得到驗證集的準確性。

圖2:NAS組件

搜索空間

如其名,就是可供搜索的一個網絡結構集合,它的數字表示為:

  • 網絡的結構(如:神經網絡的深度,即隱藏層個數,和特定的隱藏層寬度)

  • 配置(如:操作/網絡間的鏈接類型,核的大小,過濾器的數量)

因此,給定搜索空間,可以將其中的神經網絡結構編碼成該空間下的表示。這種搜索空間被稱為marco(宏)搜索空間。

好的搜索空間為好的搜索結果提供可能性,搜索空間的設計不斷發展,除了傳統的鏈式結構外,“多分支”結構也開始起著越來越重要的作用,啟發于ResNet和DenseNet提出的跳躍連接和密集連接,這些跳躍連接也已經被加入到搜索空間的定義中。

另一個趨勢是設計一個只包含一個基本單元(cell)搜索空間,被用作整個網絡中的block(如卷積塊)的構建。這類搜索空間被稱為micro(微)搜索空間,其中搜索成本和復雜性可以被顯著的降低。

除了減小搜索復雜度外,僅僅通過改變單元(cell)堆疊的數量,可以很容易地把找到的最好的block的設計推廣到其他任務。

搜索算法

搜索算法是一個迭代過程,用于確定以何種規則來探索搜索空間。

在搜索過程的每個步驟或迭代中,一個來自于搜索空間的樣本會被生成,即子網絡(child network)。所有的子網絡在訓練集上被訓練,在驗證集上的準確率作為目標被優化(或者是強化學習中的獎勵)。

搜索算法的目的是找到最佳子網絡,例如最小化驗證集損失或最大化獎勵。主流的NAS搜索策略大致可以分為強化學習、進化算法和可微分的梯度下降算法。

1. 基于強化學習的方法

強化學習有三個基本要素:智能體(Agent)、環境(Environment)和獎勵(Reward),智能體以 “試錯”的方式進行學習,通過與環境交互獲得獎勵來指導行為。智能體和環境之間的交互可以被視為順序決策過程:在每個時間t,Agent在動作集合中選擇動作與環境交互并接收獎勵。

圖3:?強化學習中智能體與環境的交互過程

神經架構自動搜索中,強化學習把架構的生成看成一個智能體(agent)在選擇動作(action)的過程,通過在測試集上測試網絡性能來獲取獎勵值(reward),從而指導架構的生成。

與傳統的強化學習問題略有不同的是構建了一個RNN控制器,通過迭代的方式來更新控制器從而生成合適的架構。

圖4:基于強化學習的網絡架構搜索示意圖

2. 基于進化算法的方法

基于進化算法的神經網絡結構搜索,在演化步驟中,把子模型作為種群來進化。群體中的每個模型都是訓練過的網絡,并被視為個體,模型在驗證集上的表現(例如,準確度)作為每個個體的質量好壞。基于進化算法神經架構搜索的通用流程如下:

  • 初始化操作,對現有的各個個體進行編碼,把這些個體編碼成種群。

  • 選擇操作,從種群中根據適應度挑選出優秀的個體。

  • 繁殖操作,分為兩種:有性繁殖操作和無性繁殖操作,無性繁殖的操作包括變異操作,有性繁殖包括交叉操作或者組合操作。

  • 網絡訓練操作,對上一步繁殖操作得到的所有個體神經網絡進行訓練,訓練到收斂為止。

  • 適應度計算操作,使用指定的驗證集對每個已訓練的網絡計算驗證準確率,把驗證準確率作為適應度。

具體流程如下圖所示:

圖5:? 基于進化算法的神經架構搜索通用流程

3. 基于可微分架構搜索的方法

可微分架構搜索方法很多種,其中比較出名的是卡內基梅隆大學提出的

DARTS(DifferentiableArchitecture Search)。

與傳統的在離散的和不可微的搜索空間尚采用進化或強化學習搜索結構的方法不同,該方法是基于將結構表示的松弛化(relaxation),允許使用梯度下降來解決架構搜索的問題,所以效率可以比之前不可微的方法快幾個數量級。

簡單來說就是給操作(operations)的每個連接都賦一個權值alpha,優化的目的是為了通過梯度下降優化alpha矩陣,根據alpha的大小來確定連接方式。

神經網絡原有的權重稱為矩陣,在訓練集上固定alpha矩陣的值,然后梯度下降矩陣的值,再驗證集上固定矩陣的值,然后梯度下降alpha的值,循環往復直到這兩個值都比較理想。

圖6:DARTS搜索空間

加速方案

無論是基于強化學習還是進化算法的搜索,子網絡都要被訓練和評估,以指導搜索過程。但是從頭開始訓練每個自網絡需要超大的資源和時間。所以NAS的加速方案被提出,主要代表方案是改進代理模型和權值共享。

1.?改進代理(Improve proxy)

很明顯代理模型的引入會帶有誤差,研究證明子網絡的FLOPs(每秒計算的浮點數)和模型大小與最終準確度呈負相關,因此引入了一種應用于獎勵計算的校正函數,通過早期停止獲得子網絡的精度,彌合代理與真實準確性之間的差距。

根據這一想法,研究者們提出了幾種通過“預測”神經架構的精度來改進代理度量的方法,預計精確度較差的子網絡將被暫停訓練或直接放棄。以下是三種預測神經架構搜索的方法:

  • 根據子網絡的學習曲線預測神經架構的精度。

  • 回歸模型。使用基于網絡設置和驗證曲線的特征來預測部分訓練模型的最終性能。

  • 訓練代理模型,基于progressively architectural properties預測子網絡的準確性。

2. 權值共享(Weight sharing)

在神經網絡的搜索和訓練過程中,涉及到很多權值和超參數,權值共享可以實現加速,在這里列舉幾個權值共享的經典方法:

  • 在進化過程中,允許子網絡繼承父本的權重,而不是從頭訓練每個子模型。使用One shot 模型實現共享。

  • 設計帶有輔助超網絡的“主”模型,以生成以模型架構為條件的主模型的權重。從超網絡代表的分布中采樣的權重。

  • 使用one-shot模型,主要有兩種方法:

    • 第一種是訓練表示各種候選結構的one-shot模型,然后使用預訓練的one-shot模型權重在驗證集上隨機評估這些候選結構。

    • 另一種是使用包含整個搜索空間的one-shot模型訓練所有權重,同時,使用梯度下降來優化候選結構的分布。

  • 通過網絡轉換/態射來探索搜索空間,它使用諸如插入層或添加跳過連接之類的操作將訓練好的神經網絡修改為新的結構。由于網絡轉換/態射從現有的訓練網絡開始,因此重用權重并且僅需為數不多的訓練迭代來完成新的結構的訓練。

圖7:one-shot結構圖,實現連接無法刪除而虛線連接可以刪除

神經網絡架構搜索的快速實現

使用開源的開源自動機器學習項目例如微軟的NNI和亞馬遜的AutoGluon可以快速實現常用NAS算法。下面簡單介紹使用AutoGluon在10分鐘內快速實現ENAS的過程:

1. 定義基礎Block結構

2. 定義ENAS單元結構

3. 定義超網絡

4. 構造ENAS_Scheduler開始訓練

5. 訓練結束可以查看搜索到的最佳結構

總結

傳統的人工智能旨在使用機器幫助人類完成特定的任務,隨著人工智能的發展,在計算機領域衍生出了機器學習,機器學習旨在通過計算機程序完成對數據的分析,從而得到對世界上某件事情的預測并做出決定。當機器學習不斷發展,其復雜程度也不斷增加,完全依靠人為對計算機進行規定,使其按照人為設定的規則運行時,耗費了大量的人力資源。

如果讓計算機自己去學習和訓練規則,是否能達到更好的效果呢?自動機器學習就是答案,也就是所謂“AI的AI”,讓AI去學習AI,從而減少人工的參與,讓機器完成更復雜的工作,掀起下一代人工智能的浪潮。

本文摘編自《深入理解AutoML和AutoDL》,經出版方授權發布。作為國內首本系統介紹AutoML的中文書籍,該書提供了大量AutoML和AutoDL的啟發性思路和理解角度,確實是一本AutoML入門的好書。

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)本站qq群1003271085,加入微信群請回復“加群”獲取一折本站知識星球優惠券,復制鏈接直接打開:https://t.zsxq.com/yFQV7am喜歡文章,點個在看

總結

以上是生活随笔為你收集整理的一文讲解自动机器学习(AutoML)!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。