學(xué)霸筆記!吳恩達(dá)新書《機(jī)器學(xué)習(xí)訓(xùn)練秘籍》六大要點(diǎn)總結(jié)
帶你學(xué)會(huì)選擇問題、分割數(shù)據(jù)集、迭代模型,又快又好地構(gòu)建一個(gè)機(jī)器學(xué)習(xí)系統(tǒng)。
乾明 編譯整理
量子位 報(bào)道 | 公眾號(hào) QbitAI
如何讀懂吳恩達(dá)的《機(jī)器學(xué)習(xí)訓(xùn)練秘籍》?
學(xué)霸的筆記來了!
近日,一位名叫Niklas Donges的工程師小哥發(fā)表了一篇博客文章,提煉出了《機(jī)器學(xué)習(xí)訓(xùn)練秘籍》中的六大要點(diǎn)。
這本書讀起來并不那么容易,不僅需要掌握理論知識(shí),還需要一定的實(shí)戰(zhàn)經(jīng)驗(yàn)。
跟著這份要點(diǎn),你能學(xué)到如何選擇問題、分割數(shù)據(jù)集、迭代模型等等,來又快又好地構(gòu)建一個(gè)機(jī)器學(xué)習(xí)系統(tǒng)。
量子位將主要內(nèi)容編譯如下,希望能夠?yàn)槟銕韱l(fā)。
迭代、迭代、迭代
在整本書中,吳恩達(dá)都在強(qiáng)調(diào),機(jī)器學(xué)習(xí)是一個(gè)迭代的過程,快速迭代非常重要。
與其花大量時(shí)間考慮如何構(gòu)建一個(gè)完美的機(jī)器學(xué)習(xí)系統(tǒng),還不如盡快構(gòu)建一個(gè)簡單的原型。
在幾天內(nèi)構(gòu)建第一個(gè)原型,然后就會(huì)看到新的線索,告訴你該選擇什么樣的方向去改進(jìn)原型的性能。
在下一次迭代中,可以根據(jù)這些線索改進(jìn)系統(tǒng),并構(gòu)建系統(tǒng)的下一個(gè)版本。一次接一次,循環(huán)往復(fù)。
吳恩達(dá)說,迭代的速度越快,原型取得的進(jìn)步就越大。
其他的幾個(gè)要點(diǎn),都是基于這一原則。
不過要注意,這一原則只適用于構(gòu)建人工智能應(yīng)用程序解決世界問題的人,對于想要在這個(gè)領(lǐng)域進(jìn)行研究的人,僅供參考。
使用單一的評(píng)估指標(biāo)
為什么應(yīng)該選擇單一的評(píng)估指標(biāo),理由非常簡單:能夠快速對算法性能表現(xiàn)進(jìn)行評(píng)估,進(jìn)而更快地進(jìn)行迭代。
使用多個(gè)指標(biāo)進(jìn)行評(píng)估,只會(huì)讓這個(gè)過程變得更困難。
假設(shè)有兩個(gè)算法,一個(gè)準(zhǔn)確率(precision)為94%,召回率(recall )為89% 。另一個(gè)準(zhǔn)確率為88% ,召回率為95% 。
像這樣不用單一指標(biāo),就很難判斷孰優(yōu)孰劣,需要花一些時(shí)間來評(píng)估到底哪一個(gè)算法更適合你要解決的問題。
而且,在后面的每次迭代中,都會(huì)在這個(gè)流程上損失大量的時(shí)間。
如果使用的是單一的評(píng)估指標(biāo),比如精度或f1評(píng)分,就可以根據(jù)性能對所有的算法或者模型進(jìn)行排序,并快速?zèng)Q定哪一個(gè)最有效。
改進(jìn)評(píng)估過程的另一種方法,是將幾個(gè)指標(biāo)合并成一個(gè)指標(biāo),比如,取多個(gè)誤差指標(biāo)的平均值。
但是,與機(jī)器學(xué)習(xí)有關(guān)的問題解決方案,需要滿足的不止一個(gè)指標(biāo),例如說,除了要考慮誤差之外,還都要有足夠短的運(yùn)行時(shí)間。
吳恩達(dá)解釋說,應(yīng)該定義一個(gè)可以“可以接受的”運(yùn)行時(shí)間,這可以快速排除速度太慢的算法,并根據(jù)單一評(píng)估指標(biāo)來找出好的算法。
簡而言之,單一評(píng)估指標(biāo)可以快速評(píng)估算法表現(xiàn),加快迭代速度。
誤差分析至關(guān)重要
誤差分析,是查看算法輸出不正確的樣例的過程。想象一下,一個(gè)貓鑒別器,將鳥類誤認(rèn)為是貓,你可能會(huì)有好幾種改進(jìn)的方法。
通過適當(dāng)?shù)恼`差分析,可以對這些改進(jìn)的方法進(jìn)行評(píng)估,看看它們能否提高系統(tǒng)的性能。而不必花幾個(gè)月的時(shí)間來實(shí)現(xiàn)這些方法,到最后才發(fā)現(xiàn)沒用。
這能夠幫你做出更好的決定。
如果所有被鑒別器錯(cuò)誤分類的圖像中只有9%是鳥類,那就不用專門針對鳥類圖像進(jìn)行優(yōu)化了,因?yàn)樘嵘俣嘧疃嘁膊怀^這9%的誤差。
此外,誤差分析也能對幾個(gè)可以同時(shí)進(jìn)行的改進(jìn)方法進(jìn)行評(píng)估。
首先,創(chuàng)建一個(gè)電子表格,在每一行填入每個(gè)錯(cuò)誤分類的圖像,在每一列,填入改進(jìn)方法。
之后,檢查每一個(gè)被錯(cuò)誤分類的圖像和標(biāo)記,看看正確的分類是什么。
通過電子表格可以看出,哪種方法能更好地改進(jìn)算法。比如,使用“方法1”,系統(tǒng)可以正確分類40%的錯(cuò)誤分類圖像,“方法2”12% ,“方法3”只有9% 。基于此,可以得出結(jié)論,方法1是應(yīng)該進(jìn)行的改進(jìn)。
通常情況下,只要一看這些樣本,如何改進(jìn)算法就會(huì)一目了然。
明確定義最優(yōu)誤差率
最優(yōu)誤差率,有助于推進(jìn)后續(xù)的迭代步驟。在統(tǒng)計(jì)學(xué)中,它也經(jīng)常被稱為貝葉斯誤差率(Bayes error rate)。
假設(shè)你正在構(gòu)建一個(gè)語音-文本轉(zhuǎn)換系統(tǒng),其中19%的音頻文件有顯著的背景噪音,哪怕是人類都沒法聽清楚。
這種情況下,即使是最好的人工智能系統(tǒng),也可能會(huì)有大約19%的誤差。
如果處理最優(yōu)誤差率接近0%的問題,人工智能系統(tǒng)也應(yīng)該以0誤差為目標(biāo)。
它還可以幫助你檢測算法是否受到了高偏差或高方差的影響,這有助于接下來改進(jìn)算法。
但是我們?nèi)绾沃雷顑?yōu)誤差率是多少呢?對于人類擅長的任務(wù),可以將系統(tǒng)的性能與人類進(jìn)行比較,從而估算出最優(yōu)誤差率。
在其他情況下,通常很難定義一個(gè)最優(yōu)誤差率。所以,應(yīng)該專注于人類能夠做的很好的問題。
解決人類能做得很好的問題
在整本書中,吳恩達(dá)一直建議大家研究人類能做得很好的問題,比如語音識(shí)別、圖像分類、物體檢測等等,也多次解釋了為什么。
首先,獲取或創(chuàng)建一個(gè)有標(biāo)簽的數(shù)據(jù)集比較容易,如果人們可以自己解決問題,他們可以直接為學(xué)習(xí)算法提供高精度的標(biāo)簽。
第二,可以使用人的表現(xiàn)作為算法的最優(yōu)誤差率。吳恩達(dá)解釋說,定義了合理且可實(shí)現(xiàn)的最優(yōu)誤差有助于推動(dòng)團(tuán)隊(duì)的進(jìn)步。它還可以檢測算法是否存在高偏差或高方差。
第三,能夠?qū)θ祟愔庇X進(jìn)行誤差分析。如果你在構(gòu)建一個(gè)語音識(shí)別系統(tǒng),對輸入進(jìn)行了錯(cuò)誤分類,你可以試著去理解,人類會(huì)根據(jù)哪些信息來獲得正確的分類,然后使用這些信息改進(jìn)算法。
盡管算法在越來越多的人類無法完成的任務(wù)上超越了人類,但還是應(yīng)該盡量避開這些任務(wù)。
這使得獲取數(shù)據(jù)標(biāo)簽變得更加困難,不能再依靠人類的直覺,也很難知道最優(yōu)誤差率是多少。
如何拆分?jǐn)?shù)據(jù)集
任務(wù)選定了, 也知道應(yīng)該如何迭代模型了,該怎么選擇數(shù)據(jù)集呢?
吳恩達(dá)還提出了分割數(shù)據(jù)集的方法。他的建議如下:
- 訓(xùn)練集:只是來訓(xùn)練算法,不再用于其他用途。
- 驗(yàn)證集:這個(gè)數(shù)據(jù)集用于進(jìn)行超參數(shù)調(diào)整,選擇和創(chuàng)建合適的特性,以及進(jìn)行誤差分析。它基本上就是用來決定算法的。
- 測試集:用于評(píng)估系統(tǒng)的性能,但不用于做決策。 它只是用來評(píng)估的,沒有別的用途。
驗(yàn)證集和測試集用于快速評(píng)估算法的性能。 它們的目的是指導(dǎo)你對系統(tǒng)進(jìn)行最重要的更改。
吳恩達(dá)建議,選擇驗(yàn)證和測試數(shù)據(jù)集的時(shí)候一定要慎重。
這些數(shù)據(jù),一定要與系統(tǒng)要解決的問題有很高的關(guān)聯(lián)性,這樣才能夠幫助系統(tǒng)進(jìn)一步優(yōu)化。
尤其是系統(tǒng)將要處理的數(shù)據(jù)與訓(xùn)練過程中使用的數(shù)據(jù)差別較大的時(shí)候,一定要注意這一點(diǎn)。
比如說,使用普通相機(jī)拍攝出來的照片訓(xùn)練模型,但之后這個(gè)模型要來處理智能手機(jī)拍攝出來照片。但又沒有足夠的智能手機(jī)拍攝的照片當(dāng)做訓(xùn)練集。
這時(shí),就應(yīng)該使用智能手機(jī)拍攝的照片當(dāng)做驗(yàn)證集與測試集,來迭代模型。
在測試集中,應(yīng)該選擇那些能夠準(zhǔn)確反映系統(tǒng)表現(xiàn)的數(shù)據(jù),而不是用來訓(xùn)練的數(shù)據(jù)。
此外,在選擇驗(yàn)證集和測試集數(shù)據(jù)的時(shí)候,要注意一致性。
如果出現(xiàn)系統(tǒng)在驗(yàn)證集上表現(xiàn)良好,在測試數(shù)據(jù)上表現(xiàn)極差的情況,就麻煩了。
傳送門
《機(jī)器學(xué)習(xí)訓(xùn)練秘籍》中文版:
https://accepteddoge.com/machine-learning-yearning-cn/docs/ch58/
博客原文:
https://towardsdatascience.com/6-concepts-of-andrew-ngs-book-machine-learning-yearning-abaf510579d4
—?完?—
誠摯招聘
量子位正在招募編輯/記者,工作地點(diǎn)在北京中關(guān)村。期待有才氣、有熱情的同學(xué)加入我們!相關(guān)細(xì)節(jié),請?jiān)诹孔游还娞?hào)(QbitAI)對話界面,回復(fù)“招聘”兩個(gè)字。
量子位?QbitAI · 頭條號(hào)簽約作者
?’?’ ? 追蹤AI技術(shù)和產(chǎn)品新動(dòng)態(tài)
- 性能超越何愷明Mask R-CNN!華科碩士生開源圖像分割新方法2019-03-05
- 微信AI拿下NLP競賽全球冠軍,“二孩”智言團(tuán)隊(duì)的實(shí)習(xí)生立功了2019-03-01
- 模型參數(shù)太多怎么辦?用谷歌高效訓(xùn)練庫GPipe啊2019-03-05
- 蔚來2018年平均每天虧掉2641萬,車輛交付預(yù)期環(huán)比腰斬2019-03-06



