2.9 什么是端到端的深度学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
| 2.8 多任務(wù)學(xué)習(xí) | 回到目錄 | 2.10 是否要使用端到端的深度學(xué)習(xí) |
什么是端到端的深度學(xué)習(xí) (What is end-to-end deep learning?)
深度學(xué)習(xí)中最令人振奮的最新動態(tài)之一就是端到端深度學(xué)習(xí)的興起,那么端到端學(xué)習(xí)到底是什么呢?簡而言之,以前有一些數(shù)據(jù)處理系統(tǒng)或者學(xué)習(xí)系統(tǒng),它們需要多個階段的處理。那么端到端深度學(xué)習(xí)就是忽略所有這些不同的階段,用單個神經(jīng)網(wǎng)絡(luò)代替它。
我們來看一些例子,以語音識別為例,你的目標(biāo)是輸入 xxx ,比如說一段音頻,然后把它映射到一個輸出 yyy ,就是這段音頻的聽寫文本。所以傳統(tǒng)上,語音識別需要很多階段的處理。首先你會提取一些特征,一些手工設(shè)計的音頻特征,也許你聽過MFCC,這種算法是用來從音頻中提取一組特定的人工設(shè)計的特征。在提取出一些低層次特征之后,你可以應(yīng)用機(jī)器學(xué)習(xí)算法在音頻片段中找到音位,所以音位是聲音的基本單位,比如說“Cat”這個詞是三個音節(jié)構(gòu)成的,Cu-、Ah-和Tu-,算法就把這三個音位提取出來,然后你將音位串在一起構(gòu)成獨立的詞,然后你將詞串起來構(gòu)成音頻片段的聽寫文本。
所以和這種有很多階段的流水線相比,端到端深度學(xué)習(xí)做的是,你訓(xùn)練一個巨大的神經(jīng)網(wǎng)絡(luò),輸入就是一段音頻,輸出直接是聽寫文本。AI的其中一個有趣的社會學(xué)效應(yīng)是,隨著端到端深度學(xué)習(xí)系統(tǒng)表現(xiàn)開始更好,有一些花了大量時間或者整個事業(yè)生涯設(shè)計出流水線各個步驟的研究員,還有其他領(lǐng)域的研究員,不只是語言識別領(lǐng)域的,也許是計算機(jī)視覺,還有其他領(lǐng)域,他們花了大量的時間,寫了很多論文,有些甚至整個職業(yè)生涯的一大部分都投入到開發(fā)這個流水線的功能或者其他構(gòu)件上去了。而端到端深度學(xué)習(xí)就只需要把訓(xùn)練集拿過來,直接學(xué)到了 xxx 和 yyy 之間的函數(shù)映射,直接繞過了其中很多步驟。對一些學(xué)科里的人來說,這點相當(dāng)難以接受,他們無法接受這樣構(gòu)建AI系統(tǒng),因為有些情況,端到端方法完全取代了舊系統(tǒng),某些投入了多年研究的中間組件也許已經(jīng)過時了。
事實證明,端到端深度學(xué)習(xí)的挑戰(zhàn)之一是,你可能需要大量數(shù)據(jù)才能讓系統(tǒng)表現(xiàn)良好,比如,你只有3000小時數(shù)據(jù)去訓(xùn)練你的語音識別系統(tǒng),那么傳統(tǒng)的流水線效果真的很好。但當(dāng)你擁有非常大的數(shù)據(jù)集時,比如10,000小時數(shù)據(jù)或者100,000小時數(shù)據(jù),這樣端到端方法突然開始很厲害了。所以當(dāng)你的數(shù)據(jù)集較小的時候,傳統(tǒng)流水線方法其實效果也不錯,通常做得更好。你需要大數(shù)據(jù)集才能讓端到端方法真正發(fā)出耀眼光芒。如果你的數(shù)據(jù)量適中,那么也可以用中間件方法,你可能輸入還是音頻,然后繞過特征提取,直接嘗試從神經(jīng)網(wǎng)絡(luò)輸出音位,然后也可以在其他階段用,所以這是往端到端學(xué)習(xí)邁出的一小步,但還沒有到那里。
這張圖上是一個研究員做的人臉識別門禁,是百度的林元慶研究員做的。這是一個相機(jī),它會拍下接近門禁的人,如果它認(rèn)出了那個人,門禁系統(tǒng)就自動打開,讓他通過,所以你不需要刷一個RFID工卡就能進(jìn)入這個設(shè)施。系統(tǒng)部署在越來越多的中國辦公室,希望在其他國家也可以部署更多,你可以接近門禁,如果它認(rèn)出你的臉,它就直接讓你通過,你不需要帶RFID工卡。
那么,怎么搭建這樣的系統(tǒng)呢?你可以做的第一件事是,看看相機(jī)拍到的照片,對吧?我想我畫的不太好,但也許這是相機(jī)照片,你知道,有人接近門禁了,所以這可能是相機(jī)拍到的圖像 xxx 。有件事你可以做,就是嘗試直接學(xué)習(xí)圖像 xxx 到人物 yyy 身份的函數(shù)映射,事實證明這不是最好的方法。其中一個問題是,人可以從很多不同的角度接近門禁,他們可能在綠色位置,可能在藍(lán)色位置。有時他們更靠近相機(jī),所以他們看起來更大,有時候他們非常接近相機(jī),那照片中臉就很大了。在實際研制這些門禁系統(tǒng)時,他不是直接將原始照片喂到一個神經(jīng)網(wǎng)絡(luò),試圖找出一個人的身份。
相反,迄今為止最好的方法似乎是一個多步方法,首先,你運行一個軟件來檢測人臉,所以第一個檢測器找的是人臉位置,檢測到人臉,然后放大圖像的那部分,并裁剪圖像,使人臉居中顯示,然后就是這里紅線框起來的照片,再喂到神經(jīng)網(wǎng)絡(luò)里,讓網(wǎng)絡(luò)去學(xué)習(xí),或估計那人的身份。
研究人員發(fā)現(xiàn),比起一步到位,一步學(xué)習(xí),把這個問題分解成兩個更簡單的步驟。首先,是弄清楚臉在哪里。第二步是看著臉,弄清楚這是誰。這第二種方法讓學(xué)習(xí)算法,或者說兩個學(xué)習(xí)算法分別解決兩個更簡單的任務(wù),并在整體上得到更好的表現(xiàn)。
順便說一句,如果你想知道第二步實際是怎么工作的,我這里其實省略了很多。訓(xùn)練第二步的方式,訓(xùn)練網(wǎng)絡(luò)的方式就是輸入兩張圖片,然后你的網(wǎng)絡(luò)做的就是將輸入的兩張圖比較一下,判斷是否是同一個人。比如你記錄了10,000個員工ID,你可以把紅色框起來的圖像快速比較……也許是全部10,000個員工記錄在案的ID,看看這張紅線內(nèi)的照片,是不是那10000個員工之一,來判斷是否應(yīng)該允許其進(jìn)入這個設(shè)施或者進(jìn)入這個辦公樓。這是一個門禁系統(tǒng),允許員工進(jìn)入工作場所的門禁。
為什么兩步法更好呢?實際上有兩個原因。一是,你解決的兩個問題,每個問題實際上要簡單得多。但第二,兩個子任務(wù)的訓(xùn)練數(shù)據(jù)都很多。具體來說,有很多數(shù)據(jù)可以用于人臉識別訓(xùn)練,對于這里的任務(wù)1來說,任務(wù)就是觀察一張圖,找出人臉?biāo)诘奈恢?#xff0c;把人臉圖像框出來,所以有很多數(shù)據(jù),有很多標(biāo)簽數(shù)據(jù) (x,y)(x,y)(x,y) ,其中 xxx 是圖片, yyy 是表示人臉的位置,你可以建立一個神經(jīng)網(wǎng)絡(luò),可以很好地處理任務(wù)1。然后任務(wù)2,也有很多數(shù)據(jù)可用,今天,業(yè)界領(lǐng)先的公司擁有,比如說數(shù)百萬張人臉照片,所以輸入一張裁剪得很緊湊的照片,比如這張紅色照片,下面這個,今天業(yè)界領(lǐng)先的人臉識別團(tuán)隊有至少數(shù)億的圖像,他們可以用來觀察兩張圖片,并試圖判斷照片里人的身份,確定是否同一個人,所以任務(wù)2還有很多數(shù)據(jù)。相比之下,如果你想一步到位,這樣 (x,y)(x,y)(x,y) 的數(shù)據(jù)對就少得多,其中 xxx 是門禁系統(tǒng)拍攝的圖像, yyy 是那人的身份,因為你沒有足夠多的數(shù)據(jù)去解決這個端到端學(xué)習(xí)問題,但你卻有足夠多的數(shù)據(jù)來解決子問題1和子問題2。
實際上,把這個分成兩個子問題,比純粹的端到端深度學(xué)習(xí)方法,達(dá)到更好的表現(xiàn)。不過如果你有足夠多的數(shù)據(jù)來做端到端學(xué)習(xí),也許端到端方法效果更好。但在今天的實踐中,并不是最好的方法。
我們再來看幾個例子,比如機(jī)器翻譯。傳統(tǒng)上,機(jī)器翻譯系統(tǒng)也有一個很復(fù)雜的流水線,比如英語機(jī)翻得到文本,然后做文本分析,基本上要從文本中提取一些特征之類的,經(jīng)過很多步驟,你最后會將英文文本翻譯成法文。因為對于機(jī)器翻譯來說的確有很多(英文,法文)的數(shù)據(jù)對,端到端深度學(xué)習(xí)在機(jī)器翻譯領(lǐng)域非常好用,那是因為在今天可以收集 x?yx-yx?y 對的大數(shù)據(jù)集,就是英文句子和對應(yīng)的法語翻譯。所以在這個例子中,端到端深度學(xué)習(xí)效果很好。
最后一個例子,比如說你希望觀察一個孩子手部的X光照片,并估計一個孩子的年齡。你知道,當(dāng)我第一次聽到這個問題的時候,我以為這是一個非常酷的犯罪現(xiàn)場調(diào)查任務(wù),你可能悲劇的發(fā)現(xiàn)了一個孩子的骨架,你想弄清楚孩子在生時是怎么樣的。事實證明,這個問題的典型應(yīng)用,從X射線圖估計孩子的年齡,是我想太多了,沒有我想象的犯罪現(xiàn)場調(diào)查腦洞那么大,結(jié)果這是兒科醫(yī)生用來判斷一個孩子的發(fā)育是否正常。
處理這個例子的一個非端到端方法,就是照一張圖,然后分割出每一塊骨頭,所以就是分辨出那段骨頭應(yīng)該在哪里,那段骨頭在哪里,那段骨頭在哪里,等等。然后,知道不同骨骼的長度,你可以去查表,查到兒童手中骨頭的平均長度,然后用它來估計孩子的年齡,所以這種方法實際上很好。
相比之下,如果你直接從圖像去判斷孩子的年齡,那么你需要大量的數(shù)據(jù)去直接訓(xùn)練。據(jù)我所知,這種做法今天還是不行的,因為沒有足夠的數(shù)據(jù)來用端到端的方式來訓(xùn)練這個任務(wù)。
你可以想象一下如何將這個問題分解成兩個步驟,第一步是一個比較簡單的問題,也許你不需要那么多數(shù)據(jù),也許你不需要許多X射線圖像來切分骨骼。而任務(wù)二,收集兒童手部的骨頭長度的統(tǒng)計數(shù)據(jù),你不需要太多數(shù)據(jù)也能做出相當(dāng)準(zhǔn)確的估計,所以這個多步方法看起來很有希望,也許比端對端方法更有希望,至少直到你能獲得更多端到端學(xué)習(xí)的數(shù)據(jù)之前。
所以端到端深度學(xué)習(xí)系統(tǒng)是可行的,它表現(xiàn)可以很好,也可以簡化系統(tǒng)架構(gòu),讓你不需要搭建那么多手工設(shè)計的單獨組件,但它也不是靈丹妙藥,并不是每次都能成功。在下一個視頻中,我想與你分享一個更系統(tǒng)的描述,什么時候你應(yīng)該使用或者不應(yīng)該使用端到端的深度學(xué)習(xí),以及如何組裝這些復(fù)雜的機(jī)器學(xué)習(xí)系統(tǒng)。
課程板書
| 2.8 多任務(wù)學(xué)習(xí) | 回到目錄 | 2.10 是否要使用端到端的深度學(xué)習(xí) |
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的2.9 什么是端到端的深度学习-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.8 多任务学习-深度学习第三课《结构
- 下一篇: 2.10 是否要使用端到端的深度学习-深