小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

行業(yè)前沿:AutoML會(huì)成為機(jī)器學(xué)習(xí)世界的主流嗎?

 flyk0tcfb46p9f 2019-02-24

自動(dòng)化機(jī)器學(xué)習(xí)(AutoML)如今已經(jīng)成為一個(gè)相當(dāng)有趣且重要的話(huà)題。本文將對(duì)AutoML做一個(gè)簡(jiǎn)要的解釋?zhuān)撟C它的合理性和可用性,介紹幾個(gè)關(guān)于A(yíng)utoML的現(xiàn)代工具,并討論AutoML的未來(lái)和方向。

什么是自動(dòng)化機(jī)器學(xué)習(xí)?

自動(dòng)化機(jī)器學(xué)習(xí)并不是自動(dòng)化數(shù)據(jù)科學(xué)。雖然兩者存在重疊,但是機(jī)器學(xué)習(xí)只是數(shù)據(jù)科學(xué)工具包中眾多工具之一,它的使用實(shí)際上并沒(méi)有考慮到所有數(shù)據(jù)科學(xué)任務(wù)。例如,如果預(yù)測(cè)是數(shù)據(jù)科學(xué)任務(wù)的一部分,那么機(jī)器學(xué)習(xí)將是一個(gè)有用的組件;但是,機(jī)器學(xué)習(xí)可能根本不適用于描述性分析任務(wù)。

即使對(duì)于預(yù)測(cè)性任務(wù),數(shù)據(jù)科學(xué)也比實(shí)際的預(yù)測(cè)性建模包含更多的內(nèi)容。數(shù)據(jù)科學(xué)家Sandro Saita在討論AutoML和自動(dòng)化數(shù)據(jù)科學(xué)之間的潛在混淆時(shí),曾說(shuō)過(guò):

這種誤解來(lái)自于整個(gè)數(shù)據(jù)科學(xué)過(guò)程(例如CRISP-DM)與數(shù)據(jù)準(zhǔn)備(特征提取等)子任務(wù)以及建模(算法選擇、超參數(shù)調(diào)整等)之間的混淆,我稱(chēng)之為機(jī)器學(xué)習(xí)…以及我稱(chēng)之為機(jī)器學(xué)習(xí)的建模(算法選擇、超參數(shù)調(diào)整等)之間的混淆。當(dāng)你閱讀有關(guān)自動(dòng)化數(shù)據(jù)科學(xué)和數(shù)據(jù)科學(xué)競(jìng)賽工具的新聞時(shí),沒(méi)有行業(yè)經(jīng)驗(yàn)的人可能會(huì)感到困惑,認(rèn)為數(shù)據(jù)科學(xué)只是建模,可以完全自動(dòng)化。

此外,數(shù)據(jù)科學(xué)家和自動(dòng)化機(jī)器學(xué)習(xí)的領(lǐng)先擁護(hù)者Randy Olson指出,有效的機(jī)器學(xué)習(xí)設(shè)計(jì)要求我們:

· 不斷地調(diào)整模型的超參數(shù)

· 不斷地嘗試多種模型

· 不斷地為數(shù)據(jù)探索特征表示法

考慮到以上所有因素,如果我們把AutoML看作是算法選擇、超參數(shù)調(diào)整、迭代建模和模型評(píng)估的任務(wù),我們就可以定義AutoML是什么,但不會(huì)有完全一致的意見(jiàn),不過(guò),這足以讓我們順利地開(kāi)始進(jìn)行下一步工作了。

為什么需要它?

雖然我們已經(jīng)完成了定義概念的工作,但AutoML有什么作用呢?讓我們來(lái)看看為什么機(jī)器學(xué)習(xí)很困難。

人工智能研究員和斯坦福大學(xué)在讀博士S.ZaydEnam在一篇題為“為什么機(jī)器學(xué)習(xí)很難”的博客文章中寫(xiě)道:

機(jī)器學(xué)習(xí)仍然比較難。毫無(wú)疑問(wèn),通過(guò)研究推進(jìn)機(jī)器學(xué)習(xí)算法的科學(xué)是困難的。它需要?jiǎng)?chuàng)造性、實(shí)驗(yàn)性和韌性。即便為新的應(yīng)用程序良好運(yùn)行實(shí)現(xiàn)了現(xiàn)有的算法和模型,機(jī)器學(xué)習(xí)仍然是一個(gè)難題。

注意,雖然Enam主要指的是機(jī)器學(xué)習(xí)研究,但也涉及到用例中現(xiàn)有算法的實(shí)現(xiàn)。

Enam繼續(xù)闡述機(jī)器學(xué)習(xí)的困難,并重點(diǎn)介紹算法的性質(zhì):這個(gè)困難的一個(gè)方面涉及到建立一種直覺(jué),能夠正確選擇優(yōu)先使用哪種工具來(lái)解決問(wèn)題。這需要了解可用的算法和模型,以及每個(gè)算法和模型的權(quán)衡和約束?!щy在于機(jī)器學(xué)習(xí)是一個(gè)基本上很難調(diào)試的問(wèn)題。在兩種情況下會(huì)進(jìn)行機(jī)器調(diào)試:1)算法不起作用,2)算法工作得不好。……很少有一算法一次就起作用的,因此大多數(shù)時(shí)間都花在構(gòu)建算法上。

然后,Enam從算法研究的角度對(duì)這個(gè)框架問(wèn)題進(jìn)行了詳細(xì)的闡述。如果一個(gè)算法不起作用,或者做得不夠好,并且選擇和重新編譯的過(guò)程是迭代的,這就可以使用自動(dòng)化,因此可以使用自動(dòng)化機(jī)器學(xué)習(xí)。

之前曾有人試圖捕捉AutoML的本質(zhì),如下所示:

如果,正如Sebastian Raschka所描述的那樣,計(jì)算機(jī)編程是關(guān)于自動(dòng)化的,而機(jī)器學(xué)習(xí)是關(guān)于自動(dòng)化的,那么自動(dòng)化機(jī)器學(xué)習(xí)就是“自動(dòng)化自動(dòng)化自動(dòng)化的自動(dòng)化”。這里:編程通過(guò)管理死記硬背的任務(wù)來(lái)減輕我們的負(fù)擔(dān);機(jī)器學(xué)習(xí)允許計(jì)算機(jī)學(xué)習(xí)如何最好地執(zhí)行任務(wù)。自動(dòng)化機(jī)器學(xué)習(xí)允許計(jì)算機(jī)學(xué)習(xí)如何優(yōu)化學(xué)習(xí)如何執(zhí)行這些死記硬背的操作結(jié)果。這是一個(gè)非常強(qiáng)大的想法;雖然我們以前需要擔(dān)心參數(shù)和超參數(shù)的調(diào)整,但是自動(dòng)化機(jī)器學(xué)習(xí)系統(tǒng)可以通過(guò)多種不同的可能方法來(lái)學(xué)習(xí)優(yōu)化這些參數(shù)和超參數(shù)的最佳方法。

AutoML的基本原理源于這樣一個(gè)想法:如果必須使用各種算法和許多不同的超參數(shù)配置來(lái)構(gòu)建機(jī)器學(xué)習(xí)模型,那么這個(gè)模型構(gòu)建可以自動(dòng)化,模型性能和精度的比較也可以自動(dòng)化。

很簡(jiǎn)單,對(duì)吧?

比較不同的自動(dòng)化機(jī)器學(xué)習(xí)工具

既然我們了解了什么是AutoML,以及它的作用,我們?nèi)绾螌?shí)現(xiàn)呢?下面是一些當(dāng)代Python AutoML工具的概述和比較,這些工具采用不同的方法,試圖實(shí)現(xiàn)與機(jī)器學(xué)習(xí)過(guò)程自動(dòng)化相同的目標(biāo)。

Auto-sklearn

Auto sklearn是“一個(gè)自動(dòng)化機(jī)器學(xué)習(xí)工具包和一個(gè)scikit-learn評(píng)估工具的替代品”,它也恰好是kdruggets最近的自動(dòng)化數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)博客競(jìng)賽的贏(yíng)家。

auto-sklearn使機(jī)器學(xué)習(xí)用戶(hù)從算法選擇和超參數(shù)調(diào)整中解放出來(lái)。它利用了貝葉斯優(yōu)化、元學(xué)習(xí)和集成構(gòu)造的最新優(yōu)勢(shì)。

正如上述,auto-sklearn通過(guò)貝葉斯優(yōu)化來(lái)執(zhí)行超參數(shù)優(yōu)化,然后重復(fù)以下步驟:

· 建立概率模型,以捕捉超參數(shù)設(shè)置與其性能之間的關(guān)系。

· 使用該模型選擇有用的超參數(shù)設(shè)置,然后通過(guò)權(quán)衡勘探(在模型不確定的部分空間中搜索)和開(kāi)發(fā)(聚焦于預(yù)計(jì)性能良好的部分空間)來(lái)嘗試下一步。

· 使用這些超參數(shù)設(shè)置運(yùn)行機(jī)器學(xué)習(xí)算法。

對(duì)該過(guò)程的進(jìn)一步解釋如下:

這一過(guò)程可以概括為聯(lián)合選擇算法、預(yù)處理方法及其超參數(shù):分類(lèi)器/回歸器和預(yù)處理方法的選擇是頂級(jí)的、分類(lèi)的超參數(shù),并且根據(jù)它們的設(shè)置,所選方法的超參數(shù)變靈活。然后,可以使用處理這種高維條件空間的貝葉斯優(yōu)化方法搜索組合空間;使用基于隨機(jī)森林的SMAC,這已被證明對(duì)這種情況最有效。

就實(shí)用性而言,由于A(yíng)uto-sklearn是scikit-learn估算器的替代品,因此需要使用scikit learn的功能性安裝。Auto-sklearn還支持通過(guò)共享文件系統(tǒng)上的數(shù)據(jù)共享來(lái)并行執(zhí)行,并且可以利用Scikit-Learn的模型持久性。根據(jù)作者的觀(guān)點(diǎn),有效地使用Auto-sklearn替換估計(jì)量需要以下4行代碼,以便獲得機(jī)器學(xué)習(xí)pipeline:

import autosklearn.classification

cls = autosklearn.classification.AutoSklearnClassifier()

cls.fit(X_train, y_train)

y_hat = cls.predict(X_test)

使用mnist數(shù)據(jù)集的auto sklearn的更穩(wěn)定示例如下:

import autosklearn.classificationimport sklearn.cross_validationimport sklearn.datasetsimport sklearn.metrics

digits = sklearn.datasets.load_digits()

X = digits.data

y = digits.target

X_train, X_test, y_train, y_test = sklearn.cross_validation.train_test_split(X, y, random_state=1)

automl = autosklearn.classification.AutoSklearnClassifier()

automl.fit(X_train, y_train)

y_hat = automl.predict(X_test)

print('Accuracy score', sklearn.metrics.accuracy_score(y_test, y_hat))

另外值得注意的是,Auto Sklearn贏(yíng)得了Chalearn AutoML挑戰(zhàn)賽的Auto和Tweakaton賽道。Auto-sklearn可在其官方Github存儲(chǔ)庫(kù)(https://github.com/automl/auto-sklearn)中獲得。

TPOT

TPOT被“推銷(xiāo)”為“你的數(shù)據(jù)科學(xué)助手”(請(qǐng)注意,它不是“你的數(shù)據(jù)科學(xué)替代品”)。它是一個(gè)python工具,“使用基因編程自動(dòng)創(chuàng)建和優(yōu)化機(jī)器學(xué)習(xí)pipeline”。TPOT和auto-sklearn一樣,與scikit-learn一起工作,將自己描述為scikit-learn包裝器。

正如本文前面所提到的,2個(gè)突出顯示的項(xiàng)目使用不同的方法來(lái)實(shí)現(xiàn)類(lèi)似的目標(biāo)。雖然這兩個(gè)項(xiàng)目都是開(kāi)源的,用python編寫(xiě),旨在通過(guò)AutoML簡(jiǎn)化機(jī)器學(xué)習(xí)過(guò)程,但與使用貝葉斯優(yōu)化的auto-sklearn相比,TPOT的方法是基于遺傳編程的。

然而,雖然方法不同,但結(jié)果是相同的:自動(dòng)超參數(shù)選擇,用各種算法建模,以及探索許多特征表示,都會(huì)實(shí)現(xiàn)迭代模型構(gòu)建和模型評(píng)估。

TPOT的一個(gè)好處是,它以scikit學(xué)習(xí)pipeline的形式,為性能最佳的模型生成可運(yùn)行的獨(dú)立python代碼。然后,可以修改或檢查該代碼,以獲得更多的洞察力,從而有效地充當(dāng)起點(diǎn),而不是僅僅作為最終產(chǎn)品。

TPOT在MNIST數(shù)據(jù)上運(yùn)行的示例如下:

from tpot import TPOTClassifierfrom sklearn.datasets import load_digitsfrom sklearn.model_selection import train_test_split

digits = load_digits()

X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, train_size=0.75, test_size=0.25)

tpot = TPOTClassifier(generations=5, population_size=20, verbosity=2)

tpot.fit(X_train, y_train)

print(tpot.score(X_test, y_test))

tpot.export('tpot-mnist-pipeline.py')

本次運(yùn)行的結(jié)果是一條達(dá)到98%測(cè)試精度的pipeline,同時(shí)將所述pipeline的python代碼導(dǎo)出到tpot-mnist-pipeline.py文件,如下所示:

import numpy as np

from sklearn.model_selection import train_test_splitfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.pipeline import make_pipeline

# NOTE: Make sure that the class is labeled 'class' in the data file

tpot_data = np.recfromcsv('PATH/TO/DATA/FILE', delimiter='COLUMN_SEPARATOR')

features = tpot_data.view((np.float64, len(tpot_data.dtype.names)))

features = np.delete(features, tpot_data.dtype.names.index('class'), axis=1)

training_features, testing_features, training_classes, testing_classes = train_test_split(features, tpot_data['class'], random_state=42)

exported_pipeline = make_pipeline(

KNeighborsClassifier(n_neighbors=3, weights='uniform'))

exported_pipeline.fit(training_features, training_classes)

results = exported_pipeline.predict(testing_features)

TPOT可以通過(guò)其官方Github報(bào)告獲得。

當(dāng)然,以上不是唯一可用的AutoML工具。還有Hyperopt(Hyperopt- sklearn)、Auto-WEKA和Spearmint。可以預(yù)計(jì)的是,在接下來(lái)的幾年里,會(huì)有許多其他的項(xiàng)目產(chǎn)生,包括研究和專(zhuān)于工業(yè)的項(xiàng)目。

自動(dòng)化機(jī)器學(xué)習(xí)的未來(lái)

AutoML從此去向何方?

自動(dòng)化機(jī)器學(xué)習(xí)就其本身而言將會(huì)漸漸地變得十分重要。對(duì)局外人來(lái)說(shuō),自動(dòng)化機(jī)器學(xué)習(xí)可能不像深度神經(jīng)網(wǎng)絡(luò)那么性感,它將開(kāi)始在ML、AI和數(shù)據(jù)科學(xué)領(lǐng)域產(chǎn)生深遠(yuǎn)的影響。

Randy Olson在最近的一次采訪(fǎng)中詳細(xì)地提到了以下幾點(diǎn):

在不久的將來(lái),自動(dòng)機(jī)器學(xué)習(xí)(automl)會(huì)替代機(jī)器學(xué)習(xí)模型構(gòu)建過(guò)程:一旦數(shù)據(jù)集采用(相對(duì))干凈的格式,AutoMlL系統(tǒng)將能夠設(shè)計(jì)和優(yōu)化機(jī)器學(xué)習(xí)pipeline,速度超過(guò)99%的人。……然而,我可以自信地預(yù)測(cè)AutoML系統(tǒng)將成為機(jī)器學(xué)習(xí)世界的主流……

但是AutoML能否取代數(shù)據(jù)庫(kù)科學(xué)家?Randy繼續(xù)說(shuō)到:

我不認(rèn)為AutoML的目的是取代數(shù)據(jù)科學(xué)家,就像智能代碼自動(dòng)完成工具而不會(huì)取代計(jì)算機(jī)程序員一樣。相反,對(duì)我來(lái)說(shuō),automl的目的是讓數(shù)據(jù)科學(xué)家從重復(fù)和耗時(shí)的任務(wù)(例如,機(jī)器學(xué)習(xí)ppipeline設(shè)計(jì)和超參數(shù)優(yōu)化)中解脫出來(lái),這樣他們就可以更好地將時(shí)間花在更難自動(dòng)化的任務(wù)上。

他的觀(guān)點(diǎn)得到了Auto-sklearn開(kāi)發(fā)者的認(rèn)同:

自動(dòng)化機(jī)器學(xué)習(xí)的所有方法都是為了支持?jǐn)?shù)據(jù)科學(xué)家而不是代替他們。這樣的方法可以使數(shù)據(jù)科學(xué)家擺脫那些機(jī)器更好地解決棘手而復(fù)雜的任務(wù)(如超參數(shù)優(yōu)化)。但是分析和得出結(jié)論仍然需要由人類(lèi)專(zhuān)家來(lái)完成——特別是那些了解應(yīng)用領(lǐng)域的數(shù)據(jù)科學(xué)家仍然非常重要。

所以這聽(tīng)起來(lái)很令人鼓舞:數(shù)據(jù)科學(xué)家不會(huì)被取代,且AutoML可以幫助完成工作。這并不是說(shuō)AutoML已經(jīng)完善了。當(dāng)被問(wèn)及是否可以做出任何改進(jìn)時(shí),Auto-sklearn小組說(shuō):

雖然有幾種方法可以調(diào)整機(jī)器學(xué)習(xí)pipeline的超參數(shù),但到目前為止,關(guān)于新的pipeline構(gòu)建塊方面的工作很少。自動(dòng)sklearn以固定順序使用一組預(yù)定義的預(yù)處理器和分類(lèi)器。用有效的方法來(lái)設(shè)計(jì)新的pipeline是有益的。當(dāng)然,我們可以繼續(xù)這一思路,并嘗試像最近幾篇論文中所做的那樣自動(dòng)發(fā)現(xiàn)新算法,例如通過(guò)梯度下降來(lái)學(xué)習(xí)梯度下降。

AutoML的未來(lái)究竟是什么?很難確定。然而,毫無(wú)疑問(wèn),它正在走向某個(gè)地方,而且速度可能很快。雖然自動(dòng)化機(jī)器學(xué)習(xí)的概念可能不是所有數(shù)據(jù)科學(xué)家目前都熟悉,但現(xiàn)在似乎是深入了解的好時(shí)機(jī)。畢竟,如果你能更早就開(kāi)始了解AutoML的好處,并在技術(shù)浪潮中乘風(fēng)破浪,你不僅要在不確定的未來(lái)努力確保你的工作,你還要學(xué)習(xí)如何利用同樣的技術(shù)來(lái)幫助你現(xiàn)在更好地完成工作。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多