偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

教你用Python實(shí)現(xiàn)AutoML

譯文
人工智能 機(jī)器學(xué)習(xí)
企業(yè)可以通過(guò)在其數(shù)據(jù)管道中部署 AutoML 來(lái)降低雇傭?qū)<业某杀尽utoML 還可以減少開發(fā)和測(cè)試機(jī)器學(xué)習(xí)模型所需的時(shí)間。

【51CTO.com快譯】我們已經(jīng)知道,機(jī)器學(xué)習(xí)是一種自動(dòng)解決復(fù)雜問(wèn)題的方法。但機(jī)器學(xué)習(xí)本身可以自動(dòng)化嗎?這是我們?cè)诒疚闹袑⑻接懙膬?nèi)容。讀完這篇文章時(shí),你將會(huì)知道這個(gè)問(wèn)題的答案,并且會(huì)掌握實(shí)現(xiàn) AutoML 的方法。

1. Automated Machine Learning(AutoML)

在應(yīng)用機(jī)器學(xué)習(xí)模型時(shí),我們通常會(huì)進(jìn)行數(shù)據(jù)預(yù)處理,特征工程,特征提取和特征選擇。在此之后,我們將選擇***算法并調(diào)整我們的參數(shù)以獲得***結(jié)果。AutoML 是一系列用于自動(dòng)化這些過(guò)程的概念和技術(shù)。

1.1. AutoML 的優(yōu)勢(shì)

將機(jī)器學(xué)習(xí)模型應(yīng)用于實(shí)際問(wèn)題通常需要很多計(jì)算機(jī)科學(xué)相關(guān)技能、領(lǐng)域?qū)I(yè)知識(shí)和數(shù)學(xué)專業(yè)知識(shí)。想找到擁有所有這些技能的專家并不總是一件容易的事情。

AutoML 還可以減少人類設(shè)計(jì)機(jī)器學(xué)習(xí)模型時(shí)出現(xiàn)的偏差和錯(cuò)誤。企業(yè)可以通過(guò)在其數(shù)據(jù)管道中應(yīng)用 AutoML 來(lái)降低雇傭許多專家的成本。AutoML 還可以減少開發(fā)和測(cè)試機(jī)器學(xué)習(xí)模型所需的時(shí)間。

1.2. AutoML 的缺點(diǎn)

AutoML 在機(jī)器學(xué)習(xí)領(lǐng)域是一個(gè)相當(dāng)新的概念。因此,在應(yīng)用一些當(dāng)前的 AutoML 解決方案時(shí)要謹(jǐn)慎行事,這 是因?yàn)槠渲幸恍┘夹g(shù)仍處于開發(fā)階段。

另一個(gè)主要的挑戰(zhàn)是運(yùn)行 AutoML 模型所需的時(shí)間成本很高。這實(shí)際上取決于我們機(jī)器的計(jì)算能力。我們很 快就會(huì)看到,一些 AutoML 解決方案在我們的本地機(jī)器上也可以很好地運(yùn)行,但有些解決方案還需要更多的加速優(yōu)化,例如 Google Colab。

2. AutoML 的概念

就 AutoML 而言,需要了解兩個(gè)主要概念:神經(jīng)架構(gòu)搜索(Neural Architecture Search)和遷移學(xué)習(xí)(Transfer Learning)。

2.1. 神經(jīng)架構(gòu)搜索(Neural Architecture Search)

神經(jīng)架構(gòu)搜索是自動(dòng)化設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)的過(guò)程。通常,在這些網(wǎng)絡(luò)的設(shè)計(jì)中會(huì)使用強(qiáng)化學(xué)習(xí)或進(jìn)化算法。在強(qiáng)化 學(xué)習(xí)中,模型因低準(zhǔn)確率而受到懲罰,并因高準(zhǔn)確率而獲得獎(jiǎng)勵(lì)。使用這種技術(shù),模型將始終努力獲得更高的 準(zhǔn)確率。

目前已經(jīng)有一些研究神經(jīng)架構(gòu)搜索的論文,例如用于可伸縮圖像識(shí)別的學(xué)習(xí)可遷移架構(gòu)(LearningTransferable Architectures),高效神經(jīng)架構(gòu)搜索(Efficient Neural Architecture Search,ENAS)和用于圖像分類器架構(gòu)搜 索的正則進(jìn)化(Regularized Evolution)模型。

2.2. 遷移學(xué)習(xí)

顧名思義,遷移學(xué)習(xí)是一種技術(shù),使得預(yù)先訓(xùn)練的模型可以將它學(xué)習(xí)過(guò)的知識(shí)遷移應(yīng)用在新的但相似的數(shù)據(jù) 集上。這使我們能夠用更少的計(jì)算時(shí)間和計(jì)算資源去獲得比較高的準(zhǔn)確率。神經(jīng)架構(gòu)搜索適用于需要設(shè)計(jì)新 模型架構(gòu)的問(wèn)題,而遷移學(xué)習(xí)最適用于數(shù)據(jù)集類似于預(yù)訓(xùn)練模型中使用的數(shù)據(jù)集的問(wèn)題。

3. AutoML 解決方案

現(xiàn)在讓我們來(lái)看看一些可用的 AutoML 的解決方案吧。

3.1. Auto-Keras

根據(jù)官方提供的資料:

Auto-Keras 是一個(gè)用于自動(dòng)化機(jī)器學(xué)習(xí)(AutoML)的開源軟件庫(kù)。 它由 Texas A & M 大學(xué)的 DATA 實(shí)驗(yàn)室和社區(qū)貢獻(xiàn)者開發(fā)。 AutoML 的最終目標(biāo)是為具有有限數(shù)據(jù)科學(xué)或機(jī)器學(xué)習(xí)背景的領(lǐng)域?qū)<姨峁┮子谏鲜值纳疃葘W(xué)習(xí)工具。 Auto-Keras 提供自動(dòng)搜索深度學(xué)習(xí)模型架構(gòu)和超參數(shù)的功能。

Auto-Keras 可以用 pip 命令安裝:

  1. pip install auto-keras 

Auto-Keras 在最終版發(fā)布之前仍在進(jìn)行***的測(cè)試。官方網(wǎng)站警告說(shuō),對(duì)于因使用該網(wǎng)站上的庫(kù)而導(dǎo)致的任何損失,他們不承擔(dān)任何責(zé)任。

該軟件包基于 Keras 深度學(xué)習(xí)軟件包。

3.2. Auto-Sklearn

Auto-Sklearn 是一款基于 Scikit-learn 的 AutoML 軟件包。它是 Scikit-learn estimator 的替代品。它也可以通過(guò)一個(gè)簡(jiǎn)單的 pip 命令安裝:

  1. pip install auto-sklearn 

在 Ubuntu 系統(tǒng)下,需要 C++ 11 構(gòu)建環(huán)境和 SWIG 配置環(huán)境才可以運(yùn)行 Auto-Sklearn。

sudo apt-get install build-essential swig

通過(guò) Anaconda 的安裝方式如下:

  1. conda install gxx_linux-64 gcc_linux-64 swig 

目前還無(wú)法在 Windows 上運(yùn)行 Auto-Sklearn。但是,可以嘗試一些黑科技,例如使用 docker 鏡像或通過(guò)虛擬機(jī)運(yùn)行。

3.3. The Tree-Based Pipeline Optimization Tool(TPOT)

根據(jù)官方網(wǎng)站資料:

TPOT 的目標(biāo)是通過(guò)將管道的靈活表達(dá)樹 (Flexible Expression Tree) 表示與諸如遺傳編程 (Genetic Programming) 的隨機(jī)搜索算法相結(jié)合來(lái)自動(dòng)化機(jī)器學(xué)習(xí)管道的構(gòu)建。 TPOT 使用基于 Python 的 scikit-learn 庫(kù)作為其機(jī)器學(xué)習(xí)基礎(chǔ)庫(kù)。

該軟件是開源的,可在GitHub上獲得。

3.4. 谷歌的 AutoML

官網(wǎng)對(duì)它介紹如下:

Cloud AutoML 是一套機(jī)器學(xué)習(xí)產(chǎn)品,通過(guò)利用 Google ***進(jìn)的遷移學(xué)習(xí)和神經(jīng)架構(gòu)搜索技術(shù),使具有有 限機(jī)器學(xué)習(xí)專業(yè)知識(shí)的開發(fā)人員能夠根據(jù)業(yè)務(wù)需求訓(xùn)練高質(zhì)量模型。

谷歌的 AutoML 解決方案不是開源的。它的價(jià)格可以在這里查看。

3.5. H2O

H2O 是一個(gè)開源的分布式內(nèi)存機(jī)器學(xué)習(xí)平臺(tái)。它有 R 和 Python 兩種版本。該軟件包支持眾多的統(tǒng)計(jì)和機(jī)器 學(xué)習(xí)算法。

4. 將 AutoML 應(yīng)用于實(shí)際問(wèn)題

現(xiàn)在讓我們看看應(yīng)該如何使用 Auto-Keras 和 Auto-Sklearn 來(lái)解決一個(gè)真正的問(wèn)題吧。

4.1. Auto-Keras 實(shí)現(xiàn)

我強(qiáng)烈建議在 Google Colabunless 上運(yùn)行以下代碼示例,除非您有一臺(tái)具有非常高計(jì)算能力的計(jì)算機(jī)。我也 建議在 Google Colab 上開啟 GPU runtime。 這里的***步是在 Colab 上安裝 Auto-Keras。

  1. !pip install autokeras 

我們將在 MNIST 數(shù)據(jù)集上運(yùn)行圖像分類任務(wù)。***步是導(dǎo)入該數(shù)據(jù)集和圖像分類器。數(shù)據(jù)集從 Keras 導(dǎo)入, 而圖像分類器從 Auto-Keras 導(dǎo)入。由于我們正在構(gòu)建一個(gè)基于預(yù)訓(xùn)練模型識(shí)別手寫數(shù)字的模型,因此我們將 其歸類為監(jiān)督學(xué)習(xí)問(wèn)題。然后,我們?cè)谖从龅降臄?shù)字圖像上測(cè)試模型的準(zhǔn)確率。 

  1. from keras.datasets 
  2. import mnist 
  3. from autokeras.image.image_supervised 
  4. import ImageClassifer 

在此示例中,圖像和標(biāo)簽已被格式化為 numpy 數(shù)組。下一步是將剛剛加載的數(shù)據(jù)分成訓(xùn)練集和測(cè)試集,如下所示: 

  1. (x_train, x_test), (x_test, y_test) = mnist.load_data() 
  2. x_train = x_train.reshape(x_train.shape + (1,)) 
  3. x_test = x_test.reshape(x_test.shape + (1,)) 

將數(shù)據(jù)分成訓(xùn)練集和測(cè)試集后,下一步就是擬合圖像分類器。 

  1. clf = ImageClassifer(verbose=True
  2. clf.fit(x_train, y_train, time_limit=12 * 60 * 60) 
  3. clf.final_fit(x_train, y_train, x_test, y_test, retrain=True
  4. y = clf.evaluate(x_test, y_test) 
  5. print(y) 

1. 將 verbose 指定為 True 意味著搜索過(guò)程將打印在屏幕上供我們查看。 2. 在 fit 方法中,time_limit 參數(shù)是指以秒為單位的搜索時(shí)間限制。 3. final_fit 是模型找到***模型架構(gòu)后進(jìn)行的***一次訓(xùn)練。將 retrain 參數(shù)指定為 True 意味著將重新初 始化模型的權(quán)重。 4. 在評(píng)估模型在測(cè)試集上的效果后,print(y) 將顯示模型準(zhǔn)確率。

這就是我們使用 Auto-Keras 對(duì)圖像進(jìn)行分類所需的全部步驟。只需要幾行代碼,Auto-Keras 就可以為我們 完成所有繁重的工作。

4.2. Auto-Sklearn 實(shí)現(xiàn)

Auto-Sklearn 的實(shí)現(xiàn)與上面的 Auto-Keras 實(shí)現(xiàn)非常相似。我們?cè)谝粋€(gè)數(shù)字?jǐn)?shù)據(jù)集上做類似的分類任務(wù)。首先, 我們需要導(dǎo)入一些庫(kù): 

  1. import autosklearn.classification  
  2. import sklearn.model_selection import sklearn.datasets import sklearn.metrics 

像往常一樣,我們加載數(shù)據(jù)集并將其劃分為訓(xùn)練集和測(cè)試集。然后我們從 autosklearn.classification 導(dǎo) 入 AutoSklearnClassifier。完成此操作后,我們讓分類器擬合數(shù)據(jù)集,然后進(jìn)行預(yù)測(cè)并檢查模型準(zhǔn)確率。這 就是所有你需要做的事情。 

  1. X, y = sklearn.datasets.load_digits(return_X_y=True
  2. X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, random_state=1) 
  3. automl = autosklearn.classification.AutoSklearnClassifier() 
  4. automl.fit(X_train, y_train) 
  5. y_hat = automl.predict(X_test) 
  6. print("Score of accuracy", sklearn.metrics.accuracy_score(y_test, y_hat)) 

5. What’s Next?

更多的自動(dòng)化機(jī)器學(xué)習(xí)包仍在活躍地開發(fā)中。我們希望 2019 年該領(lǐng)域會(huì)有更多的進(jìn)展。大家可以通過(guò)官方文 檔網(wǎng)站密切關(guān)注這些軟件包的進(jìn)展情況。當(dāng)然大家也可以在 GitHub 上通過(guò) pull request 來(lái)為這些包做出貢獻(xiàn)。

有關(guān) Auto-Keras 和 Auto-Sklearncan 的更多信息和示例,請(qǐng)?jiān)L問(wèn)其官方網(wǎng)站。 

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來(lái)源: 51CTO
相關(guān)推薦

2021-05-18 14:42:55

PythonMySQL

2015-03-23 12:33:28

2015-04-22 11:29:45

PythonPython創(chuàng)建瀑布圖

2021-12-11 20:20:19

Python算法線性

2023-08-03 08:51:07

2020-04-09 09:52:42

Python數(shù)據(jù)技術(shù)

2021-08-09 13:31:25

PythonExcel代碼

2021-12-26 18:32:26

Python Heic 文件

2021-03-23 09:05:52

PythonExcelVlookup

2018-02-25 11:39:36

Python監(jiān)督學(xué)習(xí)算法

2021-02-10 09:34:40

Python文件的壓縮PyCharm

2014-07-22 10:19:19

NeoBundle

2017-07-19 10:22:07

2022-02-18 10:34:19

邏輯回歸KNN預(yù)測(cè)

2018-12-29 09:38:16

Python人臉檢測(cè)

2021-04-01 09:02:38

Python小說(shuō)下載網(wǎng)絡(luò)爬蟲

2019-09-05 10:07:23

ZAODeepfakes換臉

2023-10-27 11:38:09

PythonWord

2017-10-27 10:29:35

人臉識(shí)別UbuntuPython

2018-05-14 10:43:53

平衡數(shù)據(jù)數(shù)據(jù)分析Python
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)