本文作者是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ì)用“稀缺”、“高薪”等字眼來描繪機(jī)器學(xué)習(xí),甚至還有一些夸張的標(biāo)題宣稱某公司的自動(dòng)機(jī)器學(xué)習(xí)產(chǎn)品能代替機(jī)器學(xué)習(xí)專家。在TensorFlow DevSummit上,谷歌AI的首席科學(xué)家Jeff Dean表示,目前數(shù)千萬家公司會(huì)產(chǎn)出電子數(shù)據(jù),但是缺少會(huì)機(jī)器學(xué)習(xí)技術(shù)的人才。而我在fast.ai的工作正是讓更多的人學(xué)會(huì)機(jī)器學(xué)習(xí)技術(shù)、讓這種技能變得更易掌握,所以我對(duì)這一問題進(jìn)行了而深入研究。
在思考我們?nèi)绾巫寵C(jī)器學(xué)習(xí)自動(dòng)化,以及如何讓它普及到更多領(lǐng)域的人時(shí),首先要思考的是,機(jī)器學(xué)習(xí)專家們都要做什么?任何能解決機(jī)器學(xué)習(xí)專家緊缺的方法都要回答這樣一個(gè)問題:我們是否知道該教授什么知識(shí)、用什么工具、或者在哪一部分實(shí)現(xiàn)自動(dòng)化。
這篇文章屬于連載系列的第一篇,這里我們會(huì)描述機(jī)器學(xué)習(xí)專家實(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í)專業(yè)人員平時(shí)工作的一部分。明確工作問題、收集并清洗數(shù)據(jù)、搭建模型、得出結(jié)果并監(jiān)測(cè)變化,這些過程通常會(huì)以不同形式相互連接,很難單獨(dú)拿出來作為研究對(duì)象。正如Jeremy Howard等人在Designing great data products中所寫的那樣:“強(qiáng)大的預(yù)測(cè)模型是解決方案的一個(gè)重要部分,但是它并不獨(dú)立存在;隨著產(chǎn)品變得越來越復(fù)雜,它也知識(shí)系統(tǒng)中的一部分。”
谷歌的一個(gè)小組寫過一篇名為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)的行為,這種情況很難控制
作者寫道:“真實(shí)世界中,機(jī)器學(xué)習(xí)著重關(guān)注的就是這類問題的解決……值得注意的是,粘合代碼和通道森林是集成問題的典型癥狀,原因可能是因?yàn)閷ⅰ把芯俊焙汀肮こ獭钡慕巧^度分離了……如果學(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è)從未用過的工具。但是公司的其他部門并不知道他們做了什么,有些數(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é)家是分開的。通道中沒有數(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é)家感到很無聊,所學(xué)技能根本用不上。
這些問題是我之前在寫公司組織失敗時(shí)列出的,但是它們同樣可以看作是太過于關(guān)注復(fù)雜系統(tǒng)的單一方面。問題在于數(shù)據(jù)產(chǎn)品之間缺少溝通并且沒有目標(biāo)。
所以,機(jī)器學(xué)習(xí)專家都怎么做?
如上建議,打造一款機(jī)器學(xué)習(xí)產(chǎn)品是多方面的復(fù)雜任務(wù)。下面是機(jī)器學(xué)習(xí)專家在工作中需要做的事:
理解語境
找準(zhǔn)能從機(jī)器學(xué)習(xí)中受益的區(qū)域
與其他相關(guān)人員討論機(jī)器學(xué)習(xí)能做什么、不能做什么
讓每個(gè)人都了解商業(yè)策略、風(fēng)險(xiǎn)和目標(biāo)
明確目前公司有什么類型的數(shù)據(jù)
對(duì)任務(wù)制定合適的框架
了解操作限制
提前確定可能的道德風(fēng)險(xiǎn),例如你的成果有可能被濫用、或被用于宣傳
確定潛在的偏見和潛在的負(fù)面反饋
數(shù)據(jù)
制作能收集更多不同數(shù)據(jù)的計(jì)劃
將不同來源的數(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ò)誤來源、改變數(shù)據(jù)清洗和處理的方式、改變數(shù)據(jù)增強(qiáng)方式、添加更多數(shù)據(jù)、嘗試不同模型、是否過度擬合。
模型生成
創(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í)的人來說,機(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)力的過程。人們有時(shí)會(huì)將機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)分開,因?yàn)閷?duì)機(jī)器學(xué)習(xí)來說,有時(shí)會(huì)直接用清洗過的數(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)問題,只能改變輸入數(shù)據(jù)的預(yù)處理方法。
訓(xùn)練深度學(xué)習(xí)模型很脆弱
很多新手在一開始訓(xùn)練模型時(shí)會(huì)很容易受挫,即使是專家也經(jīng)常感到沮喪。在NIPS 2017上,Ali Rahimi就曾抱怨深度學(xué)習(xí)的脆弱性。
這一現(xiàn)象也表明訓(xùn)練過程并未自動(dòng)化,如果有某些能穩(wěn)定訓(xùn)練深度學(xué)習(xí)的方法出現(xiàn),對(duì)該領(lǐng)域來說一定是個(gè)巨大的進(jìn)步。此前的dropout、遷移學(xué)習(xí)等方法都讓訓(xùn)練變得容易了些,但總體來說穩(wěn)定的訓(xùn)練仍然是個(gè)需要解決的問題。
給學(xué)術(shù)研究者
即使你正在研究機(jī)器學(xué)習(xí)的理論,了解從業(yè)者的工作內(nèi)容也是必須的,這可以和研究目標(biāo)結(jié)合起來。正如谷歌工程師D. Sculley等人所說:“技術(shù)債是工程師和學(xué)者都必須意識(shí)到的問題。如果研究出的解決方法只對(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文章
8490瀏覽量
134069 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5554瀏覽量
122468
原文標(biāo)題:做機(jī)器學(xué)習(xí)是一種怎樣的體驗(yàn)?詳解機(jī)器學(xué)習(xí)專家的日常工作
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何輕松掌握機(jī)器學(xué)習(xí)概念和在工業(yè)自動(dòng)化中的應(yīng)用
讓你一眼看出工業(yè)機(jī)器人在干啥
機(jī)器學(xué)習(xí)的相關(guān)資料下載
什么是機(jī)器學(xué)習(xí)? 機(jī)器學(xué)習(xí)基礎(chǔ)入門
機(jī)器學(xué)習(xí)自動(dòng)化(AutoML):讓機(jī)器自己煉丹
自動(dòng)化機(jī)器學(xué)習(xí)是什么情況
談?wù)勅绾螌?b class='flag-5'>機(jī)器學(xué)習(xí)引入自動(dòng)化
人工智能和機(jī)器學(xué)習(xí)為DevOps帶來了新的自動(dòng)化功能
自動(dòng)機(jī)器學(xué)習(xí)簡(jiǎn)述
DB4564_用于STM32微控制器的自動(dòng)化機(jī)器學(xué)習(xí)(ML)工具

評(píng)論