什么是端到端的深度學(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)是輸入x肥缔,比如說一段音頻,然后把它映射到一個輸出y续膳,就是這段音頻的聽寫文本。
所以傳統(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é)到了x和y之間的函數(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ī)拍到的圖像x。有件事你可以做茬底,就是嘗試直接學(xué)習(xí)圖像x到人物y身份的函數(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)诘奈恢茫讶四槇D像框出來蝴罪,所以有很多數(shù)據(jù),有很多標(biāo)簽數(shù)據(jù)(x,y)要门,其中x是圖片虏肾,y是表示人臉的位置欢搜,你可以建立一個神經(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)的數(shù)據(jù)對就少得多,其中x是門禁系統(tǒng)拍攝的圖像轧粟,y是那人的身份,因為你沒有足夠多的數(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-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)班缎。