2.1 進(jìn)行誤差分析(Carrying out error analysis)
從舉的例子中我理解這里的誤差分析,其實(shí)就是通過(guò)分析誤差因素來(lái)選擇優(yōu)化系統(tǒng)的正確方向。
所以總結(jié)一下,進(jìn)行錯(cuò)誤分析,你應(yīng)該找一組錯(cuò)誤樣本,可能在你的開(kāi)發(fā)集里或者測(cè)試集里,觀察錯(cuò)誤標(biāo)記的樣本,看看假陽(yáng)性(false positives)和假陰性(false negatives),統(tǒng)計(jì)屬于不同錯(cuò)誤類(lèi)型的錯(cuò)誤數(shù)量。在這個(gè)過(guò)程中,你可能會(huì)得到啟發(fā),歸納出新的錯(cuò)誤類(lèi)型,就像我們看到的那樣。如果你過(guò)了一遍錯(cuò)誤樣本,然后說(shuō),天,有這么多Instagram濾鏡或Snapchat濾鏡,這些濾鏡干擾了我的分類(lèi)器,你就可以在途中新建一個(gè)錯(cuò)誤類(lèi)型??傊?,通過(guò)統(tǒng)計(jì)不同錯(cuò)誤標(biāo)記類(lèi)型占總數(shù)的百分比,可以幫你發(fā)現(xiàn)哪些問(wèn)題需要優(yōu)先解決,或者給你構(gòu)思新優(yōu)化方向的靈感。
2.2 清除標(biāo)注錯(cuò)誤的數(shù)據(jù)(Cleaning up Incorrectly labeled data)
如果你發(fā)現(xiàn)你的數(shù)據(jù)有一些標(biāo)記錯(cuò)誤的樣本,你該怎么辦?
1、首先,深度學(xué)習(xí)算法對(duì)于訓(xùn)練集中的隨機(jī)錯(cuò)誤是相當(dāng)健壯的(robust)。只要你的標(biāo)記出錯(cuò)的樣本,只要這些錯(cuò)誤樣本離隨機(jī)錯(cuò)誤不太遠(yuǎn),有時(shí)可能做標(biāo)記的人沒(méi)有注意或者不小心,按錯(cuò)鍵了,如果錯(cuò)誤足夠隨機(jī),那么放著這些錯(cuò)誤不管可能也沒(méi)問(wèn)題,而不要花太多時(shí)間修復(fù)它們。
2、當(dāng)然你瀏覽一下訓(xùn)練集,檢查一下這些標(biāo)簽,并修正它們也沒(méi)什么害處。有時(shí)候修正這些錯(cuò)誤是有價(jià)值的,有時(shí)候放著不管也可以,只要總數(shù)據(jù)集總足夠大,實(shí)際錯(cuò)誤率可能不會(huì)太高。
3、深度學(xué)習(xí)算法對(duì)隨機(jī)誤差很健壯,但對(duì)系統(tǒng)性的錯(cuò)誤就沒(méi)那么健壯了。
最后我講幾個(gè)建議:
在構(gòu)造實(shí)際系統(tǒng)時(shí),通常需要更多的人工錯(cuò)誤分析,更多的人類(lèi)見(jiàn)解來(lái)架構(gòu)這些系統(tǒng)。
其次,不知道為什么,我看一些工程師和研究人員不愿意親自去看這些樣本,也許做這些事情很無(wú)聊,坐下來(lái)看100或幾百個(gè)樣本來(lái)統(tǒng)計(jì)錯(cuò)誤數(shù)量,但我經(jīng)常親自這么做。當(dāng)我?guī)ьI(lǐng)一個(gè)機(jī)器學(xué)習(xí)團(tuán)隊(duì)時(shí),我想知道它所犯的錯(cuò)誤,我會(huì)親自去看看這些數(shù)據(jù),嘗試和一部分錯(cuò)誤作斗爭(zhēng)。我想就因?yàn)榛诉@幾分鐘,或者幾個(gè)小時(shí)去親自統(tǒng)計(jì)數(shù)據(jù),真的可以幫你找到需要優(yōu)先處理的任務(wù),我發(fā)現(xiàn)花時(shí)間親自檢查數(shù)據(jù)非常值得,所以我強(qiáng)烈建議你們這樣做,如果你在搭建你的機(jī)器學(xué)習(xí)系統(tǒng)的話(huà),然后你想確定應(yīng)該優(yōu)先嘗試哪些想法,或者哪些方向。
2.3 快速搭建你的第一個(gè)系統(tǒng),并進(jìn)行迭代(Build your first system quickly, then iterate)
老師的意思就是,先別管現(xiàn)在是啥樣,系統(tǒng)能上就先上,然后再進(jìn)行不斷優(yōu)化。
1、快速搭好你的第一個(gè)系統(tǒng),然后開(kāi)始迭代。
2、快速設(shè)立開(kāi)發(fā)集和測(cè)試集還有指標(biāo),這樣就決定了目標(biāo)所在,如果你的目標(biāo)定錯(cuò)了,之后改也是可以的。但一定要設(shè)立某個(gè)目標(biāo),然后我建議你馬上搭好一個(gè)機(jī)器學(xué)習(xí)系統(tǒng)原型,然后找到訓(xùn)練集,訓(xùn)練一下,看看效果,開(kāi)始理解你的算法表現(xiàn)如何,在開(kāi)發(fā)集測(cè)試集,你的評(píng)估指標(biāo)上表現(xiàn)如何。當(dāng)你建立第一個(gè)系統(tǒng)后,你就可以馬上用到之前說(shuō)的偏差方差分析,還有之前最后幾個(gè)視頻討論的錯(cuò)誤分析,來(lái)確定下一步優(yōu)先做什么。
重要的是:機(jī)器學(xué)習(xí)算法應(yīng)用到新的應(yīng)用程序里,主要目標(biāo)是弄出能用的系統(tǒng),搭建快速而粗糙的實(shí)現(xiàn),然后用它做偏差/方差分析,用它做錯(cuò)誤分析,然后用分析結(jié)果確定下一步優(yōu)先要做的方向。
2.4 使用來(lái)自不同分布的數(shù)據(jù),進(jìn)行訓(xùn)練和測(cè)試(Training and testing on different distributions)
2.5 數(shù)據(jù)分布不匹配時(shí),偏差與方差的分析(Bias and Variance with mismatched data distributions)
定義一組新的數(shù)據(jù)訓(xùn)練-開(kāi)發(fā)集。
2.6 處理數(shù)據(jù)不匹配問(wèn)題(Addressing data mismatch)
2.7 遷移學(xué)習(xí)(Transfer learning)
所謂的遷移學(xué)習(xí),指的是在A上學(xué)習(xí)得到的模型應(yīng)用到B上。
2.8 多任務(wù)學(xué)習(xí)(Multi-task learning)
2.9 什么是端到端的深度學(xué)習(xí)?(What is end-to-end deep learning?)
2.10 是否要使用端到端的深度學(xué)習(xí)?(Whether to use end-to-end learning?)
第七課:機(jī)器學(xué)習(xí)(ML)策略(2)
Deep Learning in Health Care slides (by Pranav)