自動機器學習和AI初學者指南

banq發表於2018-12-04

AI供應商總是試圖說服公司購買他們的機器學習平臺和工具,原因之一是聲稱它的產品是自動化的。這是一個關鍵的賣點,因為大多數公司都敏銳地意識到他們無法僱用足夠的資料科學家(甚至他們已經設法聘請任何資料科學家)。
資料科學家是那些探索資料,清理資料,測試他們認為可能對資料能夠進行準確預測的演算法的人,然後調整這些演算法,直到它們執行良好,就像汽車修理工可能調整汽車一樣。這是機器學習工作流程中更完整的任務列表。
如果資料科學家很幸運,他們會獲得有效執行這些任務的工具,甚至可以將這些經過培訓的機器學習模型部署到生產環境中,以便對實驗室外的資料進行預測。

許多機器學習供應商,從谷歌到初創公司,如Datarobot和H2O.ai,聲稱他們可以自動化機器學習。這聽起來很不錯!你只需要自動化所有這些技能。
問題是,資料科學家擁有的技能很難實現自動化,而那些尋求購買自動化AI的人應該意識到使用現有技術可以實現什麼樣的自動化,哪些無法實現?

資料科學家執行許多工。雖然自動執行其中一些任務可能會減輕他們的工作量,但除非您可以自動完成所有任務,否則資料科學家仍然是需要的,而且這些稀缺的人才仍然是阻礙許多組織中機器學習實施的阻礙點。

我們可以在機器學習中自動化什麼?
前面提到資料科學家調整演算法。當您調整複雜的機器(並且這些演算法只是數學和符號機器)時,您通常需要轉動幾個旋鈕。這有點像用幾種食材烹飪,為了產生正確的味道,要調整你的菜餚,這些成分應該以適當的比例相互新增,關鍵是,正確的比例很重要。

資料科學家經常在沒有“配方”的情況下操作,並且必須將旋鈕彼此組合調整以探索哪種組合有效。在這種情況下,“工作”意味著調整演算法,直到它能夠從給予訓練的資料中有效地學習。

超引數最佳化
在資料科學中,演算法上的旋鈕稱為超引數,因此資料科學家一般是執行“超引數搜尋”,因為他們需要測試了這些超引數的不同組合,它們的成分之間的比率不同。

超引數搜尋可以自動化。Eclipse Arbiter是一個超引數最佳化庫,旨在自動進行深度神經網路訓練的超引數調整。它相當於Google Tensorflow的Vizier,或開源Python庫Spearmint。Arbiter是Deeplearning4j框架的一部分。一些初創公司,如SigOpt,專注於超引數最佳化。

您可以使用不同型別的搜尋演算法搜尋超引數的最佳組合,例如網格搜尋,隨機搜尋和貝葉斯方法。

演算法選擇
AI供應商將做的一件事是透過預設設定超引數的幾種演算法執行相同的資料,以確定哪種演算法可以最好地學習資料。在比賽結束時,他們選擇獲勝者。但是,也有其侷限性,特別是在任何特定比賽中選擇執行的演算法範圍,以及它們的調整程度。

快樂道路上的有限使用案例
只有當他們對正在解決的問題有一些瞭解,以及用於訓練演算法的資料時,AI供應商才能聰明地瞭解他們選擇的演算法。在許多實際情況中,需要冗長的資料探索和一些特定領域的知識來選擇正確的演算法。

在自動化機器學習的世界中,我們假裝資料探索和業務領域知識無關緊要。我們只能針對一些有限的用例來做這件事。在軟體中,這被稱為快樂路徑,或者一切都如我們所期望的那樣的用例。自動化機器學習有一條狹窄的快樂道路; 也就是說,很容易走出困境並陷入困境。

例如,對於一個簡單的用例來說,很容易實現機器學習的自動化。

在某些情況下,提供預先烘焙的解決方案可能很困難。資料管道(也稱為ETL)通常是人工智慧工作流程中需要最多人力關注的階段。現實世界是混亂的,代表這個世界的資料通常也很混亂。在將資料用於訓練機器學習演算法之前,需要對大多數資料集進行探索,清理和預處理。清潔和探索通常需要專家。

專業的服務
一般有兩種選擇:公式可以聘請自己的資料科學家或依賴諮詢公司的流程服務。每個主要的公共雲供應商都引入了機器學習解決方案團隊,試圖縮小人才缺口,並使雲端計算的潛在使用者更容易獲得機器學習。

從埃森哲到貝恩的主要諮詢公司都聘請了資料科學家團隊為他們的客戶建立解決方案。甚至像Data Robot這樣的自動化機器學習初創公司也提供“面向客戶的資料科學家”。

因此,很多時候,銷售自動化機器學習的AI供應商實際上是在幫助人類“自動化”這些任務; 也就是說,他們允許他們的客戶外包人才。這是因為構建AI解決方案所涉及的任務和決策是多方面的,多樣的和複雜的,並且還不存在實現完全自動化的方法和技術,這是服務。

學習和預訓練模型
機器學習模型一開始很愚蠢,透過使用資料“訓練”他們才能變得聰明。訓練包括猜測資料,測量猜測中的錯誤,並糾正自己,直到他們做出更準確的猜測。透過資料訓練以產生符合資料的準確“模型”。經過訓練的、準確的資料模型能夠在提供類似於其訓練的新資料時產生良好的預測。

出於本討論的目的,將模型想象為黑盒子,對資料執行數學運算以對其進行預測。資料進入模型,預測結果出來; 例如,將您的一個朋友的影像輸入到模型中,它將預測影像中朋友的姓名。

有時,您可以在一組資料上訓練機器學習模型,然後將其用於另一組稍微不同的資料集。這僅在兩個資料集彼此相似時才有效。例如,大多數照片具有一些共同的特徵。如果你在名人面孔上訓練一個機器學習模型,它將學習人類的樣子,只需要一點額外的學習,你就可以教它將它所知道的東西轉移到你的家人和朋友的照片上,即使從未見過。使用預先訓練的模型可以節省您在分散式GPU上培訓數千小時的成本,這是一個昂貴的開銷。

獲得一些世界性知識的預先訓練的機器學習模型在計算機視覺中是有用的,並且可廣泛使用。一些著名的預訓練計算機視覺模型包括AlexNet,LeNet,VGG16,YOLO和Inception。這些預先訓練的計算機視覺模型可在此處獲得。Google的Cloud AutoML依賴於轉移學習以及其他方法,以支援其聲稱“自動化機器學習”。
 

相關文章