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