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

評論