誤差分析
人工檢查你的算法犯的錯(cuò)誤,也許可以讓你了解接下來(lái)應(yīng)該做什么,這個(gè)過(guò)程稱(chēng)為誤差分析
- eg
假設(shè)正在調(diào)試貓分類(lèi)器,然后取得了90%準(zhǔn)確率,相當(dāng)于10%的誤差,這離希望的目標(biāo)還很遠(yuǎn)??戳怂惴ǚ诸?lèi)錯(cuò)誤的例子,注意到算法將一些狗分類(lèi)成貓。所以這里考慮是否做 一個(gè)項(xiàng)目專(zhuān)門(mén)處理狗,這個(gè)項(xiàng)目可能花幾個(gè)月時(shí)間才能將分類(lèi)狗的算法做好,在狗圖片上犯更少的錯(cuò)誤,與其做這個(gè)項(xiàng)目花幾個(gè)月時(shí)間而且結(jié)果未知。
這里有個(gè)誤差分析流程,可以讓你知道這個(gè)方向是否值得努力。
1.收集一下比如100個(gè)錯(cuò)誤標(biāo)記的開(kāi)發(fā)集例子,查看開(kāi)發(fā)集里面有多少錯(cuò)誤 標(biāo)記的例子是狗。假設(shè)你的100個(gè)錯(cuò)誤標(biāo)記例子中只有5%是狗,這意味著100個(gè)例子,在典型的100個(gè)出錯(cuò)例子中,即使你完全解決了狗的問(wèn)題,也只能修正這100個(gè)錯(cuò)誤中的5個(gè);現(xiàn)在假設(shè)發(fā)生了另外一件事,100個(gè)錯(cuò)誤標(biāo)記的開(kāi)發(fā)集例子,實(shí)際有50張都是狗,現(xiàn)在花時(shí)間解決狗的問(wèn)題可能效果就很好,這種情況下如果解決了狗的問(wèn)題,那么你的誤差就可能從10%下降到5%了。通過(guò)人工查看就可以知道你改進(jìn)的方向有多少價(jià)值。

在做誤差分的時(shí)候,也可以同時(shí)并行評(píng)估幾個(gè)想法:

清楚標(biāo)注錯(cuò)誤數(shù)據(jù)

如果你發(fā)現(xiàn)你的數(shù)據(jù)有一些標(biāo)記錯(cuò)誤的例子,首先我們來(lái)考慮訓(xùn)練集,事實(shí)證明深度學(xué)習(xí)算法對(duì)于訓(xùn)練集中的隨機(jī)誤差很魯棒,只要你標(biāo)記出錯(cuò)的例子離隨機(jī)誤差不太遠(yuǎn)。如果誤差足夠隨機(jī),那么放著這些誤差不管也沒(méi)問(wèn)題,而不要花太多時(shí)間修復(fù)他們。只要總數(shù)據(jù)量足夠大,實(shí)際誤差可能不會(huì)太高。深度學(xué)習(xí)算法對(duì)隨機(jī)誤差具有魯棒性,但對(duì)系統(tǒng)誤差就沒(méi)有魯棒性了,所以比如說(shuō)如果做標(biāo)記的人一直把白色的狗標(biāo)記成貓,
那就成問(wèn)題了,你的分類(lèi)器就會(huì)把所有白色的狗都分類(lèi)為貓。
快速搭建第一個(gè)系統(tǒng)
應(yīng)該快速建立你的第一個(gè)系統(tǒng)原型,然后快速迭代

在不同的劃分上進(jìn)行訓(xùn)練和測(cè)試
介紹一些微妙的做法來(lái)處理訓(xùn)練集和測(cè)試集存在差異的情況。
假設(shè)在開(kāi)發(fā)一個(gè)手機(jī)應(yīng)用,用戶(hù)會(huì)上傳他們用手機(jī)拍攝的圖片,你想識(shí)別用戶(hù)從應(yīng)用中上傳的圖片是不是貓。所以現(xiàn)在有兩個(gè)數(shù)據(jù)來(lái)源:1.你真正關(guān)心的數(shù)據(jù)分布,用戶(hù)從應(yīng)用中上傳的圖片2.另一個(gè)數(shù)據(jù)來(lái)源就是從網(wǎng)頁(yè)直接下載。如果你的用戶(hù)數(shù)量不是很多,只收集到10000張用戶(hù)上傳的圖片,但通過(guò)網(wǎng)頁(yè)下載你也許可以下載超過(guò)20萬(wàn)張,而你真正關(guān)心的是最終系統(tǒng)處理來(lái)自應(yīng)用程序的圖片效果好不好。

1.你可以做的是,將兩組數(shù)據(jù)合并在一起,可以把21萬(wàn)張圖片隨機(jī)分配到訓(xùn)練,開(kāi)發(fā),測(cè)試集中。我們假設(shè)你已經(jīng)確定開(kāi)發(fā)集和測(cè)試集各包含2500個(gè)樣本,所以你的訓(xùn)練集有205000個(gè)樣本?,F(xiàn)在這么設(shè)置數(shù)據(jù)集有一些好處也有一些壞處。
- 好處在于你的訓(xùn)練集、開(kāi)發(fā)集和測(cè)試集都來(lái)自于同一分布這樣更好管理
- 壞處在于,2500測(cè)試集只有119張來(lái)自于手機(jī)上傳
2.開(kāi)發(fā)集和測(cè)試集都是手機(jī)圖,訓(xùn)練集為20萬(wàn)張網(wǎng)絡(luò)圖,以及5000張手機(jī)圖
- 現(xiàn)在的好處就是你瞄準(zhǔn)的目標(biāo)就是你想要的目標(biāo)
-
壞處就是你的訓(xùn)練集和你的開(kāi)發(fā)集、測(cè)試集分布不一致
但第二種劃分能給你長(zhǎng)期帶來(lái)更好的系統(tǒng)性能
不同數(shù)據(jù)分布的偏差和方差
估計(jì)學(xué)習(xí)算法的偏差和方差真的可以幫你確定接下來(lái)應(yīng)該優(yōu)先做的方向,但是,當(dāng)你訓(xùn)練集來(lái)自和開(kāi)發(fā)集、測(cè)試集不同分布時(shí),分析偏差和方差的方式可能就不一樣了。
我們繼續(xù)以貓分類(lèi)器作為例子。
要進(jìn)行誤差分析,你通常需要看訓(xùn)練集,也要看看開(kāi)發(fā)集誤差。
我們要看的關(guān)鍵數(shù)據(jù),人類(lèi)水平誤差,訓(xùn)練誤差,訓(xùn)練-開(kāi)發(fā)誤差,開(kāi)發(fā)集誤差,測(cè)試集誤差。訓(xùn)練-開(kāi)發(fā)集與訓(xùn)練集來(lái)自相同數(shù)據(jù)分布,但沒(méi)有用作訓(xùn)練。


定義一個(gè)新的數(shù)據(jù)train-dev set 從訓(xùn)練集中抽取數(shù)據(jù),和訓(xùn)練集數(shù)據(jù)來(lái)自同一個(gè)數(shù)據(jù)分布,但是不用于訓(xùn)練數(shù)據(jù).分別將分類(lèi)器在訓(xùn)練集/訓(xùn)練-開(kāi)發(fā)集/開(kāi)發(fā)集上運(yùn)行,獲取其準(zhǔn)確率信息
假如在訓(xùn)練集上誤差為1%,在訓(xùn)練-開(kāi)發(fā)集上誤差為9%,在開(kāi)發(fā)集上誤差為10%
- 分類(lèi)器在訓(xùn)練集和訓(xùn)練開(kāi)發(fā)集上誤差差距較大,這表明算法沒(méi)有識(shí)別沒(méi)有看到過(guò)的數(shù)據(jù),這表明分類(lèi)器本身方差較大
- 分類(lèi)器在訓(xùn)練-開(kāi)發(fā)集和開(kāi)發(fā)集上誤差差距不大,表明算法誤差的差距不是主要由于數(shù)據(jù) 分布不一樣 導(dǎo)致的
假如在訓(xùn)練集上誤差為1%,在訓(xùn)練-開(kāi)發(fā)集上誤差為1.5%,在開(kāi)發(fā)集上誤差為10%
- 分類(lèi)器在訓(xùn)練集和訓(xùn)練開(kāi)發(fā)集上誤差差距較小,這表明分類(lèi)器本身方差不大
- 分類(lèi)器在訓(xùn)練-開(kāi)發(fā)集和開(kāi)發(fā)集上誤差差距很大,表明算法誤差的差距主要由于 數(shù)據(jù)不匹配 導(dǎo)致的

定位數(shù)據(jù)不匹配
如果你的訓(xùn)練集與開(kāi)發(fā)集、測(cè)試集來(lái)自不同數(shù)據(jù)分布,且誤差分析顯示你有一個(gè)數(shù)據(jù)不匹配問(wèn)題,這個(gè)問(wèn)題沒(méi)有系統(tǒng)的解決方案,但有一些仍可以嘗試。
1.嘗試弄清楚開(kāi)發(fā)集和訓(xùn)練集到底有什么不同,例如語(yǔ)音識(shí)別,你可能會(huì)發(fā)現(xiàn)很多開(kāi)發(fā)集樣本噪音很多,有很多汽車(chē)噪音,這是你的開(kāi)發(fā)集和訓(xùn)練集差異
2.或者你可以收集更多類(lèi)似你的開(kāi)發(fā)集合測(cè)試集數(shù)據(jù)。
所以比如說(shuō)如果你發(fā)現(xiàn)車(chē)輛背景噪音是主要誤差來(lái)源,那么你可以模擬車(chē)輛噪聲數(shù)據(jù)。或者你發(fā)現(xiàn)很難識(shí)別街道號(hào)碼,也許你可以有意識(shí)收集更多人們說(shuō)數(shù)字的音頻數(shù)據(jù)加到你的訓(xùn)練集里。
人工合成數(shù)據(jù):可以快速制造更多的訓(xùn)練數(shù)據(jù)。
人工合成數(shù)據(jù)有一個(gè)潛在問(wèn)題:
比如說(shuō)你在安靜的背景里錄得10000小時(shí)音頻數(shù)據(jù),然后比如說(shuō)你只錄了一小時(shí)車(chē)輛背景噪音。那么你可以這么做,將這1小時(shí)汽車(chē)噪音回放10000次并疊加到在安靜的背景下錄得的10000個(gè)小時(shí)數(shù)據(jù),如果你這么做了,人聽(tīng)起來(lái)沒(méi)有問(wèn)題,但是有一個(gè)風(fēng)險(xiǎn),有可能你的算法對(duì)這1小時(shí)汽車(chē)噪音過(guò)擬合。人工數(shù)據(jù)合成的挑戰(zhàn)在于,人耳是無(wú)法分辨的這10000個(gè)小時(shí)聽(tīng)起來(lái)和那一個(gè)小時(shí)沒(méi)什么區(qū)別,所以最后你可能會(huì)制造出這個(gè)原始數(shù)據(jù)很少的,在一個(gè)小得多的空間子集合成的訓(xùn)練數(shù)據(jù),但你自己沒(méi)有意識(shí)到。

遷移學(xué)習(xí)

深度學(xué)習(xí)中,最強(qiáng)大的理念之一就是有的時(shí)候神經(jīng)網(wǎng)絡(luò)可以從一個(gè)任務(wù)中習(xí)得知識(shí)并將這些知識(shí)應(yīng)用到另一個(gè)獨(dú)立的任務(wù)中。比如你已經(jīng)訓(xùn)練好一個(gè)神經(jīng)網(wǎng)絡(luò)能夠識(shí)別像貓這樣的對(duì)象,然后使用那些知識(shí)或者部分習(xí)得的知識(shí)去幫助你更好地閱讀X射線掃描圖,這就是遷移網(wǎng)絡(luò)。
假設(shè)你已經(jīng)訓(xùn)練好一個(gè)圖像識(shí)別神經(jīng)網(wǎng)絡(luò),首先用一個(gè)神經(jīng)網(wǎng)絡(luò),在(x,y)對(duì)上訓(xùn)練,其中x是圖像,y是對(duì)象的標(biāo)簽.
現(xiàn)在把這個(gè)神經(jīng)網(wǎng)絡(luò)拿出來(lái),將其適應(yīng)(遷移)到不同任務(wù)中所學(xué)到的知識(shí),比如放射科診斷:
- 把神經(jīng)網(wǎng)絡(luò)最后的輸出層刪除
- 進(jìn)入到最后一層并將其權(quán)重刪除
- 為最后一層重新賦予隨機(jī)權(quán)重
- 然后將神經(jīng)網(wǎng)絡(luò)放在放射診斷數(shù)據(jù)上訓(xùn)練
經(jīng)驗(yàn)規(guī)則:
- 如果進(jìn)行遷移學(xué)習(xí)的數(shù)據(jù)量比較小,只需要重新訓(xùn)練最后一兩層權(quán)重,但是如果進(jìn)行遷移學(xué)習(xí)的數(shù)據(jù)量比較大,建議重新訓(xùn)練整個(gè)神經(jīng)網(wǎng)絡(luò)。
- 預(yù)訓(xùn)練(pre-training): 如果重新訓(xùn)練所有神經(jīng)網(wǎng)絡(luò)層,那么在圖像識(shí)別數(shù)據(jù)的初期訓(xùn)練階段,我們稱(chēng)這個(gè)過(guò)程為:預(yù)訓(xùn)練
- 微調(diào)(fine tuning): 在預(yù)訓(xùn)練后的模型上放入遷移學(xué)習(xí)的數(shù)據(jù)進(jìn)行訓(xùn)練,這個(gè)過(guò)程稱(chēng)為:微調(diào)
遷移學(xué)習(xí)的好處在于,以放射科圖像檢測(cè)的遷移學(xué)習(xí)為例 在預(yù)訓(xùn)練的過(guò)程中,我們學(xué)到了一些圖像識(shí)別中低層次特征,很多結(jié)構(gòu)信息,圖像形狀的信息,點(diǎn),線,面的特征.-- 邊緣檢測(cè)(detecting edges),曲線檢測(cè)(的tecting curves),陽(yáng)性對(duì)象檢測(cè)(detecting positive objects) 應(yīng)用或遷移到放射科診斷上來(lái).從非常大的圖像識(shí)別數(shù)據(jù)庫(kù)中習(xí)得的這些能力,會(huì)有助于你的學(xué)習(xí)算法在放射科診斷做的更好.
例子
假設(shè)你已經(jīng)訓(xùn)練出一個(gè)語(yǔ)音識(shí)別系統(tǒng)(speech recognition system),現(xiàn)在x是音頻(audio)或者音頻片段輸入(audio snippets),y是聽(tīng)寫(xiě)文本(transcript). 我們要使用這個(gè)系統(tǒng)"遷移學(xué)習(xí)"建立一個(gè)"喚醒詞"的系統(tǒng).
- 你可能需要去掉神經(jīng)網(wǎng)絡(luò)的最后一層,然后加入新的輸出節(jié)點(diǎn).但有時(shí)也可以不止加入一個(gè)新節(jié)點(diǎn),或者甚至往你的神經(jīng)網(wǎng)絡(luò)加入幾個(gè)新層.然后把喚醒詞檢測(cè)問(wèn)題的標(biāo)簽"Y"喂進(jìn)去訓(xùn)練.
- 這取決于你的訓(xùn)練數(shù)據(jù)的多少,你可能只需要重新訓(xùn)練網(wǎng)絡(luò)的新層,也許你需要重新訓(xùn)練網(wǎng)絡(luò)中更多的層.
遷移學(xué)習(xí)什么時(shí)候是有意義的

遷移來(lái)源問(wèn)題你有很多數(shù)據(jù),但遷移目標(biāo)問(wèn)題你沒(méi)有那么多數(shù)據(jù).
-
例如:假如在圖像識(shí)別任務(wù)中你有100W樣本,數(shù)據(jù)量相當(dāng)多,你可以學(xué)習(xí)低層次特征,可以在神經(jīng)網(wǎng)絡(luò)的前幾層學(xué)到如何識(shí)別很多有用的特征.
- 但是對(duì)于"放射科任務(wù)",也許你只有100個(gè)樣本,所以你可以將圖像 識(shí)別預(yù)測(cè)的知識(shí)遷移到"放射科識(shí)別任務(wù)"中,即使你的放射科數(shù)據(jù)很少.
-
例如:在"語(yǔ)音識(shí)別"任務(wù)中,也許你已經(jīng)有1W小時(shí)數(shù)據(jù),訓(xùn)練過(guò)你的語(yǔ)言識(shí)別系統(tǒng).所以你已經(jīng)從這1W小時(shí)數(shù)據(jù)中學(xué)到了很多人類(lèi)聲音的特征.
- 但是對(duì)于"觸發(fā)字檢測(cè)",也許你只有1小時(shí)數(shù)據(jù),所以這數(shù)據(jù)太小,不能用來(lái)擬合很多參數(shù).
- 所以這種情況下,你需要預(yù)先學(xué)到很多人類(lèi)聲音的特征,人類(lèi)語(yǔ)言的組成部分等等知識(shí),可以幫你建立一個(gè)很好的喚醒字檢測(cè)器(wake word detector).即使你的數(shù)據(jù)集相對(duì)較小.
總結(jié)為什么要遷移學(xué)習(xí):
- 如果你想從任務(wù)A遷移一些知識(shí)到任務(wù)B,當(dāng)任務(wù)A和任務(wù)B都有相同的輸入X時(shí),遷移學(xué)習(xí)是有意義的:在第一個(gè)例子中,輸入X都是圖片;在第二個(gè)例子中X都是聲音音頻.
- 當(dāng)任務(wù)A的數(shù)據(jù)比數(shù)據(jù)B多得多時(shí),遷移學(xué)習(xí)意義更大.
所有這些假設(shè)的前提都是,你希望提高任務(wù)B的性能.因?yàn)槿蝿?wù)B的每個(gè)數(shù)據(jù)更有價(jià)值,對(duì)于任務(wù)B來(lái)說(shuō).通常任務(wù)A的數(shù)據(jù)量必須大得多,才有幫助。 - 如果你覺(jué)得任務(wù)A的低層次特征,可以幫助任務(wù)B的學(xué)習(xí),那遷移學(xué)習(xí)更有意義一些
多任務(wù)學(xué)習(xí)
在遷移學(xué)習(xí)中,你的步驟是串行的,你從任務(wù)A里學(xué)到知識(shí)然后遷移到任務(wù)B中.在多任務(wù)學(xué)習(xí)中,你是同時(shí)開(kāi)始學(xué)習(xí)的,試圖讓單個(gè)神經(jīng)網(wǎng)絡(luò)同時(shí)做幾件事情,然后希望這里的每個(gè)任務(wù)都能幫到其他所有任務(wù).
無(wú)人車(chē)?yán)?/h4>
假設(shè)你正在研發(fā)無(wú)人駕駛車(chē)輛,那么你的無(wú)人駕駛車(chē)可能需要同時(shí)檢測(cè)不同的物體.(行人,車(chē)輛,停車(chē)標(biāo)志,交通燈...)這里我們先檢測(cè) 這4個(gè)。這里將不是一個(gè)標(biāo)簽 y(i)而是4個(gè)標(biāo)簽。所以y(i)是一個(gè)41向量。從整體來(lái)看訓(xùn)練集標(biāo)簽。我們將訓(xùn)練集的標(biāo)簽水平堆疊起來(lái),矩陣Y是一個(gè)4M的矩陣

需要識(shí)別的物體假設(shè)即為上述討論的四個(gè),則最后一層設(shè)置4個(gè)神經(jīng)元,一個(gè)4維向量,分別表示對(duì)"行人,車(chē)輛,停車(chē)標(biāo)志,交通燈"的預(yù)測(cè).

最后一層第一個(gè)神經(jīng)元就是我們想預(yù)測(cè)途中有沒(méi)有行人 ,第二個(gè)輸出節(jié)點(diǎn)預(yù)測(cè)有沒(méi)有車(chē)等等 。
現(xiàn)在需要定義神經(jīng)網(wǎng)絡(luò)的損失函數(shù),對(duì)于一個(gè)輸出y^是一個(gè) 4維向量 。
其中多任務(wù)學(xué)習(xí)Loss function 也有相應(yīng)的變化,對(duì)于多任務(wù)學(xué)習(xí):

其中與之前例子最大的不同之處在于需要對(duì)檢測(cè)的多任務(wù)目標(biāo)進(jìn)行分別比較并相加∑4j=1。
這與softmax回歸的主要區(qū)別在于,softmax回歸將單個(gè)標(biāo)簽分配給單個(gè)樣本,而這張圖可以有很多不同的標(biāo)簽,所以不是說(shuō)每張圖都只是一張行人圖片、汽車(chē)圖片、停車(chē)標(biāo)志圖片、或者交通燈圖片,多個(gè)物體可能出現(xiàn)在同一張圖片里。你需要遍歷所有的物體類(lèi)型有沒(méi)有出現(xiàn)在圖中。如果你訓(xùn)練了一個(gè)神經(jīng)網(wǎng)絡(luò),需要最小化這個(gè)成本函數(shù),你做的就是多任務(wù)學(xué)習(xí),因?yàn)槟悻F(xiàn)在做的是建立單個(gè)神經(jīng)網(wǎng)絡(luò),觀察每張圖然后解決四個(gè)問(wèn)題,系統(tǒng)試圖告訴你每張圖里面有沒(méi)有這四個(gè)物體。另外你也可以訓(xùn)練四個(gè)不同的神經(jīng)網(wǎng)絡(luò),而不是訓(xùn)練一個(gè)網(wǎng)絡(luò)做四件事情,但神經(jīng)網(wǎng)絡(luò)一些早期特征在識(shí)別不同物體時(shí)都會(huì)用到,然后你會(huì)發(fā)現(xiàn)訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)做四件事情會(huì)比訓(xùn)練四個(gè)完全獨(dú)立的神經(jīng)網(wǎng)絡(luò)分別做四件事性能要更好。
什么時(shí)候多任務(wù)學(xué)習(xí)有意義?

- 你訓(xùn)練的一組任務(wù)可以共用低層次特征.例如對(duì)于無(wú)人駕駛車(chē)的例子,識(shí)別的物體都是道路上的標(biāo)志.
- 每個(gè)任務(wù)中學(xué)習(xí)的數(shù)據(jù)量很相近.假如你要識(shí)別100個(gè)任務(wù),每個(gè)任務(wù)大概有1000個(gè)樣本,所以如果你專(zhuān)注加強(qiáng)單個(gè)任務(wù)的性能,你只有1000個(gè)樣本去訓(xùn)練這個(gè)任務(wù),這是100項(xiàng)任務(wù)之一,但是通過(guò)其他99項(xiàng)任務(wù)的訓(xùn)練, 這些加起來(lái)一共有99000個(gè)樣本,這可能大幅提升算法性能,可以提供很多知識(shí)來(lái)增強(qiáng)這個(gè)任務(wù)的性能
- 如果你訓(xùn)練一個(gè) 足夠大的神經(jīng)網(wǎng)絡(luò),多任務(wù)神經(jīng)網(wǎng)絡(luò)和多個(gè)不同的單任務(wù)神經(jīng)網(wǎng)絡(luò)效果基本一致(即單獨(dú)訓(xùn)練識(shí)別行人,單獨(dú)識(shí)別交通標(biāo)識(shí)牌...的神經(jīng)網(wǎng)絡(luò)).
- 如果你訓(xùn)練一個(gè) 足夠大的神經(jīng)網(wǎng)絡(luò),多任務(wù)神經(jīng)網(wǎng)絡(luò)和多個(gè)不同的單任務(wù)神經(jīng)網(wǎng)絡(luò)效果基本一致(即單獨(dú)訓(xùn)練識(shí)別行人,單獨(dú)識(shí)別交通標(biāo)識(shí)牌...的神經(jīng)網(wǎng)絡(luò)).
一般來(lái)說(shuō), 遷移學(xué)習(xí)比多任務(wù)學(xué)習(xí)運(yùn)用更多 ,但是在 計(jì)算機(jī)視覺(jué)-物體檢測(cè) 中有大量應(yīng)用到多任務(wù)學(xué)習(xí),并且比分別訓(xùn)練不同的神經(jīng)網(wǎng)絡(luò)檢測(cè)物體效果更好.
端到端深度學(xué)習(xí)
以前有一些數(shù)據(jù)處理系統(tǒng)或者學(xué)習(xí)系統(tǒng),它們需要多個(gè)階段的處理. 端到端學(xué)習(xí)就是忽略中間的過(guò)程用單個(gè)神經(jīng)網(wǎng)絡(luò)代替它.
Speech recognition example

你的目標(biāo)是輸入X,比如說(shuō)一段音頻,目標(biāo)是將其映射到Y(jié),就是這段音頻的聽(tīng)寫(xiě)文本.
- 傳統(tǒng)階段上,語(yǔ)音識(shí)別需要很多階段的處理,首先你要提取一些特征,一些手工設(shè)計(jì)的音頻特征,例如使用MFCC-用來(lái)從音頻提取一組特定的人工設(shè)計(jì)的特征,在提取一些低層次的特征之后,你可以使用 機(jī)器學(xué)習(xí)算法 在音頻片段中找到音位,音位是聲音的基本單元.例如Cat這個(gè)詞由三個(gè)音位構(gòu)成,算法將Cu-Ah-Tu三個(gè)音位提取出來(lái),然后將音位串在一起構(gòu)成獨(dú)立的詞.然后你將詞串起來(lái)構(gòu)成音頻片段的聽(tīng)寫(xiě)文本。
- 相比于傳統(tǒng)的流水線形式的算法,端到端的深度學(xué)習(xí)即是你訓(xùn)練一個(gè)巨大的神經(jīng)網(wǎng)絡(luò), 輸入就是一段音頻,輸出直接是聽(tīng)寫(xiě)文本 .其直接繞過(guò)了傳統(tǒng)流水線機(jī)器學(xué)習(xí)系統(tǒng)的很多步驟。
但是需要注意的是,你可能需要大量數(shù)據(jù)才能讓系統(tǒng)表現(xiàn)得更好. 例如當(dāng)你只有3000h的語(yǔ)音數(shù)據(jù)時(shí),原先的機(jī)器學(xué)習(xí)系統(tǒng)會(huì)表現(xiàn)得更好,但是當(dāng)你有10000h的語(yǔ)音數(shù)據(jù)或者是1000000h的語(yǔ)音數(shù)據(jù)時(shí),端到端方法就開(kāi)始體現(xiàn)出優(yōu)勢(shì)了. 即小規(guī)模數(shù)據(jù)時(shí)流水線方式表現(xiàn)更好,但是當(dāng)大數(shù)據(jù)集時(shí),端到端的學(xué)習(xí)效果會(huì)更好.
倘若是中等數(shù)量級(jí)別的數(shù)據(jù),我們也可以取中間的方法,繞過(guò)特征提取的環(huán)節(jié)直接輸出特征提取得到的音位
Face recognition example

當(dāng)仔細(xì)觀察人臉識(shí)別系統(tǒng)中的相機(jī)所得相片會(huì)發(fā)現(xiàn), 人可以從各種角度靠近門(mén)禁系統(tǒng),所以相機(jī)得到的照片人所在的位置不固定,而且面部出現(xiàn)的位置和大小也各有差別 ,例如當(dāng)人比較靠近相機(jī)時(shí),臉會(huì)比較大,人臉比較遠(yuǎn)離相機(jī)時(shí),臉會(huì)比較小.
所以系統(tǒng)識(shí)別時(shí),不是直接將相機(jī)所得圖片喂到神經(jīng)網(wǎng)絡(luò)中,而是 一個(gè)多步方法,先檢測(cè)出相片中的人臉,找到人臉位置.然后放大圖片并裁剪圖片使人臉居中顯示,將此圖片放到網(wǎng)絡(luò)中,讓網(wǎng)絡(luò)去學(xué)習(xí)或者估計(jì)人臉的身份。
研究人員發(fā)現(xiàn),這個(gè)問(wèn)題還可以分解為兩個(gè)更簡(jiǎn)單的步驟:
- 弄清人臉在哪里
- 看著臉,弄清楚這是誰(shuí)
對(duì)于辨認(rèn)人臉的步驟,系統(tǒng)已經(jīng)儲(chǔ)存了公司每個(gè)員工的照片信息, 我們要做的是將檢測(cè)到的人臉與數(shù)據(jù)庫(kù)中的人臉進(jìn)行比較
這個(gè)例子告訴我們,即使你沒(méi)有足夠的數(shù)據(jù)來(lái)進(jìn)行端到端學(xué)習(xí),但是有足夠的數(shù)據(jù)來(lái)進(jìn)行子任務(wù)1和子任務(wù)2.將其拆分為兩個(gè)步驟更好。

Machine translation
傳統(tǒng)上,機(jī)器翻譯系統(tǒng)也有一個(gè)很復(fù)雜的流水線:英文--得到文本--文本分析--提取特征-...-中文。
現(xiàn)在英文到中文的翻譯已經(jīng)有很多數(shù)據(jù)對(duì),所以目前端到端的深度學(xué)習(xí)在機(jī)器翻譯領(lǐng)域非常好用
Estimating child's age
通過(guò)觀察一個(gè)孩子手部的x光照片,估計(jì)一個(gè)孩子的年齡.
- 傳統(tǒng)上,拍攝x光--分割出每一塊骨頭--分辨出骨頭所在部位--查表看兒童對(duì)應(yīng)段骨頭的平均長(zhǎng)度--估計(jì)兒童的年齡.
但是這個(gè)例子還不能使用端到端的方式去訓(xùn)練這個(gè)任務(wù),因?yàn)槲覀儧](méi)法獲得足夠多的數(shù)據(jù)去訓(xùn)練這個(gè)任務(wù).
是否要使用端到端學(xué)習(xí)
優(yōu)點(diǎn)和缺點(diǎn)

優(yōu)點(diǎn)
- 讓數(shù)據(jù)自己說(shuō)話
- 如果你有足夠多的(x,y)數(shù)據(jù),不管從x到y(tǒng)最合適的函數(shù)映射是什么,如果你訓(xùn)練一個(gè)足夠大的神經(jīng)網(wǎng)絡(luò),希望這個(gè)神經(jīng)網(wǎng)絡(luò)能夠自己搞清楚.相比于傳統(tǒng)的機(jī)器學(xué)習(xí)方法,更能夠捕獲數(shù)據(jù)中的任何統(tǒng)計(jì)信息,而不是引入人類(lèi)的成見(jiàn).
- 例如舉個(gè)例子:在語(yǔ)音識(shí)別領(lǐng)域,早期的識(shí)別系統(tǒng)有音位的概念--就是基本的聲音識(shí)別單元.NG認(rèn)為音位是人類(lèi)語(yǔ)言學(xué)家生造出來(lái)的,NG認(rèn)為音位實(shí)際是語(yǔ)音學(xué)家的幻想.用音位描述也許可行,但是 不要強(qiáng)迫你的學(xué)習(xí)算法以音位為單位進(jìn)行思考,如果你讓你的學(xué)習(xí)算法學(xué)習(xí)它想學(xué)習(xí)的任意的表示方式而不是使用你的學(xué)習(xí)算法使用音位作為表示方式,那么整體表現(xiàn)可能會(huì)更好.
- 所需手工設(shè)計(jì)的組件更少
- 能簡(jiǎn)化你的設(shè)計(jì)工作流程,你不需要花太多時(shí)間去手工設(shè)計(jì)功能,手工設(shè)計(jì)這些中間表示方式.
缺點(diǎn)
- 需要大量的數(shù)據(jù)
- 它排除了可能有用的手工設(shè)計(jì)組件
- 機(jī)器學(xué)習(xí)研究人員一般都比較鄙視手工設(shè)計(jì)的東西,但是如果你的數(shù)據(jù)量不夠的話.你的學(xué)習(xí)算法沒(méi)辦法從很小的訓(xùn)練集數(shù)據(jù)中獲得洞察力,所以手工設(shè)計(jì)的組件在這種情況下是把人類(lèi)知識(shí)直接注入算法的途徑.這有時(shí)候并不是一件壞事,有時(shí)候非常有效.
- NG認(rèn)為機(jī)器學(xué)習(xí)系統(tǒng)有兩個(gè)重要的知識(shí)獲取來(lái)源,一個(gè)是數(shù)據(jù)另一個(gè)是人工設(shè)計(jì)的東西,可能是組件,功能或者其他的東西.
-
當(dāng)你有成噸的數(shù)據(jù)時(shí),手工設(shè)計(jì)的東西就不太重要了,但是你沒(méi)有太多的數(shù)據(jù)時(shí),構(gòu)造一個(gè)精心設(shè)計(jì)的系統(tǒng)實(shí)際上可以將人類(lèi)對(duì)這個(gè)問(wèn)題的很多認(rèn)識(shí)直接注入到問(wèn)題里.
key question
是否使用端到端的算法取決于問(wèn)題:你是否有大量的的數(shù)據(jù)能夠使系統(tǒng)直接學(xué)到從x到y(tǒng)足夠復(fù)雜的函數(shù).

