AutoML : 更有效地設計神經網絡模型

2020-12-16 雷鋒網

字幕組雙語原文:AutoML : 更有效地設計神經網絡模型

英語原文:AutoML: Creating Top-Performing Neural Networks Without Defining Architectures

翻譯:雷鋒字幕組(chenx2ovo)


自動化機器學習,通常被稱為AutoML,是自動化構建指神經網絡結構。AutoML通過智能架構的操作,可以讓大家更方便、更快速的進行深度學習的研究。

在本文中,我們將介紹AutoML的以下內容:

關於AutoKeras的一個簡短介紹

  • 通過AutoKeras這個神經架構搜索算法,我們可以找到最好的神經網絡架構,比如層中神經元的數量,架構的層數,加入哪些層,層的特定參數,比如Dropout中的濾波器大小或掉落神經元的百分比等等。當搜索完成後,你可以將模型作為常規的TensorFlow/Keras模型使用。

  • 通過使用AutoKeras,你可以建立一個具有複雜組件的模型,比如嵌入和空間縮減,這些對於那些還在學習深度學習的人來說是不太容易理解的。

  • 當AutoKeras創建模型時,會進行大量預處理操作,如矢量化或清理文本數據等等,都會自動完成並優化。

  • 啟動和訓練搜索只需要兩行代碼。AutoKeras擁有一個類似Keras的界面,所以它非常易於使用。

是不是很激動,讓我們正式開始叭!

安裝

在安裝前,請先確保你安裝了以下包:

在命令行中,運行下列兩個命令。這樣就能正確安裝AutoKeras。注意,不能在Kaggle筆記本中運行,最好在本地環境中運行。

作為測試,在編碼環境中運行import autokeras以確保一切正常。 

結構化數據的分類/回歸任務

我們從著名的iris數據集開始,該數據集可以從sklearn的幾個簡單的示例數據集中導入。導入的數據是一個字典,有兩個鍵值對組成,"data "和 "target"。

然而,由於target是分類標籤(三個類別),我們需要對它進行虛擬編碼。由於結果是一個pandas DataFrame,並且需要一個NumPy數組,我們在pd.get_dummies之後調用.values(獨熱編碼)。

 調用X.shape得到(150,4),調用y.shape得到(150,3)。這是說明X中包含了150行4列,y中有3個不同的類別(因此有3列)。為了評估我們的模型,我們將把數據分成訓練集和測試集。

 查看數組的尺寸是一個很好的做法:


  • X_train: (105, 4)

  • X_test: (45, 4)

  • y_train: (105, 3)

  • y_test: (45, 3)

太好了!一切都很順利。我們可以開始使用Autokeras了。

導入Autokeras通常沒有問題。StructuredDataClassifier是一個在 "結構化數據 ",或者說是帶有列和標籤的標準二維數據上工作的搜索對象。max_trials參數表示要測試的模型的最大數量;在iris數據集上,由於數據集規模較小,這個參數可以設置較高一些。通常在達到max_trials之前搜索就會結束(它作為一個上限)。

對於回歸問題,使用StructuredDataRegressor。

我們可以通過調用.fit()來啟動搜索過程。verbose是一個參數,可以設置為0或1,這取決於你是否希望模型輸出訓練相關信息,比如潛在網絡的架構和每個epoch的搜索情況。然而,每個潛在架構都有數百個epoch,所以開啟這一項可能會佔用空間並減慢訓練速度。

建議設置verbose=1,來顯示整個訓練的過程。因為整個搜索過程至少會持續幾分鐘才能完成。如下面示例的輸出:

如果你願意的話,可以觀察搜索到架構隨著時間的推移而不斷變化,以及哪些元素會進入最終的神經網絡。這一過程很有意思。

在我的本地環境中,在沒有GPU加速的情況下,總共花了1小時左右才跑完15次試驗。

一旦你的模型被擬合,我們就可以評估它的性能或進行預測。一般來說,這一過程速度較快,所以verbose可以設置為0。

為了查看模型結構的更多細節並保存它,我們需要使用model = search.export_model()對其進行導出。這裡的model是一個標準的TensorFlow/Keras模型,而不是AutoKeras對象。

調用model.summary()可以列印出搜索到的最佳架構。

保存模型權重,使用model.save(『filepath/weights.h5』).

圖像分類/回歸

圖像分類和回歸的工作原理很像標準結構化數據的分類和回歸,但他們所使用的神經網絡的建立使用了卷積神經網絡的元素,比如卷積層、最大池化和扁平化。其中所有的參數都是可學習的。

例如,我們在MNIST數據集上實驗,從28乘28的圖像中找到一個卷積神經網絡來識別數字。Keras數據集提供了一種方便的方法來檢索這些數據,但需要將y變量轉換為虛變量。

我們看一下這些數據的尺寸:


  • X_train: (60000, 28, 28)

  • X_test: (10000, 28, 28)

  • y_train: (60000, 10)

  • y_test: (10000, 10)

很強!AutoKeras還可以處理四維數據(多通道的彩色圖像)。我們可以用ImageClassifier創建一個搜索對象(或者創建ImageRegressor用於回歸任務)。

*如果您正在運行多個搜索,請在定義搜索對象時添加一個參數overwrite=True (ak.object(overwrite=True, max_trials=x))。否則會出現錯誤。

評估、預測和導出模型的過程與結構化分類器和回歸器一樣。需要注意的是,對圖像數據進行神經架構搜索會花費更長的時間。

文本分類/回歸

AutoKeras不需要任何文本矢量化操作,這很方便,因為當前有很多方法可以完成這一操作,而且每一種方法的實現都很漫長。在AutoKeras中這一操作這是由模型學習的。

我們使用20個新聞組數據集,它由屬於20個不同類別的若干新聞摘錄組成。為了節省時間和計算開銷,我們只選擇導入其中的四個類別,並且調大了測試集劃分規模(整個數據集的一半)。

X_train和X_test分別是由1128個原始文本字符串組成的數組,y_train和y_test分別是形狀(1128, 4)的數組。

請注意,AutoKeras可以處理可變長度的字符串!輸入的每個字符串不需要長度相同。

接下來,讓我們建立我們的文本分類器/回歸器。

*如果您正在運行多個搜索,請在定義搜索對象時添加一個參數overwrite=True (ak.object(overwrite=True, max_trials=x))。否則會出現錯誤。

評估、預測和導出與結構化分類器和回歸器一樣進行。

值得一看的是提出的網絡。NLP和深度學習之間的融合可以說是非常先進,像嵌入、空間還原等複雜的元素不需要明確調用就可以實現,這很神奇。

有了AutoKeras,深度學習更容易被所有人使用!


雷鋒字幕組是一個由 AI 愛好者組成的翻譯團隊,匯聚五百多位志願者的力量,分享最新的海外AI資訊,交流關於人工智慧技術領域的行業變革與技術創新的見解。

團隊成員有大數據專家、算法工程師、圖像處理工程師、產品經理、產品運營、IT諮詢人、在校師生;志願者們來自IBM、AVL、Adobe、阿里、百度等知名企業,北大、清華、港大、中科院、南卡羅萊納大學、早稻田大學等海內外高校研究所。

如果,你也是位熱愛分享的AI愛好者。歡迎與雷鋒字幕組一起,學習新知,分享成長。

雷鋒網雷鋒網(公眾號:雷鋒網)

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 專欄| 神經網絡架構搜索(NAS)綜述(附AutoML資料推薦)
    ,但調參對於深度模型來說是一項非常苦難的事情,眾多的超參數和網絡結構參數會產生爆炸性的組合,常規的 random search 和 grid search 效率非常低,因此最近幾年神經網絡的架構搜索和超參數優化成為一個研究熱點。
  • 讓AI去訓練AI,autoML、autoKeras、auto-sklearn了解一波
    自動化機器學習Automatic Machine Learning, AutoML簡單來說就是一種自動化任務的方法,包括以下內容:預處理並清理數據選擇並構建適當的功能選擇合適的模型優化模型超參數後處理機器學習模型
  • 行業前沿:AutoML會成為機器學習世界的主流嗎?
    此外,數據科學家和自動化機器學習的領先擁護者Randy Olson指出,有效的機器學習設計要求我們:· 不斷地調整模型的超參數· 不斷地嘗試多種模型· 不斷地為數據探索特徵表示法考慮到以上所有因素,如果我們把AutoML看作是算法選擇、超參數調整、迭代建模和模型評估的任務,我們就可以定義AutoML是什麼,但不會有完全一致的意見
  • 如何有效地對神經網絡參數進行初始化
    神經網絡的初始化是訓練流程的重要基礎環節,會對模型的性能、收斂性、收斂速度等產生重要的影響。本文是deeplearning.ai的一篇技術博客,文章指出,對初始化值的大小選取不當,  可能造成梯度爆炸或梯度消失等問題,並提出了針對性的解決方法。 初始化會對深度神經網絡模型的訓練時間和收斂性產生重大影響。
  • 如何高效快速準確地完成ML任務,這4個AutoML庫了解一下
    只需要很少的工作,AutoML 就能通過快速有效的方式,為你的 ML 任務構建好網絡模型,並實現高準確率。簡單有效!數據預處理、特徵工程、特徵提取和特徵選擇等任務皆可通過 AutoML 自動構建。更多 AutoSklearn 相關文檔請查閱:https://automl.github.io/auto-sklearn/master/。TPOTTPOT 是另一種基於 Python 的自動機器學習開發工具,該工具更關注數據準備、建模算法和模型超參數。
  • 深度學習之卷積神經網絡經典模型
    不過,隨著SVM等手工設計的特徵的飛速發展,LeNet-5並沒有形成很大的應用狀況。隨著ReLU與dropout的提出,以及GPU帶來算力突破和網際網路時代大數據的爆發,卷積神經網絡帶來歷史的突破,AlexNet的提出讓深度學習走上人工智慧的最前端。
  • AutoML:機器學習的下一波浪潮
    然而,即使有這種明確的跡象表明機器學習可以為某些企業提供支持,但很多公司仍在為部署 ML 模型而艱難地努力著。首先,他們需要建立一支由經驗豐富的數據科學家組成的團隊,這些科學家都要拿豐厚的薪水。其次,即使你擁有一支優秀的團隊,往往需要更多的經驗來 決定哪種模式 最適合你的問題,而不是知識。
  • 如何高效、快速、準確地完成ML任務,這4個AutoML庫了解一下
    只需要很少的工作,AutoML 就能通過快速有效的方式,為你的 ML 任務構建好網絡模型,並實現高準確率。簡單有效!數據預處理、特徵工程、特徵提取和特徵選擇等任務皆可通過 AutoML 自動構建。該庫專為大規模優化具有數百個參數的模型而設計,顯式地用於優化機器學習 pipeline,並可選擇在多個核心和機器上擴展優化過程。但是,HyperOpt 很難直接使用,因為它非常具有技術性,需要仔細指定優化程序和參數。相反,作者建議使用 HyperOpt-sklearn,這是一個融合了 sklearn 庫的 HyperOpt 包裝器。
  • 基於深度神經網絡的脫硫系統預測模型及應用
    但是,化學機理建模也面臨因計算代價大從而過度簡化、無法考慮複雜工況等問題,導致預測效果較差,模型遷移能力不強。隨著人工智慧技術的高速發展,神經網絡技術逐漸被應用於對脫硫系統進行建模預測。早期技術主要是基於簡單的反向傳播(Back Propagation, BP)設計神經網絡,但因 BP 網絡結構簡單,存在一些問題。
  • BP神經網絡
    我國上市公司在飛速發展的同時,也不斷地受到各種外界風險的衝擊,如何能夠對上市公司的財務風險進行有效預警,是許多決策者和研究者面臨的難題。本文介紹智能財務風險預警方法——BP神經網絡。「大數據與人工智慧環境下的智能財務風險預警方法」系列推文二:BP神經網絡 近年來,AlphaGo擊敗了人類職業圍棋選手,激起了全球範圍內對人工智慧的關注。
  • 如何在GPU上設計高性能的神經網絡
    可以通過AWS或谷歌cloud輕鬆地啟動這些機器的集群。NVIDIA擁有業內領先的GPU,其張量核心為Volta V100和安培A100加速哪種方法最適合你的神經網絡?為了以最低的成本設計出最快的神經網絡,機器學習架構師必須解決許多問題。此外,僅僅使用帶有GPU和張量核心的機器並不能保證最高性能。那麼,作為一個機器學習架構師,應該如何處理這個問題呢?當然,您不能是硬體不可知論者。
  • ICLR 2020 | 神經正切,5行代碼打造無限寬的神經網絡模型
    如何從深度學習模型中提取顯著特徵?近年來,該領域取得進展的一個關鍵理論觀點是:增加 DNN 的寬度會帶來更有規律的行為,並使這些行為更易於理解。最近的許多結果表明,能夠變得無限寬的DNN聚合到另一種更簡單的模型類別上的過程,稱為高斯過程。在這一限制下,複雜的現象(如貝葉斯推理或卷積神經網絡的梯度下降動力學)可以歸結為簡單的線性代數方程。
  • 自動化所提出基於類腦脈衝神經網絡的音樂記憶與激活模型
    中國科學院自動化研究所類腦智能研究中心曾毅團隊充分借鑑了人類大腦在音樂信息處理方面的神經機制,構建了一個多尺度的多腦區協同的脈衝神經網絡SNN(Spiking Neural Network)模型,用於音樂感知與記憶。模型可以通過一首曲名從而回憶起整首樂曲,也可以只通過一個片段,回憶起整首曲目,甚至可以回憶樂曲的節奏與速度。
  • 如何選擇神經網絡激活函數:有效的改善模型學習模式的能力
    機器學習是一個使用統計學和計算機科學原理來創建統計模型的研究領域,用於執行諸如預測和推理之類的主要任務。 這些模型是給定系統的輸入和輸出之間的數學關係集。 學習過程是估計模型參數的過程,以便模型可以執行指定的任務。 學習過程會嘗試使機器具有學習能力,而無需進行顯式編程。 這是ANN的作用。什麼是人工神經網絡?
  • Noisy DARTS:含注入噪聲的可微分神經網絡搜索
    而作為 AutoML 的核心技術自動化神經網絡構架搜索 NAS (Neural Architecture Search),也在近期的各種國際會議上大放異彩,比如 ICLR 的為 NAS 主題舉辦了第一屆 workshop,其中 Google Brain的Quoc V. Le 發表了一小時的關於神經網絡自動化未來的看法。
  • 神經網絡的性能竟然優於神經符號模型
    不僅如此,實驗結果證實,神經網絡的在關鍵任務上的效果還要更好。不需要預先訓練,完全無監督,居然這麼神奇?  按照之前的常識,結合了算法和符號推理技術的神經符號模型(Neurosymbolic Models),會比神經網絡更適合於預測和解釋任務,此外,神經符號模型在反事實方面表現更好。
  • 基於類腦脈衝神經網絡的音樂記憶與激活模型
    據課題組長曾毅研究員介紹,當一首樂曲響起時,大腦的聽覺系統中對音高敏感的神經元率先產生神經活動並對音高進行編碼,大腦皮層-基底節-小腦-丘腦神經環路處理音樂節奏與速度,同時,記憶系統對旋律進行有效存儲。
  • IBM的8位浮點精度深度神經網絡模型解析
    本文引用地址:http://www.eepw.com.cn/article/201901/396743.htm  IBM的研究人員聲稱,他們已開發出一個更加高效的模型用於處理神經網絡,該模型只需使用8位浮點精度進行訓練,推理(inferencing)時更是僅需4位浮點精度。
  • 【深度】機器學習進化史:從線性模型到神經網絡
    但是如果想要更實際些的話,那就得來我的分布式算法課了,我們會在Spark編程環境下工作,而我幾乎會花一半時間在Spark上面。在這個平臺上,我所教授的,設計分布式算法和機器學習的理論都可以執行,而且非常具體。2006年我來到Google負責MapReduce編程模型,實際上之前Hadoop已經廣為人知,也非常流行了,但在Google,MapReduce已經十分成熟。
  • 全面解讀用於文本特徵提取的神經網絡技術:從神經概率語言模型到...
    問題 2:使用神經網絡而非這些簡單方法是否有什麼固有的好處?問題 3:相對於使用簡單的方法,使用神經網絡有怎樣的權衡?問題 4:在性能和準確度上,這些不同的技術之間有怎樣的差異?問題 5:在哪些用例中,這些權衡比神經網絡的好處更重要?