機(jī)器學(xué)習(xí)策略簡介
為什么是機(jī)器學(xué)習(xí)?
更為高效的構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng)的方法。
什么是機(jī)器學(xué)習(xí)策略?

如果例子的效果不理想,你的腦海里會涌現(xiàn)出很多提升準(zhǔn)確率的思路:
1.收集更多的數(shù)據(jù)
2.增大訓(xùn)練樣本多樣性
3.使用梯度下降法訓(xùn)練更長的時間
4.換一種優(yōu)化算法,比如Adam算法
5.嘗試更復(fù)雜或更簡單的神經(jīng)網(wǎng)絡(luò)
6.嘗試dropout算法
7.L2正則化
8.改變網(wǎng)絡(luò)架構(gòu),比如更換激活函數(shù);改變隱藏單元數(shù)量等
所以要學(xué)習(xí)一些基本思路,也就是分析機(jī)器學(xué)習(xí)問題的方法,這些方法會讓你避免南轅北轍,總結(jié)經(jīng)驗(yàn)教訓(xùn),希望這些可以讓深度學(xué)習(xí)系統(tǒng)盡快達(dá)到你的期望值。
第二課:正交
建立機(jī)器學(xué)習(xí)系統(tǒng)的挑戰(zhàn)之一是:有太多可以嘗試和改變的東西,例如調(diào)整超參數(shù),高效的機(jī)器學(xué)習(xí)人員應(yīng)該明白需要調(diào)整什么來達(dá)到一個預(yù)期的效果。
我們稱這一過程為正交化。

電視機(jī)設(shè)計(jì)的時候,確保每一個按鈕只進(jìn)行一個參數(shù)的調(diào)整從而讓電視屏幕的調(diào)整變得更簡單。汽車設(shè)計(jì)的時候,也是一個操縱桿控制旋轉(zhuǎn)角,一個控制速度。
通過使用正交化,正交化是指(兩個變量成90度角),通過正交化控制,能與你真正想要控制的事物保持一致,它讓調(diào)整相應(yīng)按鈕變得更簡單。
這和機(jī)器學(xué)習(xí)有什么關(guān)系呢?
為保證有監(jiān)督機(jī)制的學(xué)習(xí)系統(tǒng)良好的運(yùn)行,通常你需要調(diào)整系統(tǒng)按鈕,確保四件事準(zhǔn)確無誤。
1.通常確保至少訓(xùn)練組運(yùn)行良好,因此,訓(xùn)練組的情況需要進(jìn)行一些可行性評估(與人類的一些性能進(jìn)行比較)
2.開發(fā)組運(yùn)行良好
3.測試組運(yùn)行良好
4.在代價函數(shù)的測試?yán)镞\(yùn)行良好,因?yàn)榻Y(jié)果會影響系統(tǒng)在實(shí)際情況中的表現(xiàn)
類比于電視機(jī)畫面調(diào)節(jié),如果你的算法不適合訓(xùn)練集的代價函數(shù),你需要一個旋鈕去對應(yīng)調(diào)整以確保優(yōu)化你的算法,使其適用于訓(xùn)練組。
如果算法對訓(xùn)練集的擬合效果不好,這個旋鈕可能用來訓(xùn)練一個更大的網(wǎng)絡(luò),或者你想更換一種優(yōu)化算法比如Adam算法。
相反,如果你發(fā)現(xiàn)算法對交叉驗(yàn)證集的擬合結(jié)果不好,那么就需要另外一套單獨(dú)的旋鈕來調(diào)整。比如正則化或者增加訓(xùn)練集。
如果在測試集上表現(xiàn)不好,你可以增大交叉驗(yàn)證集的數(shù)量。
如果算法仍然不能給你愉快的體驗(yàn),這意味著你可能需要返回去調(diào)整你的開發(fā)集或者代價函數(shù)。
當(dāng)我訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,我傾向于不提前停止訓(xùn)練,因?yàn)樘崆巴V褂?xùn)練是一個同時會影響你擬合訓(xùn)練集里的效果的操作,它也經(jīng)常被用來提高你的開發(fā)集里的執(zhí)行效果,所以這是一個更少正交化的按鈕,因?yàn)樗瑫r影響了兩件事。所以當(dāng)你有更多正交化控制,不采用這種方法會讓你在調(diào)整網(wǎng)絡(luò)的過程中更容易。
如何診斷是什么瓶頸限制了系統(tǒng)的性能,同時找到控制著這些特定方面的旋鈕以通過調(diào)整它們來調(diào)整整個系統(tǒng)從而提升系統(tǒng)性能?
第三課:單號評估指標(biāo)
無論你是選擇超參調(diào)優(yōu)、選擇不同的機(jī)器學(xué)習(xí)算法,抑或是構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng)時嘗試不同的配置項(xiàng),你都會發(fā)現(xiàn),如果你有單一的量化評估指標(biāo),可以讓你知道新的方法比上一次更好還是更糟,那么整個進(jìn)程將會加快很多。
所以當(dāng)團(tuán)隊(duì)啟動一個機(jī)器學(xué)習(xí)項(xiàng)目時,我建議設(shè)置一個單一的量化評估指標(biāo)。
精準(zhǔn)率就是:它識別出是貓的集合中有多少百分比真的是貓?
召回率是指:對于所有是貓的圖片,你的分類器有多少百分比可以正確的識別出來,即多少比率的真貓被正確識別出來了?
你常常需要在這兩者之間做權(quán)衡,需要同時關(guān)注這兩個指標(biāo)。
所以使用精準(zhǔn)率和召回率來評估分類器,看起來應(yīng)該是合理的。問題就在于把它們作為評估指標(biāo)時,不能確定哪個分類器更好了。當(dāng)有兩個評價指標(biāo)時,快速找出超參數(shù)最好的那一個會變得很困難。
所以選擇一個新指標(biāo),同時兼顧精準(zhǔn)率和召回率。
F1分?jǐn)?shù)。你可以把它理解為精準(zhǔn)率P和召回率R的一種平均值,它是P和R的調(diào)和平均數(shù)。

很多機(jī)器學(xué)習(xí)團(tuán)隊(duì)都會與一個很好的驗(yàn)證集來評估精準(zhǔn)率和召回率和一個單一量化評估指標(biāo),有時候我們稱之為single row number。這個評估指標(biāo)可以幫助你快速判斷哪個分類器更好。
所以一個好的驗(yàn)證集和單一量化評估指標(biāo)可以提高迭代的效率,它加速整個流程,讓你的機(jī)器學(xué)習(xí)算法不斷改進(jìn)。
除了追蹤4各不同地區(qū)的表現(xiàn),應(yīng)該同時關(guān)注它們的平均值,平均表現(xiàn)是個合理的單一量化評估指標(biāo),通過比較平均值可以看出哪個算法的錯誤率最低。即你必須選擇一個算法并且不斷進(jìn)行迭代而改進(jìn)它。

所以在機(jī)器學(xué)習(xí)系統(tǒng)的設(shè)計(jì)過程中,通常是現(xiàn)有一個想法,然后實(shí)現(xiàn)它,然后你想要知道你的想法是否奏效。所以要學(xué)著找到一個單一量化評估指標(biāo),可以更好的讓你的團(tuán)隊(duì)做出快速的決策。
如何效率的設(shè)置評估指標(biāo)?如何設(shè)置優(yōu)化和滿意度矩陣?
第四課:滿意度和優(yōu)化指標(biāo)
將所有你關(guān)心的方方面面組合成一個用行索引就能判別的單一指標(biāo)不總是一件容易的事,因此,某些情況下建立滿足指標(biāo)和優(yōu)化指標(biāo),是很有用的。

你可以把準(zhǔn)確率和運(yùn)行時間組合成一個整體評價指標(biāo)。像這種就像把兩者的進(jìn)行線性加權(quán)的方式有些刻意。所以你還可以:
選擇一個分類器,它在確保運(yùn)行時間的前提下提供最大準(zhǔn)確率,例如甄別時間必須小于100ms。這時,準(zhǔn)確率就變成優(yōu)化指標(biāo),因?yàn)槟阆胍畲蠡瘻?zhǔn)確率,運(yùn)行時間是滿足指標(biāo)。
所以這種方式對準(zhǔn)確率和運(yùn)行時間進(jìn)行權(quán)衡或者說通盤考慮相當(dāng)合理。
通過定義滿意指標(biāo)和優(yōu)化指標(biāo)。你就有了挑選最佳分類器的明確方向。
更一般的說,如果你有N個關(guān)心的指標(biāo),有時候選擇其中一個加以優(yōu)化是個合理的策略,那么剩下的N-1個都是滿足指標(biāo),意味著它們只要達(dá)到某個閾值就可以了。
對于觸發(fā)詞,一個合理的做法可能是最大化準(zhǔn)確度,也就是當(dāng)有人說了這些觸發(fā)詞的時候,最大化設(shè)備被喚醒的幾率,并在此前提下,確保24小時內(nèi)只有一次不是被觸發(fā)詞喚醒。這個例子中 準(zhǔn)確率是優(yōu)化指標(biāo),24小時內(nèi)被其他原因隨機(jī)喚醒的次數(shù)是滿足指標(biāo)。你必須確保24小時內(nèi)只有最多一次被隨機(jī)喚醒。
總結(jié):如果你同時關(guān)心多項(xiàng)指標(biāo),你可以將其中一項(xiàng)設(shè)為優(yōu)化指標(biāo),使其盡可能表現(xiàn)得好,將另外一項(xiàng)或多項(xiàng)設(shè)為滿足指標(biāo)確保其滿足要求,大多數(shù)情況下它們都會優(yōu)于最低標(biāo)準(zhǔn)。這樣一來你就會有一個幾乎自動的快速評價模型和選擇最佳模型的方法。
現(xiàn)在那些評價指標(biāo)必須在訓(xùn)練集/開發(fā)集/測試集上評估計(jì)算,那么另一件你需要做的就是建立訓(xùn)練集/開發(fā)集/測試集,那么建立訓(xùn)練集/開發(fā)集/測試集的指導(dǎo)原則是?
第五課:訓(xùn)練/開發(fā)/測試分配
如何分配訓(xùn)練/開發(fā)/測試集將會對構(gòu)建機(jī)器學(xué)習(xí)應(yīng)用的進(jìn)展中產(chǎn)生巨大的影響。
如何設(shè)置開發(fā)集和測試集?
機(jī)器學(xué)習(xí)的工作流程是你嘗試了很多的想法,在訓(xùn)練集上訓(xùn)練不同的模型,然后使用開發(fā)集來評估不同的想法,并選擇一個。并且保持創(chuàng)新,不端提高模型在開發(fā)集上的表現(xiàn)性能,直到最后你有一個比較滿意的結(jié)果,然后你在測試集上評估它們。
隨機(jī)選擇四個國家作為開發(fā)集,剩下的作為測試集是一個糟糕的想法。因?yàn)槟愕拈_發(fā)集和測試集來自不同的分布。我的建議是讓你的開發(fā)集和測試集來自相同的分布。

所以記住一個重要的地方:
設(shè)定開發(fā)集和評估方法時,就像是設(shè)置了一個目標(biāo)然后告訴團(tuán)隊(duì)你們的目標(biāo)是什么,一旦確定了開發(fā)集和評估方法,團(tuán)隊(duì)就會嘗試各種不同的方法并進(jìn)行實(shí)驗(yàn),很快利用開發(fā)集和評估方法來評估選擇器并選取最好的一個。所以機(jī)器學(xué)習(xí)很擅長多線執(zhí)行,然后根據(jù)各種嘗試來不斷接近目標(biāo),在這種開發(fā)集和評估方法上做的更好。
因此在我們在設(shè)置開發(fā)集和測試集時要注意,你的團(tuán)隊(duì)可能用了幾個月的時間靠攏開發(fā)集,當(dāng)你在測試集上運(yùn)行的時候,可能數(shù)據(jù)結(jié)構(gòu)不同。
所以讓測試集和開發(fā)集來自不同的分布就想讓你的團(tuán)隊(duì)用數(shù)個月瞄準(zhǔn),但是最后你說,稍等,我要換個目標(biāo),我們瞄準(zhǔn)這里,卻要打那里。。。
所以為了避免這種情況的發(fā)生,我建議你們將所有數(shù)據(jù)隨機(jī)打亂然后分為開發(fā)和測試集,這樣開發(fā)和測試集都擁有了八個地區(qū)的數(shù)據(jù),這樣開發(fā)和測試集就來自相同的分布了,分布在你擁有的所有數(shù)據(jù)中。
另一個例子:
在中產(chǎn)貸款數(shù)據(jù)做的預(yù)測貸款是否成功的模型被用在低收入?yún)^(qū)。。。

所以我推薦的設(shè)置開發(fā)集和測試集的方法是:
選擇的開發(fā)集和測試集能夠反映出將來預(yù)計(jì)得到的數(shù)據(jù),和你認(rèn)為重要的數(shù)據(jù),特別地,這里的開發(fā)和測試集應(yīng)該來自相同的分布。
所以無論未來你需要預(yù)測什么樣的數(shù)據(jù),一旦你試著獲取這些數(shù)據(jù),無論這些數(shù)據(jù)是什么,直接把它同時放進(jìn)你的開發(fā)和測試集中,因?yàn)檫@樣你就瞄準(zhǔn)了你想要瞄準(zhǔn)的目標(biāo)。團(tuán)隊(duì)也可以有效地開發(fā)在同一目標(biāo)上表現(xiàn)良好。

如何設(shè)置訓(xùn)練集?
總結(jié):設(shè)置開發(fā)集和檢驗(yàn)方法直接決定了你的目標(biāo),將開發(fā)和測試集取在同一分布上,你才真正瞄準(zhǔn)了你和你團(tuán)隊(duì)的目標(biāo),你選擇訓(xùn)練集的方法會影響你擊中目標(biāo)的精度,我們后面討論這個。
第六集:開發(fā)和測試集的大小
在深度學(xué)習(xí)大數(shù)據(jù)時代,我們訓(xùn)練數(shù)據(jù)往往不需要20%-30%的數(shù)據(jù)量作為開發(fā)和測試集,往往1%就夠了,訓(xùn)練集的比例往往會變得更高。

測試集應(yīng)該多大呢?
測試集的作用是在系統(tǒng)開發(fā)完成后,幫助我們評估最終系統(tǒng)的性能,因此測試集的大小只要足夠能保證對系統(tǒng)整體性能評估的高置信度即可。因此,除非你需要對最終系統(tǒng)性能非常精確的測量,否則你的測試集上并不需要上百萬個樣例,或許你認(rèn)為1萬個樣例就可以提供足夠的置信度來評估性能,抑或是10萬個。
在某些場景,可能你并不需要對最終系統(tǒng)整體性能的評估具有很高的置信度,或許你只需要訓(xùn)練集和開發(fā)集,那么沒有測試集也是可以的。
即如果我們只關(guān)心有用于訓(xùn)練的數(shù)據(jù),和用于調(diào)優(yōu)的數(shù)據(jù),然后直接上線最終的系統(tǒng),而不太關(guān)心它的實(shí)際性能,我認(rèn)為也可以只使用訓(xùn)練集和開發(fā)集而不使用測試集。

我覺得有一個測試集更安心,你可以在上線前使用測試集得到對系統(tǒng)性能的無偏估計(jì)。但如果你有一個很大的開發(fā)集,你相信不會對開發(fā)集過擬合的太厲害,那么只使用測試集和訓(xùn)練集,也不是完全不合理。
總結(jié)一下:現(xiàn)在的趨勢是使用更多的數(shù)據(jù)作為訓(xùn)練集,使用較少的數(shù)據(jù)作為開發(fā)集和測試集。
經(jīng)驗(yàn)法則是:確保開發(fā)集的大小足以達(dá)到其目的,也就是幫助我們評估不同的算法;測試集的目的是對最終的分類器進(jìn)行評估,你只需要讓測試集 的大小滿足這一目的即可。
事實(shí)證明,有時,在機(jī)器學(xué)習(xí)問題的某個方面,您可能希望更改評估指標(biāo),或更改您的開發(fā)和測試集。 當(dāng)你想要這樣做時?
第八課:如何更改開發(fā)/測試集和指標(biāo)
確定了你的團(tuán)隊(duì)要瞄準(zhǔn)的靶子,可有時候,項(xiàng)目進(jìn)行了一半,你會發(fā)現(xiàn)靶子放錯了位置,這時候就應(yīng)該移動你的靶子。
盡管算法A具有更小的誤差,但是它會誤識別色情圖片,所以相對于B,A就不是一個好算法。
當(dāng)你的評估指標(biāo)無法正確的對算法的優(yōu)劣進(jìn)行排序時,這時你應(yīng)該修改評估指標(biāo),可能也要修改開發(fā)集或測試集。
例如,在計(jì)算精確率時,將色情圖片賦予一個比較大的錯誤權(quán)重。

即當(dāng)你發(fā)現(xiàn)無法對算法的優(yōu)劣給出一個正確的排序時,那么就需要考慮定義一個新的評估指標(biāo),評估指標(biāo)的目的是為了能夠準(zhǔn)確的告訴你給出兩個分類器,哪一個更適合你的應(yīng)用?
重點(diǎn)是:如果你對原有的誤差指標(biāo)不滿意,那就不要將就著使用這個你不滿意的指標(biāo),而是定義一個新的指標(biāo),使其能夠更好的反應(yīng)你的偏好,以符合你對更好的算法的定義。
我們討論了如何定義一個指標(biāo)來評估分類器,我們定義了一個指標(biāo)來對分類器進(jìn)行更好的排序,以區(qū)別它們在區(qū)分色情圖片上的不同水平,這其實(shí)就是正交化思想的一個例子。
我認(rèn)為應(yīng)該將機(jī)器學(xué)習(xí)問題分解為獨(dú)立的步驟,第一步是確定一個指標(biāo),以衡量分類器在你的目標(biāo)上的性能,然后我再單獨(dú)考慮,如何在這個指標(biāo)上得到更好的性能。

所以兩個步驟可以看做是:
1.擺放靶子,即確定你要瞄準(zhǔn)的地方
2.瞄準(zhǔn)和射擊靶子,有時可能需要修改神經(jīng)網(wǎng)絡(luò)所優(yōu)化的代價函數(shù)J
另一個例子:
在評估時,開發(fā)集和測試集中都是非常精美、高分辨率或取景很好的圖片,而你的用戶上傳的確實(shí)不那么專業(yè)的,比較模糊的...

這種情況下的指導(dǎo)方針是:
如果在你的指標(biāo)上以及在當(dāng)前開發(fā)集和測試集上的分布表現(xiàn)良好,不能對應(yīng)于在你關(guān)心的應(yīng)用場景下也表現(xiàn)的很好,這時就需要修改指標(biāo)和/或開發(fā)集和測試集。讓你的數(shù)據(jù)能夠更好的反應(yīng)實(shí)際上你關(guān)心的數(shù)據(jù)的情況。
我的建議是:即便你無法定義一個完美的評估指標(biāo)和開發(fā)集,你也應(yīng)該盡快將它們確定下來,以此來驅(qū)動你們團(tuán)隊(duì)的迭代速度,如果之后發(fā)現(xiàn)選的不好,或者你有了新的想法,你完全可以再重新修改。對于任何團(tuán)隊(duì)和個人,我不建議在沒有任何評價指標(biāo)和開發(fā)集的情況下進(jìn)行長時間的開發(fā),因?yàn)檫@實(shí)際上會降低你們團(tuán)隊(duì)進(jìn)行迭代和改善算法的效率。
設(shè)立一個明確的目標(biāo),從而能更有效率地朝著改善性能的方向進(jìn)行迭代!
第八課:人類行為表現(xiàn)?
將機(jī)器學(xué)習(xí)系統(tǒng)與人類行為表現(xiàn)進(jìn)行比較,兩個原因:
1.隨著深度學(xué)習(xí)的發(fā)展,機(jī)器學(xué)習(xí)算法的效率不斷提高,使它應(yīng)用在很多新領(lǐng)域,算法和人相比也更有競爭力
2.在某些領(lǐng)域,用機(jī)器學(xué)習(xí)解決問題的效率比用人工解決問題的效率更高
機(jī)器學(xué)習(xí)算法的效果逼近但是從來不會超越一個理論值,這稱為貝葉斯最優(yōu)方差,所以貝葉斯最優(yōu)方差就是最小的理論誤差值。這就是用從x到y(tǒng)的任何函數(shù)映射超過一定的準(zhǔn)確度。

貝葉斯最優(yōu)誤差、貝葉斯最佳誤差、貝葉斯錯誤
簡而言之就是:從x到y(tǒng)映射的最好的理論函數(shù),那是永遠(yuǎn)無法被超越的。機(jī)器學(xué)習(xí)算法的準(zhǔn)確度進(jìn)步非??欤钡侥愠饺祟惐憩F(xiàn),就會慢下來。我認(rèn)為有兩個原因:
1.人類級別的表現(xiàn),在許多任務(wù)中離貝葉斯最優(yōu)誤差不遠(yuǎn),所以超越人類表現(xiàn)之后沒有那么多的改善空間。
2.只要你的表現(xiàn)還不如人類水平,那么實(shí)際上你可以用某些工具來提高,而當(dāng)你超越人類水平以后,就很難使用工具來提高了
當(dāng)算法不如人類表現(xiàn)時,可以采取的策略:

1.對于人類擅長的任務(wù),只要機(jī)器學(xué)習(xí)算法比人類糟糕,你就可以從人類得到數(shù)據(jù)標(biāo)記,這樣你就有更多的數(shù)據(jù)以滿足你的學(xué)習(xí)算法。
2.手動誤差分析,只要人類表現(xiàn)還優(yōu)于算法,你可以讓人看看你的算法算錯的例子,然后理解為什么人可以做到,但是算法卻搞錯了
3.你也可以得到更好的偏差分析和方差
而一旦你的算法超過人類表現(xiàn),這三個策略將變得很難使用。
為什么機(jī)器學(xué)習(xí)算法是真的很出色于試圖復(fù)制人類擅長的任務(wù)并漸漸趕上或也許略微超過人類,尤其是當(dāng)你直到什么是偏差和方差,知道人類如何勝任一項(xiàng)任務(wù)能幫助你更好地理解這一問題。
你應(yīng)該如何嘗試減少偏差和方差?
第九課:可避免的偏差
有些時候你不希望算法的效果好過頭,如果你知道人類的水準(zhǔn)是什么程度的話,那么就知道了算法什么樣的表現(xiàn)算是好但是沒有過頭。

對于人類和訓(xùn)練集上的表現(xiàn)差異很大的情況,在消除偏差和方差的工具兩者之中,我推薦重點(diǎn)消除偏差,可以嘗試訓(xùn)練更大的神經(jīng)網(wǎng)絡(luò),或者訓(xùn)練更長時間,從而提升模型在訓(xùn)練集上的表現(xiàn)。
對于人類和訓(xùn)練集上的表現(xiàn)差異很小的情況,在消除偏差和方差的工具兩者之中,我推薦重點(diǎn)消除方差,可以嘗試使用正則化的方法,來使開發(fā)集上的誤差向訓(xùn)練集上的誤差靠近。
我們可以把人類水準(zhǔn)的錯誤率看作是貝葉斯最優(yōu)誤差的代理變量或是估計(jì)值。在計(jì)算機(jī)視覺任務(wù)中,這個代理變量是合理的,因?yàn)槿祟惿瞄L視覺的任務(wù), 所以人類能達(dá)到的水準(zhǔn)也許和貝葉斯誤差相差不大。從定義上說,人類誤差必然是大于貝葉斯誤差的,因?yàn)闆]有任何誤差能小于貝葉斯誤差,但是人類可以做到和貝葉斯誤差相比差距不大。
人類誤差或者貝葉斯誤差會給我們一個指導(dǎo):改進(jìn)的側(cè)重點(diǎn)可能是減少方差或是減少偏差。
命名:貝葉斯誤差和訓(xùn)練集上的誤差稱為可避免的誤差,所以你可能想改進(jìn)模型在訓(xùn)練集上的表現(xiàn),直到誤差小到可以與貝葉斯誤差齊平。
這是模型在訓(xùn)練集與開發(fā)集上的誤差之差則是對模型中存在的方差問題的量度,叫做可避免的方差。
人類水準(zhǔn)的誤差的意義?
第十課:了解人類水準(zhǔn)
更精準(zhǔn)的定義:人類表現(xiàn)
對于醫(yī)學(xué)圖像分類問題:
如何定義人類誤差?
區(qū)分這個問題,我希望你記住的最有效的方法是:
是把人類誤差當(dāng)做貝葉斯誤差的替代值或估計(jì)值。
但當(dāng)你出于發(fā)布研究報告或配置系統(tǒng)時,對于人類誤差定義或許會不同,超過一個放射科醫(yī)生就很值得去開發(fā)了。。。即搞清楚你的目的是什么?

比如這個例子中,你選擇哪一個作為人類誤差其實(shí)差距不大,相比于可避免的方差,你需要專注于降低偏差的技術(shù)比如訓(xùn)練更大的伸進(jìn)網(wǎng)絡(luò)。但是更改訓(xùn)練集的誤差為1%以后,你就需要專注于方差降低的技術(shù)。比如正則化或者使用一個更大的訓(xùn)練集。兩者相近時,方差和偏差都可以改進(jìn)。。。

為什么機(jī)器學(xué)習(xí)問題會在你達(dá)到或者接近人類水平表現(xiàn)時變得更難。
總結(jié):對于一個人類可以很好完成的任務(wù),如果你達(dá)到了人類水平的誤差估計(jì)值,這時你想搞清楚方差還是偏差問題,你可以使用人類水平的誤差作為貝葉斯誤差的替代值或近似值。你的訓(xùn)練誤差和貝葉斯誤差的差距告訴你可以避免的偏差有多大,而訓(xùn)練誤差和開發(fā)集誤差的差距告訴你方差問題有多大,你的算法是否可以做到更好的泛化。
這里以上叫做偏差的估計(jì)!

我們對貝葉斯誤差做了一個比較詳細(xì)的討論,因?yàn)樨惾~斯誤差有時候也不為0,且所有的問題的誤差都不一定小于某一個定值,而是根據(jù)人類誤差進(jìn)行特定分析。
比如對于嘈雜的語音識別,這時候有一個人類誤差作為貝葉斯誤差估計(jì),可以很好的幫助我們評估可避免的偏差和方差,從而更利于做出決定是專注于降低方差還是偏差。
如何處理超越人類表現(xiàn)得算法?
第十一課:超越人類的表現(xiàn)
當(dāng)你達(dá)到超越人類水準(zhǔn)的性能時會遇到哪些情況?
進(jìn)展會越來越慢?
當(dāng)你的算法的誤差小于人類團(tuán)隊(duì)的誤差值時:
是你的算法過擬合了?
還是貝葉斯誤差是更低值?

這時候你沒有足夠的信息去判斷應(yīng)該專注于減少方差還是偏差?
所以你取得進(jìn)展的效率就降低了。
其次如果你算法的誤差已經(jīng)比人類團(tuán)隊(duì)通過討論和辯論才能達(dá)到的誤差還小,那么你就更難依靠人類的直覺來判斷還能從哪方面進(jìn)行優(yōu)化算法的性能了。
即優(yōu)化的方向和方法就不明確了。這并不意味著你不能取得進(jìn)展,你仍然可以使用沒有指明方向的工具提升算法性能。
超越人類性能的例子:
在線廣告
產(chǎn)品推薦
物流預(yù)測
預(yù)測是否會還貸從而判斷是否應(yīng)該批準(zhǔn)貸款申請
以上四個例子都是從結(jié)構(gòu)化數(shù)據(jù)中進(jìn)行學(xué)習(xí)的,即都有數(shù)據(jù)庫系統(tǒng),且這些都不是自然感知問題,不是計(jì)算機(jī)視覺,或者語音識別,或者自然語言處理。人類特別擅長自然感知的任務(wù),這使得計(jì)算機(jī)在自然感知領(lǐng)域超越人類的水平雖然是可能的,但是難度更大一點(diǎn)。且在以上的問題上,團(tuán)隊(duì)都要能獲得海量的數(shù)據(jù)。上述系統(tǒng)中,計(jì)算機(jī)看到的數(shù)據(jù)可能比任何一個人類所能看到的都多,這使得它相對容易取得超越人類的水平。
事實(shí)上由于計(jì)算機(jī)能夠檢索海量的數(shù)據(jù),所以它比人類更擅長挖掘數(shù)據(jù)結(jié)構(gòu)中的統(tǒng)計(jì)規(guī)律。

事實(shí)上,在語音識別和計(jì)算機(jī)視覺上,有的計(jì)算機(jī)算法已經(jīng)超越了人類,還有一些醫(yī)學(xué)相關(guān)的任務(wù)...
總結(jié):取得超過人類水平的性能通常都不容易,但是基于足夠的數(shù)據(jù)量,已經(jīng)有很多深度學(xué)習(xí)系統(tǒng)在單個監(jiān)督學(xué)習(xí)問題上超越了人類水平。這也適用于你開發(fā)的應(yīng)用!希望有一天,你開發(fā)的應(yīng)用也能超越人類水平...
第十二課:提高你的算法性能
你們已經(jīng)學(xué)習(xí)了正交化、如何設(shè)置開發(fā)集和測試集用人類水平代表貝葉斯偏差,以及如何估計(jì)可避免偏差和方差,讓我們把這些結(jié)合成一套準(zhǔn)則用于改進(jìn)你的學(xué)習(xí)算法:
我認(rèn)為一個監(jiān)督學(xué)習(xí)系統(tǒng)能發(fā)揮作用,意味著希望或者預(yù)設(shè)你可以做到兩件事:
1.你能很好的擬合訓(xùn)練集,即你能得到較低的可避免偏差
2.訓(xùn)練集的效果可以很好的推廣到開發(fā)集或測試集,即方差不太大

如果你要改善你的機(jī)器學(xué)習(xí)系統(tǒng):
首先看訓(xùn)練集偏差和貝葉斯偏差的差距,估計(jì)可避免偏差,然后看測試集偏差和訓(xùn)練集偏差的差距,估計(jì)你的可避免方差有多大,即你需要付出多大的努力來讓你訓(xùn)練集的效果推廣到開發(fā)集那些沒有直接用在訓(xùn)練的數(shù)據(jù)上。

然后根據(jù)方差還是偏差問題進(jìn)行相應(yīng)的策略調(diào)整,包括增大訓(xùn)練數(shù)據(jù),訓(xùn)練更長時間,加入新的優(yōu)化算法,或者是使用新的神經(jīng)網(wǎng)絡(luò),即調(diào)整超參數(shù)的大小。
對于方差問題,我們一樣可以采取相應(yīng)的增大數(shù)據(jù),正則化,或者嘗試不同的神經(jīng)網(wǎng)絡(luò)架構(gòu)等。
高效、系統(tǒng)、有策略!