《機器學(xué)習(xí)訓(xùn)練秘籍》(Machine Learning Yearning)這本書講的是如何構(gòu)建機器學(xué)習(xí)項目的開發(fā)流程。該書包括了許多在別處難得一見的實用見解,講述的形式又非常適合分享給團隊中的其他成員以及合作者。大多數(shù)人工智能方面的課程會向你闡釋不同機器學(xué)習(xí)算法的工作原理,而這本書教授的是如何實際使用它們。中文書地址:https://accepteddoge.com/machine-learning-yearning-cn/
如果你想要成為人工智能行業(yè)的技術(shù)主管,這本書會助你一臂之力。過去,要想學(xué)習(xí)如何在人工智能項目中做決策,唯一的方法是去攻讀研究生課程、或者在公司積累經(jīng)驗。現(xiàn)在,《機器學(xué)習(xí)訓(xùn)練秘籍》這本書可以助你快速獲得這項技能,從而變得更加擅長構(gòu)造復(fù)雜的人工智能系統(tǒng)。
目錄
前言
概念 1: 迭代,迭代,迭代
概念 2: 使用單一評估指標(biāo)
概念 3: 錯誤分析很關(guān)鍵
概念 4: 定義一個最優(yōu)錯誤率
概念 5: 研究人類能做好的問題
概念 6: 如何劃分?jǐn)?shù)據(jù)集
總結(jié)
前言
該書從一個小故事講起。想象一下,你的公司想要建造一個先進的貓咪檢測系統(tǒng)。你已經(jīng)做了一個原型,可惜的是,這個系統(tǒng)的性能不太行。你的團隊提出了多個改進系統(tǒng)的想法,但你有點搞不清楚接下來該走哪條路。或許你會造出世界領(lǐng)先的貓咪檢測平臺,又或許,你會因走錯路而浪費掉幾個月的時間。
這本書則能告訴你,在這樣的情形下如何做抉擇、如何排定優(yōu)先級。吳恩達(dá)指出,大多數(shù)機器學(xué)習(xí)問題都會為下一步最應(yīng)該做什么或者避免什么留下線索,學(xué)習(xí)「讀懂」這些線索是機器學(xué)習(xí)領(lǐng)域的關(guān)鍵技能。
簡而言之,《機器學(xué)習(xí)訓(xùn)練秘籍》的主旨是讓你深入理解如何確定機器學(xué)習(xí)項目的技術(shù)方向。
由于你的團隊成員們可能會對你提出的新想法產(chǎn)生質(zhì)疑,吳恩達(dá)把書本章節(jié)寫得非常精簡(1-2 頁)。這樣你的成員們就能在幾分鐘內(nèi)讀完,并理解這些概念背后的思想。此外,這本書并不適合完全的初學(xué)者,因為它需要對有監(jiān)督學(xué)習(xí)和深度學(xué)習(xí)有一些基本的了解。
在本文中,我會用我自己的語言和理解來分享這本書中的六個概念。
概念 1:迭代,迭代,迭代……
吳恩達(dá)在該書中從頭到尾一直強調(diào):由于機器學(xué)習(xí)是一個迭代的過程,快速迭代至關(guān)重要。比起去思考如何為你的問題建造一個完美的機器學(xué)習(xí)系統(tǒng),不如先盡快造出一個簡單的原型系統(tǒng)。若你不是這個問題所屬領(lǐng)域的專家,就更應(yīng)如此,因為要正確找出最佳方向,不靠實驗實在是太難了。
你應(yīng)該在幾天內(nèi)造出第一個原型,然后就會有線索幫你找到改進原型的最佳方向。在下一個迭代中,你可以基于其中一個線索改進這個系統(tǒng),并生成下一個版本,然后周而復(fù)始。
接著他闡釋道,你迭代得越快,進步就越多。這本書中的其它概念也都基于這個原則。要注意的是,這一點適用于那些只想做一個基于人工智能的應(yīng)用,而不是在這個領(lǐng)域做研究的人。
概念 2:使用單一評估指標(biāo)
這個概念是建立在不停迭代的基礎(chǔ)上。為何要選擇一個單值評估指標(biāo),道理也很簡單:它使你能夠快速評估算法,從而更加快速地迭代。使用多種評估指標(biāo)會使算法之間的比較變得更為困難。
想象你有兩個算法。第一個準(zhǔn)確率 94%,召回率 89%。第二個準(zhǔn)確率 88%,召回率 95%。
這種情況下,如果你不選擇一個單一評估指標(biāo),就很難顯而易見地指出哪個分類器更好,于是你就需要花費更多的時間搞定它。而問題在于,每一次迭代都需要損失一些時間,積累到最后就非常可觀了。因為你會嘗試很多不同的想法,調(diào)整架構(gòu)、參數(shù)、特征等等,如果你用的是一個單值評估指標(biāo)(比如準(zhǔn)確率或者 f1-值),你就能把你所有的模型按照他們的性能排序,快速決定哪個最好。另外,還有一個方法可以改善評估的過程,就是把多個指標(biāo)合并成一個,比如給多個錯誤度量求平均。
當(dāng)然,有一些機器學(xué)習(xí)問題需要滿足不止一個指標(biāo),比如要考慮運行時間。吳恩達(dá)這樣說:你應(yīng)該定義一個「可接受」的運行時間,從而快速排除那些太慢的算法,然后用你的單值評估指標(biāo)比較那些符合條件的算法。
簡單而言,一個單值評估指標(biāo)使你能夠快速評估算法,從而更快地迭代。
概念 3: 誤差分析至關(guān)重要
誤差分析指的是檢查算法結(jié)果中錯誤樣例的過程。比如,假設(shè)你的貓咪檢測系統(tǒng)把鳥誤認(rèn)為是貓,那么你就需要對這個問題有一些解決方案。
在恰當(dāng)?shù)恼`差分析后,你可以估計出某個改進方案實際能為這個系統(tǒng)提供多少性能增益。因此我們不用花費好幾個月先去實現(xiàn)某個方案,然后才發(fā)現(xiàn)它對你的系統(tǒng)沒多大影響。這樣你就能判斷,把資源投到哪個方案上效果會最好。如果你發(fā)現(xiàn)誤識別的圖片中只有 9% 是鳥,那無論在鳥的圖片上把算法性能提高到多少都沒什么用,因為它最多也就能改善你 9% 的錯誤。
另外,通過誤差分析,你還能快速判斷多個改進方案的好壞。如果驗證集里有 100 張分類錯誤的圖片,只需要新建一個表單,一邊檢查一邊填寫。在表單里,每個分類錯誤的圖片為一行,每個改進方案為一列。然后你遍歷所有分類錯誤的圖片,記錄哪些改進方案能正確分類這張圖。
然后你就會清楚,比方說,方案 1 能使系統(tǒng)把 40% 的誤分類圖片分對、方案 2 為 12%、方案 3 僅僅為 9%。所以,可知你的團隊最應(yīng)該進行的是改進是方案 1。
同時,一旦開始仔細(xì)查看這些誤分類樣本,你還可能找到更多新的靈感來改善算法。
概念 4: 定義一個最優(yōu)錯誤率
最優(yōu)錯誤率可以指導(dǎo)你接下來該怎么做。在統(tǒng)計學(xué)中,我們也常稱之為貝葉斯錯誤率。
想象這樣一個場景,你在做一個語音轉(zhuǎn)文字的系統(tǒng)。你發(fā)現(xiàn)用戶們上傳的音頻文件中,預(yù)計會有 19% 的音頻背景噪音太大,連人都無法識別到底說了啥。如果是這種情況,那么即便是最優(yōu)秀的系統(tǒng)大概也會有接近 19% 的錯誤率。與之相反,如果你要研究的問題最優(yōu)錯誤率幾乎能到達(dá) 0%,那就可以指望你的系統(tǒng)也能做得差不多好。
它也可以幫你檢測算法是否存在高偏差或者高方差的問題,從而幫你判斷接下來如何改進算法。
但怎么才能知道最優(yōu)錯誤率是多少呢?對于那些人類擅長的任務(wù),你可以把你的系統(tǒng)的性能和人相比,差不多就是最優(yōu)錯誤率了。如果是人類不擅長的任務(wù),要定義最優(yōu)錯誤率往往很難。正因為此,你應(yīng)該去研究人類本身也能做好的問題,這一點我們會在下一個概念中進行討論。
概念 5:研究人類能做好的問題
在這本書中,吳恩達(dá)多次探討了為什么建議大家去研究人類本身也能做好的問題,比如語音識別、圖像分類、物體檢測等等。原因有以下幾點。
首先,更容易獲取或創(chuàng)建一個帶標(biāo)簽的數(shù)據(jù)集。因為如果人們自己可以解決這個問題,那對他們來說,給你的機器學(xué)習(xí)算法準(zhǔn)備些標(biāo)簽也不是什么難事。
其次,你可以把人的水準(zhǔn)作為最優(yōu)錯誤率,即你的算法想要達(dá)到的目標(biāo)。吳恩達(dá)表示,定義好一個合理可行的最優(yōu)錯誤率,有助于加速團隊的開發(fā)進程,也可以幫你檢測算法是否有高偏差或者高方差的問題。
再者,這樣你就可以用你的人類直覺來做誤差分析。比如,如果你在做一個語音識別系統(tǒng),而你的模型給了錯誤的答案,那你可以試著去思考:一個人想要正確轉(zhuǎn)錄這個音頻會需要什么信息,由此去改進算法。雖然算法在越來越多人類不太擅長的任務(wù)上已經(jīng)超過了人類,你還是應(yīng)該盡量避免去研究這些問題。
總而言之,你應(yīng)該避免這些任務(wù),因為:獲取數(shù)據(jù)的標(biāo)簽更難、你不再能依賴人類直覺、很難確定最優(yōu)錯誤率。
概念 6:如何劃分?jǐn)?shù)據(jù)集
吳恩達(dá)也提出了劃分?jǐn)?shù)據(jù)集的方法,建議如下:
訓(xùn)練集:你只用它來訓(xùn)練算法,不做別的。
驗證集:用于調(diào)試超參、選擇并創(chuàng)建合適的特征、做誤差分析,基本上我們需要根據(jù)它來為算法做決策。
測試集:測試集用于評估你系統(tǒng)的性能,不能用于做決策。只在評估時使用,不做別的。
驗證集和測試集使你的團隊得以快速評估算法的性能,它們的目的是提供引導(dǎo),讓你為系統(tǒng)做出最正確的改進。
選擇驗證集和測試集時,吳恩達(dá)建議你考慮系統(tǒng)部署后你想要搞定的真實場景,使這兩個集合能如實反映該場景中的數(shù)據(jù)。如果你預(yù)期實際數(shù)據(jù)會和你當(dāng)下的訓(xùn)練數(shù)據(jù)有所不同,這一點就更為重要。比如,你訓(xùn)練時用的是普通的相機圖片,而以后你的系統(tǒng)作為一個手機應(yīng)用的一部分,只會收到手機圖片。如果你沒有足夠的手機圖片來訓(xùn)練系統(tǒng),你就會面臨這個問題。所以,你應(yīng)該選擇能反映未來真實目標(biāo)數(shù)據(jù)的樣例作為測試集,而不是你用來訓(xùn)練的數(shù)據(jù)。
同時,你應(yīng)該根據(jù)同一分布選取驗證集和測試集。否則,有可能你的團隊造出的東西在驗證集上效果很好,但在測試集上效果極差,而后者才是你最關(guān)注的的。
總結(jié):在本文中,你學(xué)到了《機器學(xué)習(xí)訓(xùn)練秘籍》中的六個概念。現(xiàn)在你知道為什么快速迭代很重要,為什么該用一個單值評估指標(biāo),誤差分析是干什么的,以及它為什么重要。同時,你也認(rèn)識了最優(yōu)錯誤率,明白了為什么應(yīng)該研究人類也能做好的問題。另外,你還了解了應(yīng)該使驗證集和測試集與實際場景數(shù)據(jù)相一致,以及這兩個集合應(yīng)該近似同一分布。希望本文讓你對這本書的概念有了初步的理解,這絕對是一本值得一讀的書。
-
人工智能
+關(guān)注
關(guān)注
1796文章
47666瀏覽量
240286 -
機器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8438瀏覽量
133084 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1209瀏覽量
24833
原文標(biāo)題:六大概念總結(jié)吳恩達(dá)新書:教你如何做好工程實踐?
文章出處:【微信號:aicapital,微信公眾號:全球人工智能】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論