免費GPU!平民玩家的機器學習春天來了

2019年09月19日04:45:10 科技 1440

近年來,數據科學呈現出了兩個明顯的趨勢:

1.越來越多的數據分析和模型訓練通過雲計算完成

2.機器學習工作流水線(英文名稱為pipeline)自身正在通過算法進行優化

使用Google Colab進行雲計算

如今,幾乎每個人都擁有自己的計算機。但筆記本電腦和台式電腦一般只適用於日常性的工作。而如今機器學習要處理的數據集越來越大,對算力的要求也越來越高,利用雲計算進行機器學習幾乎是普通用戶的不二選擇。

在本文,我們將用雲上的Jupyter Notebook來運行一個簡單的數據工作流程。使用的是Google最新的黑科技Google Colab——一個免費在線的Jupyter Notebooks(目前只有Python內核)。這個產品的出現意味着無論你身處哪裡,個人電腦是否帶在身邊,只要能聯網,就可以跑自己的機器學習模型。Google的虛擬機上已經配置好了大部分你所需要的數據科學庫,無需配置環境就可以直接使用,而且還可以免費使用一個NVIDIA Tesla K80 GPU!!!

要使用Colab,你只需要能夠聯網(國內的同學需要科學上網)以及一個Google賬號。事不宜遲,趕緊跟隨我一起來探索Google Colab吧。這篇文章對應的notebook在這裡:https://colab.research.google.com/drive/1CIVn-GoOyY3H2_Bv8z09mkNRokQ9jlJ-

複製到Chrome瀏覽器,直接打開,需要登錄Google賬號。打開之後的界面是下面這樣的,點擊文件>在雲端硬盤中保存一份副本。然後你就可以在自己的Drive上打開這個文件進行編輯和運行。

免費GPU!平民玩家的機器學習春天來了 - 天天要聞

可以說,Google Colab明顯降低了利用雲計算的門檻。不難想象,類似的在線資源在日後將會越來越容易獲得。對於已經在本地電腦用過Jupyter Notebooks的同學來說,這是一個向雲計算過渡的好機會。

適用TPOT進行機器學習自動化

接下來,向同學們介紹另外一樣神器——機器學習自動化(縮寫為Auto-ml)。它能夠通過算法為特定的問題設計和優化機器學習工作流水線。在本文中,機器學習流水線包括以下幾個步驟:

1.特徵預處理: 填充缺失值,縮放,構建新的特徵

2.特徵選擇:降維

3.模型選擇:對多個模型進行評估

4.調參:找到最佳的模型超參數設置

對以上的四個步驟進行組合你可以得到幾乎無限多種流水線,而每個問題的最佳解決方式都不一樣。設計一個機器學習流水線是一個非常消耗時間以及容易踩坑的過程,所以我們一般無法遍歷所有流水線,也就是說你永遠不知道你設計出來的流水線是不是最優的。這個時候,機器學習自動化出現了,它可以幫助你評估成千上萬種可能的流水線的表現,自動找出最優的(或接近最優的)解決方案。

機器學習只是數據科學的一部分,機器學習自動化並不意味着可以替代數據科學家。相反,機器學習自動化可以解放數據科學家的雙手,讓他們可以專註於更有價值的部分,比如數據收集、模型解釋等等

目前已經有許多機器學習自動化的工具——H20、auto-sklearn、Google Cloud AutoML以及接下來我要重點介紹的TPOT(Tree-based Pipeline Optimization Tool,樹型流水線優化工具)。TPOT主要是基於遺傳算法的原理來尋找最佳的機器學習流水線。

免費GPU!平民玩家的機器學習春天來了 - 天天要聞

遺傳算法對於建立機器學習模型的主要好處就是深度的探索。對於人來說,即使沒有時間的限制,也無法嘗試完所有的預處理、模型、超參數的組合,畢竟個人的知識和想象力是有限的。而遺傳算法對於任何機器學習流水線都不會有初始的偏見(人類可能會根據自己的經驗,產生一些偏見),每一條流水線都會被客觀地評估。此外,遺傳算法中的適應度函數使得流水線探索空間中,最有潛力的組合區域比表現差的區域探索地更為徹底,這也是遺傳算法的一大優勢。

兩者相結合:雲上的機器學習自動化

來來來,這個實現其實很簡單!有了前面所述的背景,我們就可以愉快地在Google Colab上使用TPOT來實現機器學習的自動化。

我們接下來嘗試去解決一個監督回歸的問題 : 通過紐約市的能源數據,我們希望預測出建築物的能源星級。筆者曾經手動地進行特徵工程、降維、模型篩選、調參,最後訓練出了一個Gradient Boosting 回歸模型,在測試集上的平均絕對誤差是9.06。讓我們來看看自動化後得到的模型性能如何?

數據集包含了幾十個連續型數值變量(比如建築的能源使用量和建築面積)以及兩個獨熱編碼的分類變量(地區名與建築類型),總計有82個特徵。

首先,我們需要確定在Google Colab的環境裡面是否已經安裝了TPOT。一般來說,大多數的數據科學包都已經安裝好了,如果要添加新的包,可以使用如下的命令(記得在前面加“!”):

免費GPU!平民玩家的機器學習春天來了 - 天天要聞

在讀取數據後,我們通常會填充缺失的值以及將特徵歸一化。好消息是,除了前面所述的特徵工程、模型選擇、調參,TPOT還會自動填充缺失值和進行特徵縮放!所以,我們下一步只需要創建TPOT優化器就可以了。

免費GPU!平民玩家的機器學習春天來了 - 天天要聞

使用默認參數,TPOT優化器會創建100個流水線,每個流水線演化100代,得出這1萬個流水線的評分。使用十折交叉驗證,這意味着將有10萬次訓練要跑!即使我們使用的是Google的計算資源,但還是會有時間限制的。為了避免超出Colab服務器的使用時限(Google只允許12個小時的連續運行時間),我們將設置TPOT的運行時間最大為8小時,儘管TPOT的一般運行時間是幾天,但是通過幾個小時的優化,我們仍然能得到不錯的模型。

我們將設置如下的參數:

● scoring = neg_mean_absolute error : 回歸表現的評估指標

● max_time_minutes = 480: 限制運行時間為8小時

● n_jobs = -1: 使用計算機上的所有可用核心

● verbosity = 2: 訓練時顯示有限的信息

● cv = 5: 使用5折交叉驗證(默認值為10)

當然,還有其他的參數可以設置,但是它們保留默認值也適用於大多數情況,在這裡就不再另外設置。

TPOT優化器的語法設計與Scikit-Learn模型相同,因此我們可以使用.fit方法訓練優化器。

免費GPU!平民玩家的機器學習春天來了 - 天天要聞

在訓練過程中,我們獲得了如下的信息:

免費GPU!平民玩家的機器學習春天來了 - 天天要聞

由於時間限制,每個流水線只能演化15代,這意味着我們評估了1500個不同的獨立流水線的得分,已經比我們手動嘗試要多得多了!

一旦模型訓練好了,我們可以通過 tpot.fitted_pipeline_ 查看最優的流水線。我們還可以將模型保存到一個Python腳本中:

免費GPU!平民玩家的機器學習春天來了 - 天天要聞

由於我們使用的是Google Colab notebook,如果我們要從服務器上將這個流水線下載到本地,則需要使用Google Colab的文件管理庫:

我們可以打開 tpot_exported_pipeline.py 文件查看完整的流水線:

免費GPU!平民玩家的機器學習春天來了 - 天天要聞

(這個文件的下載地址在文末)

我們可以看到,優化器已經為我們填充了缺失值並且建立了一個完整的流水線!最終的預測模型是一個融合了 LassoLarsCV 和 GradientBoostingRegressor 兩種算法的融合模型(Stacking model)。實話說,如果我自己動手訓練,可能無法得到這樣一個複雜的模型。

現在,激動人心的時刻到了,讓我們來看看模型在測試集上的表現。我們可以使用.score來獲得平均絕對誤差:

免費GPU!平民玩家的機器學習春天來了 - 天天要聞

這個項目我曾經自己手動花了幾個小時完成,最終得到的Gradient Boosting Regressor 模型得到的平均絕對誤差是9.06。機器學習自動化真的顯著地提高了最終模型的表現,也大幅減少了開發時間。

總結一下

在這篇文章中,我們簡要地介紹了使用雲計算進行機器學習以及機器學習自動化。只要你有谷歌賬號同時能聯網,那麼就可以使用Google Colab 進行開發,運行和分享機器學習工作文件。使用TPOT,可以通過自動化的訓練和評估過程獲得最優的機器學習流水線(包括特徵預處理、模型選擇、調參).另外,我們也意識到,機器學習自動化並不會替代數據科學家,反而它會讓數據科學家能夠抽出更多的時間花在更有價值的工作中。

作為一個新誕生的事物,TPOT已經相對成熟,而且非常易於使用。大家還不趕緊運用這個方法去嘗試解決機器學習的問題(Kaggle上有很多不錯的項目)!在Google Colab 的notebook上運行一個自動化的機器學習項目,簡直未來感十足有木有,而且門檻居然如此之低,不說了,小編突然想在手機上跑下試試~

免費GPU!平民玩家的機器學習春天來了 - 天天要聞

完美運行!

文中所提到的相關文件下載地址:

https://colab.research.google.com/drive/1CIVn-GoOyY3H2_Bv8z09mkNRokQ9jlJ-

https://github.com/WillKoehrsen/machine-learning-project-walkthrough/blob/master/auto_ml/tpot_exported_pipeline.py

文-William Koehrsen

譯- Allen

原文-https://towardsdatascience.com/automated-machine-learning-on-the-cloud-in-python-47cf568859f

預測房價、狗狗識別、降為分析,硅谷超棒的實戰項目等你挑戰。點擊以下卡片,優達學城創始人 Sebastian 親自教授你人工智能中很重要的建模和算法基礎,快人一步,成為搶手人才!

科技分類資訊推薦

引領科技豪華MPV新風尚 第二代騰勢D9西安車展亮相 - 天天要聞

引領科技豪華MPV新風尚 第二代騰勢D9西安車展亮相

兼具宜商氣度與家用溫情的科技豪華旗艦MPV,第二代騰勢D9迎來西安地區正式亮相。新車依託全球新能源MPV冠軍底蘊,以第二代刀片電池、雙閥雲輦-C、天神之眼5.0智駕等核心技術全面升級,兼顧商務體面與家庭舒適,為西北高端用戶帶來一站式全能出行解決方案。
採購禁入!科華數據材料造假被拒門外 - 天天要聞

採購禁入!科華數據材料造假被拒門外

本報(chinatimes.net.cn)記者胡雅文 北京報道這家趕上AI算力風口的公司,因投標材料造假,被相關採購方列入禁入名單兩年,其此前提出的複議申請也被正式駁回。相關採購平台近日發布公告,明確駁回科華數據股份有限公司(下稱“科華數據”,002335.SZ)此前提交的複議申請。早在一年前,科華數據已被認定在“信息通信樞紐...
快評樂道L80:15萬元級買大五座,這波值得沖? - 天天要聞

快評樂道L80:15萬元級買大五座,這波值得沖?

日前,樂道L80正式發布並開啟預售,其整車購買預售價為24.58萬元起,租電購買預售價則低至15.98萬元起。面對大型SUV市場“細分再細分”之競爭趨勢,這款樂道年度重磅新車都有哪些優勢?又能否成為“大五座SUV革新之作”?下面,圈哥就帶大家全方位感受。
成都直擊凱威德:純電全尺寸SUV的張揚與大氣 - 天天要聞

成都直擊凱威德:純電全尺寸SUV的張揚與大氣

4月22日,凱迪拉克以奧斯卡級盛典規格,將上海保利大劇院點亮為璀璨舞台,在品牌代言人倪妮與全場嘉賓的共同見證下,凱迪拉克全尺寸純電公路旗艦——凱威德耀然上市。新車共推出長續航四驅Pro、高性能四驅Ultra兩款配置,官方售價區間為46.88萬-50.88萬元。