本文作者是fast.ai的創(chuàng)始人之一Rachel Thomas,它是一名深度學習研究員,主要工作內(nèi)容是將機器學習技術更容易被其他領域的人員使用。本文介紹了機器學習從業(yè)人員的主要工作內(nèi)容,論智將其編譯如下。
當下,媒體總會用“稀缺”、“高薪”等字眼來描繪機器學習,甚至還有一些夸張的標題宣稱某公司的自動機器學習產(chǎn)品能代替機器學習專家。在TensorFlow DevSummit上,谷歌AI的首席科學家Jeff Dean表示,目前數(shù)千萬家公司會產(chǎn)出電子數(shù)據(jù),但是缺少會機器學習技術的人才。而我在fast.ai的工作正是讓更多的人學會機器學習技術、讓這種技能變得更易掌握,所以我對這一問題進行了而深入研究。
在思考我們?nèi)绾巫寵C器學習自動化,以及如何讓它普及到更多領域的人時,首先要思考的是,機器學習專家們都要做什么?任何能解決機器學習專家緊缺的方法都要回答這樣一個問題:我們是否知道該教授什么知識、用什么工具、或者在哪一部分實現(xiàn)自動化。
這篇文章屬于連載系列的第一篇,這里我們會描述機器學習專家實際上都做些什么。該系列的第二篇文章會解釋什么是自動化機器學習以及什么是神經(jīng)架構搜索(一些重量級人物曾表明這兩種成果是減少對數(shù)據(jù)科學家需要的關鍵),最后第三部分將介紹谷歌的自動機器學習產(chǎn)品。
在復雜工作中建立數(shù)據(jù)產(chǎn)品
很多學術界的機器學習成果都只關注預測模型,但這只是機器學習專業(yè)人員平時工作的一部分。明確工作問題、收集并清洗數(shù)據(jù)、搭建模型、得出結果并監(jiān)測變化,這些過程通常會以不同形式相互連接,很難單獨拿出來作為研究對象。正如Jeremy Howard等人在Designing great data products中所寫的那樣:“強大的預測模型是解決方案的一個重要部分,但是它并不獨立存在;隨著產(chǎn)品變得越來越復雜,它也知識系統(tǒng)中的一部分。”
谷歌的一個小組寫過一篇名為Machine Learning: The High-Interest Credit Card of Technical Debt的文章,講的是在實際案例中使用機器學習技術時,總會產(chǎn)生復雜的代碼和“技術債”。作者提出了幾種系統(tǒng)層面的交互、風險和反模式:
粘合代碼(glue code):即將數(shù)據(jù)加入通用包或從中取出的大量代碼
通道森林(pipeline jungles):用機器學習的形式準備數(shù)據(jù)的系統(tǒng)可能含有多種難題、連接點和采樣步驟,通常在中間文件的輸出處
重新使用輸入信號,如果系統(tǒng)分離可以創(chuàng)造緊耦合裝置
可能改變外部環(huán)境的風險也許會改變模型或輸入信號的行為,這種情況很難控制
作者寫道:“真實世界中,機器學習著重關注的就是這類問題的解決……值得注意的是,粘合代碼和通道森林是集成問題的典型癥狀,原因可能是因為將“研究”和“工程”的角色過度分離了……如果學術界知道了在機器學習系統(tǒng)中只有一小部分代碼在起作用,他們一定會驚訝的。”
當機器學習項目失敗時
機器學習項目失敗的情況有以下這么幾種:
當數(shù)據(jù)科學團隊搭建了一個從未用過的工具。但是公司的其他部門并不知道他們做了什么,有些數(shù)據(jù)科學家也并不清除這些成果能否用于實際生產(chǎn)中。
當數(shù)據(jù)科學家們創(chuàng)造模型的速度快于將其投入生產(chǎn)的速度,就會產(chǎn)生積壓。
數(shù)據(jù)基礎架構工程師和數(shù)據(jù)科學家是分開的。通道中沒有數(shù)據(jù)時,數(shù)據(jù)科學家會要求數(shù)據(jù)基礎架構工程師獲取。
當公司最終確定產(chǎn)品X的功能后,他們需要數(shù)據(jù)科學家收集支持這項決策的數(shù)據(jù)。數(shù)據(jù)科學家認為產(chǎn)品經(jīng)理會忽略那些與決定相反的數(shù)據(jù),而產(chǎn)品經(jīng)理會認為數(shù)據(jù)科學家忽略商業(yè)邏輯。
數(shù)據(jù)科學團隊面試了一位數(shù)學建模、工程技術能力都很好的候選人。確定錄用后加入到垂直應用產(chǎn)品團隊,并需要簡單的商業(yè)分析。數(shù)據(jù)科學家感到很無聊,所學技能根本用不上。
這些問題是我之前在寫公司組織失敗時列出的,但是它們同樣可以看作是太過于關注復雜系統(tǒng)的單一方面。問題在于數(shù)據(jù)產(chǎn)品之間缺少溝通并且沒有目標。
所以,機器學習專家都怎么做?
如上建議,打造一款機器學習產(chǎn)品是多方面的復雜任務。下面是機器學習專家在工作中需要做的事:
理解語境
找準能從機器學習中受益的區(qū)域
與其他相關人員討論機器學習能做什么、不能做什么
讓每個人都了解商業(yè)策略、風險和目標
明確目前公司有什么類型的數(shù)據(jù)
對任務制定合適的框架
了解操作限制
提前確定可能的道德風險,例如你的成果有可能被濫用、或被用于宣傳
確定潛在的偏見和潛在的負面反饋
數(shù)據(jù)
制作能收集更多不同數(shù)據(jù)的計劃
將不同來源的數(shù)據(jù)匯總
處理缺失的或被污染的數(shù)據(jù)
數(shù)據(jù)可視化
建立合適的訓練集、驗證集和測試集
建模
選擇使用哪個模型
將資源模型納入約束條件(即最終模型需要在頂尖設備商運行,內(nèi)存少、延長時間長等等)
選擇超參數(shù)(包括架構、損失函數(shù)、優(yōu)化器)
訓練模型,并進行debug。其中包括調(diào)參、查看損失函數(shù)、訓練錯誤、驗證錯誤是否有改變、監(jiān)測模型數(shù)據(jù)、確定錯誤來源、改變數(shù)據(jù)清洗和處理的方式、改變數(shù)據(jù)增強方式、添加更多數(shù)據(jù)、嘗試不同模型、是否過度擬合。
模型生成
創(chuàng)建一個API或網(wǎng)頁app
將模型輸出成想要的格式
計劃模型多久需要重新訓練一次并更新數(shù)據(jù)
監(jiān)測
追蹤模型性能
監(jiān)測輸入數(shù)據(jù),確定數(shù)據(jù)是否會隨時間使得模型失效
與其他人員交流結果
制定計劃,如何監(jiān)測和應對意外結果
確切地講,并不是每個機器學習人員都會做到上面所有工作,但是這一整個流程是很多機器學習應用所必備的。即使你從事的只是其中的一小部分,了解其他流程也有助于你的工作。
機器學習的兩大難點
對我自己和其他我認識的人來說,機器學習有兩種最耗時費力的步驟:
處理數(shù)據(jù)格式、不兼容和報錯
訓練特別脆弱的深度學習模型
數(shù)據(jù)清理真的是機器學習的一部分嗎?是的
處理數(shù)據(jù)的不一致和報錯經(jīng)常是混亂費力的過程。人們有時會將機器學習和數(shù)據(jù)科學分開,因為對機器學習來說,有時會直接用清洗過的數(shù)據(jù)進行訓練。然而在我的經(jīng)驗中,數(shù)據(jù)集清洗和訓練模型是相關的:我經(jīng)常會在訓練模型的時候發(fā)現(xiàn)問題,只能改變輸入數(shù)據(jù)的預處理方法。
訓練深度學習模型很脆弱
很多新手在一開始訓練模型時會很容易受挫,即使是專家也經(jīng)常感到沮喪。在NIPS 2017上,Ali Rahimi就曾抱怨深度學習的脆弱性。
這一現(xiàn)象也表明訓練過程并未自動化,如果有某些能穩(wěn)定訓練深度學習的方法出現(xiàn),對該領域來說一定是個巨大的進步。此前的dropout、遷移學習等方法都讓訓練變得容易了些,但總體來說穩(wěn)定的訓練仍然是個需要解決的問題。
給學術研究者
即使你正在研究機器學習的理論,了解從業(yè)者的工作內(nèi)容也是必須的,這可以和研究目標結合起來。正如谷歌工程師D. Sculley等人所說:“技術債是工程師和學者都必須意識到的問題。如果研究出的解決方法只對精確度有微小的提升,卻讓系統(tǒng)復雜性大大增加,那么這一定不是一個明智方案……解決技術債也許不總是誕生新的理論,但卻是創(chuàng)新的重要一環(huán)。而發(fā)展針對復雜機器學習系統(tǒng)的全面、優(yōu)雅的解決方案才是真正有意義的工作。”
-
機器學習
+關注
關注
66文章
8493瀏覽量
134178 -
深度學習
+關注
關注
73文章
5555瀏覽量
122539
原文標題:做機器學習是一種怎樣的體驗?詳解機器學習專家的日常工作
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
評論