4.4 为什么使用深层表示-深度学习-Stanford吴恩达教授
| 4.3 核對(duì)矩陣的維數(shù) | 回到目錄 | 4.5 搭建深層神經(jīng)網(wǎng)絡(luò)快 |
為什么使用深層表示 (Why Deep Representation?)
我們都知道深度神經(jīng)網(wǎng)絡(luò)能解決好多問(wèn)題,其實(shí)并不需要很大的神經(jīng)網(wǎng)絡(luò),但是得有深度,得有比較多的隱藏層,這是為什么呢?我們一起來(lái)看幾個(gè)例子來(lái)幫助理解,為什么深度神經(jīng)網(wǎng)絡(luò)會(huì)很好用。
首先,深度網(wǎng)絡(luò)在計(jì)算什么?
首先,深度網(wǎng)絡(luò)究竟在計(jì)算什么?如果你在建一個(gè)人臉識(shí)別或是人臉檢測(cè)系統(tǒng),深度神經(jīng)網(wǎng)絡(luò)所做的事就是,當(dāng)你輸入一張臉部的照片,然后你可以把深度神經(jīng)網(wǎng)絡(luò)的第一層,當(dāng)成一個(gè)特征探測(cè)器或者邊緣探測(cè)器。在這個(gè)例子里,我會(huì)建一個(gè)大概有20個(gè)隱藏單元的深度神經(jīng)網(wǎng)絡(luò),是怎么針對(duì)這張圖計(jì)算的。隱藏單元就是這些圖里這些小方塊(第一張大圖),舉個(gè)例子,這個(gè)小方塊(第一行第一列)就是一個(gè)隱藏單元,它會(huì)去找這張照片里“|”邊緣的方向。那么這個(gè)隱藏單元(第四行第四列),可能是在找(“—”)水平向的邊緣在哪里。之后的課程里,我們會(huì)講專門做這種識(shí)別的卷積神經(jīng)網(wǎng)絡(luò),到時(shí)候會(huì)細(xì)講,為什么小單元是這么表示的。你可以先把神經(jīng)網(wǎng)絡(luò)的第一層當(dāng)作看圖,然后去找這張照片的各個(gè)邊緣。我們可以把照片里組成邊緣的像素們放在一起看,然后它可以把被探測(cè)到的邊緣組合成面部的不同部分(第二張大圖)。比如說(shuō),可能有一個(gè)神經(jīng)元會(huì)去找眼睛的部分,另外還有別的在找鼻子的部分,然后把這許多的邊緣結(jié)合在一起,就可以開(kāi)始檢測(cè)人臉的不同部分。最后再把這些部分放在一起,比如鼻子眼睛下巴,就可以識(shí)別或是探測(cè)不同的人臉(第三張大圖)。
你可以直覺(jué)上把這種神經(jīng)網(wǎng)絡(luò)的前幾層當(dāng)作探測(cè)簡(jiǎn)單的函數(shù),比如邊緣,之后把它們跟后幾層結(jié)合在一起,那么總體上就能學(xué)習(xí)更多復(fù)雜的函數(shù)。這些圖的意義,我們?cè)趯W(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的時(shí)候再深入了解。還有一個(gè)技術(shù)性的細(xì)節(jié)需要理解的是,邊緣探測(cè)器其實(shí)相對(duì)來(lái)說(shuō)都是針對(duì)照片中非常小塊的面積。就像這塊(第一行第一列),都是很小的區(qū)域。面部探測(cè)器就會(huì)針對(duì)于大一些的區(qū)域,但是主要的概念是,一般你會(huì)從比較小的細(xì)節(jié)入手,比如邊緣,然后再一步步到更大更復(fù)雜的區(qū)域,比如一只眼睛或是一個(gè)鼻子,再把眼睛鼻子裝一塊組成更復(fù)雜的部分。
這種從簡(jiǎn)單到復(fù)雜的金字塔狀表示方法或者組成方法,也可以應(yīng)用在圖像或者人臉識(shí)別以外的其他數(shù)據(jù)上。比如當(dāng)你想要建一個(gè)語(yǔ)音識(shí)別系統(tǒng)的時(shí)候,需要解決的就是如何可視化語(yǔ)音,比如你輸入一個(gè)音頻片段,那么神經(jīng)網(wǎng)絡(luò)的第一層可能就會(huì)去先開(kāi)始試著探測(cè)比較低層次的音頻波形的一些特征,比如音調(diào)是變高了還是低了,分辨白噪音,咝咝咝的聲音,或者音調(diào),可以選擇這些相對(duì)程度比較低的波形特征,然后把這些波形組合在一起就能去探測(cè)聲音的基本單元。在語(yǔ)言學(xué)中有個(gè)概念叫做音位,比如說(shuō)單詞ca,c的發(fā)音,“嗑”就是一個(gè)音位,a的發(fā)音“啊”是個(gè)音位,t的發(fā)音“特”也是個(gè)音位,有了基本的聲音單元以后,組合起來(lái),你就能識(shí)別音頻當(dāng)中的單詞,單詞再組合起來(lái)就能識(shí)別詞組,再到完整的句子。
所以深度神經(jīng)網(wǎng)絡(luò)的這許多隱藏層中,較早的前幾層能學(xué)習(xí)一些低層次的簡(jiǎn)單特征,等到后幾層,就能把簡(jiǎn)單的特征結(jié)合起來(lái),去探測(cè)更加復(fù)雜的東西。比如你錄在音頻里的單詞、詞組或是句子,然后就能運(yùn)行語(yǔ)音識(shí)別了。同時(shí)我們所計(jì)算的之前的幾層,也就是相對(duì)簡(jiǎn)單的輸入函數(shù),比如圖像單元的邊緣什么的。到網(wǎng)絡(luò)中的深層時(shí),你實(shí)際上就能做很多復(fù)雜的事,比如探測(cè)面部或是探測(cè)單詞、短語(yǔ)或是句子。
有些人喜歡把深度神經(jīng)網(wǎng)絡(luò)和人類大腦做類比,這些神經(jīng)科學(xué)家覺(jué)得人的大腦也是先探測(cè)簡(jiǎn)單的東西,比如你眼睛看得到的邊緣,然后組合起來(lái)才能探測(cè)復(fù)雜的物體,比如臉。這種深度學(xué)習(xí)和人類大腦的比較,有時(shí)候比較危險(xiǎn)。但是不可否認(rèn)的是,我們對(duì)大腦運(yùn)作機(jī)制的認(rèn)識(shí)很有價(jià)值,有可能大腦就是先從簡(jiǎn)單的東西,比如邊緣著手,再組合成一個(gè)完整的復(fù)雜物體,這類簡(jiǎn)單到復(fù)雜的過(guò)程,同樣也是其他一些深度學(xué)習(xí)的靈感來(lái)源,之后的視頻我們也會(huì)繼續(xù)聊聊人類或是生物學(xué)理解的大腦。
Small:隱藏單元的數(shù)量相對(duì)較少
Deep:隱藏層數(shù)目比較多
深層的網(wǎng)絡(luò)隱藏單元數(shù)量相對(duì)較少,隱藏層數(shù)目較多,如果淺層的網(wǎng)絡(luò)想要達(dá)到同樣的計(jì)算結(jié)果則需要指數(shù)級(jí)增長(zhǎng)的單元數(shù)量才能達(dá)到。
另外一個(gè),關(guān)于神經(jīng)網(wǎng)絡(luò)為何有效的理論,來(lái)源于電路理論,它和你能夠用電路元件計(jì)算哪些函數(shù)有著分不開(kāi)的聯(lián)系。根據(jù)不同的基本邏輯門,譬如與門、或門、非門。在非正式的情況下,這些函數(shù)都可以用相對(duì)較小,但很深的神經(jīng)網(wǎng)絡(luò)來(lái)計(jì)算,小在這里的意思是隱藏單元的數(shù)量相對(duì)比較小,但是如果你用淺一些的神經(jīng)網(wǎng)絡(luò)計(jì)算同樣的函數(shù),也就是說(shuō)在我們不能用很多隱藏層時(shí),你會(huì)需要成指數(shù)增長(zhǎng)的單元數(shù)量才能達(dá)到同樣的計(jì)算結(jié)果。
我再來(lái)舉個(gè)例子,用沒(méi)那么正式的語(yǔ)言介紹這個(gè)概念。假設(shè)你想要對(duì)輸入特征計(jì)算異或或是奇偶性,你可以算 x1XORx2XORx3XOR?xnx_1XORx_2XORx_3XOR\cdots x_nx1?XORx2?XORx3?XOR?xn? ,假設(shè)你有 nnn 或者 nxn_xnx? 個(gè)特征,如果你畫(huà)一個(gè)異或的樹(shù)圖,先要計(jì)算 x1x_1x1? , x2x_2x2? 的異或,然后是 x3x_3x3? 和 x4x_4x4? 。技術(shù)上來(lái)說(shuō)如果你只用或門,還有非門的話,你可能會(huì)需要幾層才能計(jì)算異或函數(shù),但是用相對(duì)小的電路,你應(yīng)該就可以計(jì)算異或了。然后你可以繼續(xù)建這樣的一個(gè)異或樹(shù)圖(上圖左),那么你最后會(huì)得到這樣的電路來(lái)輸出結(jié)果 yyy , y^=y\hat{y}=yy^?=y ,也就是輸入特征的異或,或是奇偶性,要計(jì)算異或關(guān)系。這種樹(shù)圖對(duì)應(yīng)網(wǎng)絡(luò)的深度應(yīng)該是 O(log?(n))O(\log(n))O(log(n)) ,那么節(jié)點(diǎn)的數(shù)量和電路部件,或是門的數(shù)量并不會(huì)很大,你也不需要太多門去計(jì)算異或。
是如果你不能使用多隱層的神經(jīng)網(wǎng)絡(luò)的話,在這個(gè)例子中隱層數(shù)為 O(log?(n))O(\log(n))O(log(n)) ,比如你被迫只能用單隱藏層來(lái)計(jì)算的話,這里全部都指向從這些隱藏單元到后面這里,再輸出 yyy ,那么要計(jì)算奇偶性,或者異或關(guān)系函數(shù)就需要這一隱層(上圖右方框部分)的單元數(shù)呈指數(shù)增長(zhǎng)才行,因?yàn)楸举|(zhì)上來(lái)說(shuō)你需要列舉耗盡 2n2^n2n 種可能的配置,或是 2n2^n2n 種輸入比特的配置。異或運(yùn)算的最終結(jié)果是1或0,那么你最終就會(huì)需要一個(gè)隱藏層,其中單元數(shù)目隨輸入比特指數(shù)上升。精確的說(shuō)應(yīng)該是 2n?12^{n-1}2n?1 個(gè)隱藏單元數(shù),也就是 O(2n)O(2^n)O(2n) 。
我希望這能讓你有點(diǎn)概念,意識(shí)到有很多數(shù)學(xué)函數(shù)用深度網(wǎng)絡(luò)計(jì)算比淺網(wǎng)絡(luò)要容易得多,我個(gè)人倒是認(rèn)為這種電路理論,對(duì)訓(xùn)練直覺(jué)思維沒(méi)那么有用,但這個(gè)結(jié)果人們還是經(jīng)常提到的,用來(lái)解釋為什么需要更深層的網(wǎng)絡(luò)。
除了這些原因,說(shuō)實(shí)話,我認(rèn)為“深度學(xué)習(xí)”這個(gè)名字挺唬人的,這些概念以前都統(tǒng)稱為有很多隱藏層的神經(jīng)網(wǎng)絡(luò),但是深度學(xué)習(xí)聽(tīng)起來(lái)多高大上,太深?yuàn)W了,對(duì)么?這個(gè)詞流傳出去以后,這是神經(jīng)網(wǎng)絡(luò)的重新包裝或是多隱藏層神經(jīng)網(wǎng)絡(luò)的重新包裝,激發(fā)了大眾的想象力。拋開(kāi)這些公關(guān)概念重新包裝不談,深度網(wǎng)絡(luò)確實(shí)效果不錯(cuò),有時(shí)候人們還是會(huì)按照字面意思鉆牛角尖,非要用很多隱層。但是當(dāng)我開(kāi)始解決一個(gè)新問(wèn)題時(shí),我通常會(huì)從logistic回歸開(kāi)始,再試試一到兩個(gè)隱層,把隱藏層數(shù)量當(dāng)作參數(shù)、超參數(shù)一樣去調(diào)試,這樣去找比較合適的深度。但是近幾年以來(lái),有一些人會(huì)趨向于使用非常非常深邃的神經(jīng)網(wǎng)絡(luò),比如好幾打的層數(shù),某些問(wèn)題中只有這種網(wǎng)絡(luò)才是最佳模型。
這就是我想講的,為什么深度學(xué)習(xí)效果拔群的直覺(jué)解釋,現(xiàn)在我們來(lái)看看除了正向傳播以外,反向傳播該怎么具體實(shí)現(xiàn)。
課程PPT
| 4.3 核對(duì)矩陣的維數(shù) | 回到目錄 | 4.5 搭建深層神經(jīng)網(wǎng)絡(luò)快 |
總結(jié)
以上是生活随笔為你收集整理的4.4 为什么使用深层表示-深度学习-Stanford吴恩达教授的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 4.3 核对矩阵的维数-深度学习-Sta
- 下一篇: 4.5 搭建深层神经网络块-深度学习-S