深度學(xué)習(xí)導(dǎo)論_第1頁
深度學(xué)習(xí)導(dǎo)論_第2頁
深度學(xué)習(xí)導(dǎo)論_第3頁
深度學(xué)習(xí)導(dǎo)論_第4頁
深度學(xué)習(xí)導(dǎo)論_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

AnintroductiontodeeplearningLastupdated:April23,2013Keywords:Deepneuralnetwork,sparsecodeBackgroundIntroductionHowdoourbrainsdowithfeatureSomebasicideaofdeeplearningArtificialneuralnetworksAutoencodeandSparsecodeDeepneuralnetworkSummaryReferenceOutlines1/42Background(Academia)AndrewNgGeoffreyE.Hinton2/42Background(Industry)2012年6月,《紐約時報》披露了GoogleBrain項目,吸引了公眾的廣泛關(guān)注。2012年11月,微軟在中國天津的一次活動上公開演示了一個全自動的同聲傳譯系統(tǒng)2013年1月,在百度年會上,創(chuàng)始人兼CEO李彥宏高調(diào)宣布要成立百度研究院,其中第一個成立的就是“深度學(xué)習(xí)研究所”3/42為什么那么多的機(jī)器學(xué)習(xí)大牛都開始關(guān)注并花大量時間研究它?為什么擁有大數(shù)據(jù)的互聯(lián)網(wǎng)公司爭相投入大量資源研發(fā)深度學(xué)習(xí)技術(shù)?聽起來感覺deeplearning很牛的樣子。那什么是deeplearning?它能干什么呢?Background4/42introduction機(jī)器學(xué)習(xí)雖然發(fā)展了幾十年,但還是存在很多沒有良好解決的問題5/42introduction機(jī)器學(xué)習(xí)去解決這些問題的思路都是這樣的:概括起來主要由三部分組成而中間的特征提取部分將很大程度上決定最終的效果,那實際中的特征提取是怎么做的?6/42introduction實際中特征提取都是靠手工提取的,截止現(xiàn)在,也出現(xiàn)了不少NB的特征:手工地選取特征是一件非常費(fèi)力、啟發(fā)式(需要專業(yè)知識)的方法,能不能選取好很大程度上靠經(jīng)驗和運(yùn)氣!!而且它的調(diào)節(jié)需要大量的時間。7/42既然手工選取特征不太好,那么能不能自動地學(xué)習(xí)一些特征呢?答案是能!DeepLearning就是用來干這個事情的,看它的一別名UnsupervisedFeatureLearning。那它是怎么學(xué)習(xí)的呢?怎么知道哪些特征好哪些不好呢?我們說機(jī)器學(xué)習(xí)是一門專門研究計算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為的學(xué)科。好,那我們?nèi)说囊曈X系統(tǒng)是怎么工作的呢?introduction8/42Howdoourbrainsdowithfeature

1981年的諾貝爾醫(yī)學(xué)獎,頒發(fā)給了DavidHubel和TorstenWiesel,以及RogerSperry。前兩位的主要貢獻(xiàn),是“發(fā)現(xiàn)了視覺系統(tǒng)的信息處理”:可視皮層是分級的:這個發(fā)現(xiàn)激發(fā)了人們對于神經(jīng)系統(tǒng)的進(jìn)一步思考。神經(jīng)-中樞-大腦的工作過程,或許是一個不斷迭代、不斷抽象的過程。9/42Howdoourbrainsdowithfeature這個過程關(guān)鍵在于抽象和迭代。從原始信號開始,做低級抽象,逐漸向高級抽象迭代。如圖,從原始信號攝入開始(瞳孔攝入像素Pixels),接著做初步處理(大腦皮層某些細(xì)胞發(fā)現(xiàn)邊緣和方向),然后抽象(大腦判定,眼前的物體的形狀),然后進(jìn)一步抽象(大腦進(jìn)一步判定該物體是誰的臉)10/41大家都注意到關(guān)鍵詞了:分層。而Deeplearning的deep是不是就表示我存在多少層,也就是多深呢?沒錯。那Deeplearning是如何借鑒這個過程的呢?畢竟是歸于計算機(jī)來處理,面對的一個問題就是怎么對這個過程建模?Howdoourbrainsdowithfeature11/42假設(shè)有一個系統(tǒng)S,它有n層(S1,…Sn),它的輸入是I,輸出是O,形象地表示為:I=>S1=>S2=>…..=>Sn=>O,如果輸出O等于輸入I,即輸入I經(jīng)過這個系統(tǒng)變化之后沒有任何的信息損失,保持了不變,這意味著輸入I經(jīng)過每一層Si都沒有任何的信息損失,即在任何一層Si,它都是原有信息(即輸入I)的另外一種表示。Basicideaofdeeplearningsystem輸出O輸入Ii=o12/42

對于深度學(xué)習(xí)來說,其思想就是堆疊多個層,也就是說這一層的輸出作為下一層的輸入。通過這種方式,就可以實現(xiàn)對輸入信息進(jìn)行分級表達(dá)了。那它究竟是如何學(xué)習(xí)特征和訓(xùn)練的?這里我們需要來了解一下神經(jīng)網(wǎng)絡(luò),熟悉神經(jīng)網(wǎng)絡(luò)的人都知道神經(jīng)網(wǎng)絡(luò)的隱藏層實際上就是一組特征。Basicideaofdeeplearning13/41Artificialneuralnetworks以監(jiān)督學(xué)習(xí)為例,假設(shè)我們有訓(xùn)練樣本集

,那么神經(jīng)網(wǎng)絡(luò)算法能夠提供一種復(fù)雜且非線性的假設(shè)模型

,它具有參數(shù)

W,b

,可以以此參數(shù)來擬合我們的數(shù)據(jù)。以下即是一個“神經(jīng)元”的圖示這個“神經(jīng)元”是一個以x1,x2,x3及截距

+1為輸入值的運(yùn)算單元,其輸出為函數(shù)被稱為“激活函數(shù)”這里我們選用sigmoid函數(shù)作為激活函數(shù)

14/41所謂神經(jīng)網(wǎng)絡(luò)就是將許多個單一“神經(jīng)元”聯(lián)結(jié)在一起,這樣,一個“神經(jīng)元”的輸出就可以是另一個“神經(jīng)元”的輸入。例如,下圖就是一個簡單的神經(jīng)網(wǎng)絡(luò):Artificialneuralnetworks15/42Artificialneuralnetworks參數(shù)的表示

是第l

層第

j單元與第

l+1層第

i單元之間的聯(lián)接參數(shù)(其實就是連接線上的權(quán)重,注意標(biāo)號順序),因而,

是第

l+1層第

i

單元的偏置項.

表示第

l層第

i單元的激活值(輸出值)。當(dāng)

l=1

時,

,也就是第

i個輸入值(輸入值的第

i個特征)。,因而,該神經(jīng)網(wǎng)絡(luò)的參數(shù)為:16/41該神經(jīng)網(wǎng)絡(luò)的計算如下:Artificialneuralnetworks簡化為向量表達(dá)為:17/41由以上可得n層神經(jīng)網(wǎng)絡(luò)的層間權(quán)的計算為:Artificialneuralnetworks我們將上面的計算步驟叫作前向傳播。通過前向傳播我們可以計算出最終的輸出。那我們是如何訓(xùn)練該網(wǎng)絡(luò)?或者說該如何調(diào)節(jié)權(quán)重以擬合訓(xùn)練數(shù)據(jù)的?18/42通過反向傳播算法來訓(xùn)練神經(jīng)網(wǎng)絡(luò)假設(shè)我們有一個固定樣本集

,它包含

m個樣例。我們可以用批量梯度下降法來求解神經(jīng)網(wǎng)絡(luò)。具體來講,對于單個樣例

,其代價函數(shù)為:Artificialneuralnetworks19/42梯度下降法中每一次迭代都按照如下公式對參數(shù)

進(jìn)行更新:Artificialneuralnetworks20/42反向傳播算法的思路如下:Artificialneuralnetworks1、進(jìn)行前饋傳導(dǎo)計算,利用前向傳導(dǎo)公式,得到L2,L3,…

直到輸出層

Ln的激活值。2、對于第

nl

層(輸出層)的每個輸出單元i

,我們根據(jù)以下公式計算殘差:3、對l=nl-1,nl-2,nl-3,…

的各個層,第l層的第

i個節(jié)點的殘差計算方法如下:4、計算我們需要的偏導(dǎo)數(shù),計算方法如下:21/42最后,我們將對梯度下降算法做個全面總結(jié),下面,我們實現(xiàn)批量梯度下降法中的一次迭代:1、對于所有

l,令

,,

(設(shè)置為全零矩陣或全零向量)2、對于

i=1

m,

a、使用反向傳播算法計算

b、計算

c、計算3、更新權(quán)重參數(shù):Artificialneuralnetworks22/41目前為止,我們已經(jīng)討論了神經(jīng)網(wǎng)絡(luò)在有監(jiān)督學(xué)習(xí)中的應(yīng)用。在有監(jiān)督學(xué)習(xí)中,訓(xùn)練樣本是有類別標(biāo)簽的。那如果訓(xùn)練樣本無類別標(biāo)簽的,我們是否可以學(xué)習(xí)到一些有用的結(jié)構(gòu)呢?這就是自編碼神經(jīng)網(wǎng)絡(luò)。Artificialneuralnetworks23/41AutoencodeandSparsecode自編碼神經(jīng)網(wǎng)絡(luò)是一種無監(jiān)督學(xué)習(xí)算法,它使用了反向傳播算法,并讓目標(biāo)值等于輸入值。

事實上,通過以上的學(xué)習(xí),隱藏單元就是輸入的另一種表示,即特征。當(dāng)隱藏單元小于輸入時,其就相當(dāng)于PCA進(jìn)行了壓縮。24/42剛才的論述是基于隱藏神經(jīng)元數(shù)量較小的假設(shè)。當(dāng)隱藏神經(jīng)元的數(shù)量較大時,通過給自編碼神經(jīng)網(wǎng)絡(luò)施加一些其他的限制條件(稀疏性)來發(fā)現(xiàn)輸入數(shù)據(jù)中的結(jié)構(gòu)。稀疏性可以被簡單地解釋如下。如果當(dāng)神經(jīng)元的輸出接近于1的時候我們認(rèn)為它被激活,而輸出接近于0的時候認(rèn)為它被抑制,那么使得神經(jīng)元大部分的時間都是被抑制的限制則被稱作稀疏性限制。AutoencodeandSparsecode25/42由此,我們注意到每一層節(jié)點的輸出其實就是該節(jié)點的激活度。則自編碼神經(jīng)網(wǎng)絡(luò)隱藏神經(jīng)元

j的激活度為:AutoencodeandSparsecode在此我們加入一條限制:其中,是稀疏性參數(shù),通常是一個接近于0的較小的值(如

)26/42為了實現(xiàn)這一限制,我們將會在我們的優(yōu)化目標(biāo)函數(shù)中加入一個額外的懲罰因子,懲罰因子的具體形式如下:上面的公式可用相對熵簡化為:AutoencodeandSparsecode27/42AutoencodeandSparsecode通過相對熵的變化圖,可知:當(dāng)

,,,并且隨著

之間的差異增大而單調(diào)遞增。由此可知這一懲罰因子將懲罰那些

有顯著不同的情況從而使得隱藏神經(jīng)元的平均活躍度保持在較小范圍內(nèi)。從而使網(wǎng)絡(luò)變得稀疏。28/42加入稀疏懲罰因子后,可得,我們的總體代價函數(shù)為:

由此可推得我們的殘差計算公式為:這樣利用反向傳播算法,我們就可以訓(xùn)練稀疏自編碼神經(jīng)網(wǎng)絡(luò)了。AutoencodeandSparsecode29/42在以上的稀疏自編碼神經(jīng)網(wǎng)絡(luò)后,加上一個分類器(SVM,Softmax)等,就可以進(jìn)行分類了。(這是一個淺層結(jié)構(gòu))那為何還要用深層結(jié)構(gòu)呢?Deepneuralnetwork30/42深度網(wǎng)絡(luò)最主要的優(yōu)勢在于,它能以更加緊湊簡潔的方式來表達(dá)比淺層網(wǎng)絡(luò)大得多的函數(shù)集合,換言之,它具有更強(qiáng)的表征能力。那我們是否可以將稀疏自編碼神經(jīng)網(wǎng)絡(luò)堆疊多層,然和加一個分類器,通過反向傳播算法來訓(xùn)練網(wǎng)絡(luò)呢?答案是否定的。

Deepneuralnetwork31/42主要原因在于:1、數(shù)據(jù)獲取問題:使用上面提到的方法,我們需要依賴于有標(biāo)簽的數(shù)據(jù)才能進(jìn)行訓(xùn)練。然而有標(biāo)簽的數(shù)據(jù)通常是稀缺的,因此對于許多問題,我們很難獲得足夠多的樣本來擬合一個復(fù)雜模型的參數(shù)。2、局部極值問題:由于其深度較深,使得常常會涉及到求解一個高度非凸的優(yōu)化問題,非常容易陷入很壞的局部最小。3、梯度彌散問題:由公式我們可知,當(dāng)深度較深時,殘差闖到前面的時候已經(jīng)非常小了,使得前幾層不能有效進(jìn)行調(diào)節(jié),訓(xùn)練速度很慢。Deepneuralnetwork32/42那怎么解決這些問題呢?我們知道造成神經(jīng)網(wǎng)絡(luò)容易陷入局部最小的主要原因是開始時對權(quán)的隨機(jī)初始化的問題。那我們是否可以獲得一個好的初始權(quán)重呢?我們可以通過逐層貪婪訓(xùn)練方法來初始化權(quán)重。其主要思想就是:每次只訓(xùn)練網(wǎng)絡(luò)中的一層,即我們首先訓(xùn)練一個只含一個隱藏層的網(wǎng)絡(luò),僅當(dāng)這層網(wǎng)絡(luò)訓(xùn)練結(jié)束之后才開始訓(xùn)練一個有兩個隱藏層的網(wǎng)絡(luò),以此類推。Deepneuralnetwork33/42通過逐層貪婪訓(xùn)練方法,我們有效的解決數(shù)據(jù)的獲取問題和獲得一個更好的局部極值。在數(shù)據(jù)獲取問題上,由于我們采用逐層貪婪訓(xùn)練方法,利用了大量的無標(biāo)簽數(shù)據(jù)來訓(xùn)練網(wǎng)絡(luò),初始化了網(wǎng)絡(luò)的權(quán)重,隨后,利用有標(biāo)簽數(shù)據(jù)進(jìn)行微調(diào),就能很快的收斂。對于易于陷入壞的局部最優(yōu)值,我們通過以上步驟,就獲得了一個比較好的起點,較為接近好的結(jié)果,這樣防止了收斂于壞的結(jié)果。Deepneuralnetwork34/42這樣我們大概了解了深度網(wǎng)絡(luò)的主要思想:通過無監(jiān)督數(shù)據(jù)逐層貪婪訓(xùn)練網(wǎng)絡(luò),獲得一個好的初始值;之后通過有監(jiān)督的數(shù)據(jù)微調(diào)整個網(wǎng)絡(luò)即可。以下用一個例子來說明訓(xùn)練方法。假設(shè)你想要訓(xùn)練一個包含兩個隱含層的棧式自編碼網(wǎng)絡(luò),用來進(jìn)行MNIST手寫數(shù)字分類.Deepneuralnetwork首先,你需要用原始輸入

訓(xùn)練第一個自編碼器,它能夠?qū)W習(xí)得到原始輸入的一階特征表示35/42Deepneuralnetwork把上一層的一階特征作為另一個稀疏自編碼器的輸入,使用它們來學(xué)習(xí)二階特征

36/42Deepneuralnetwork將些二階特征作為softmax分類器的輸入,訓(xùn)練得到一個能將二階特征映射到數(shù)字標(biāo)簽的模型。37/42Deepneuralnetwork最終,將這三層結(jié)合起來就建一個包含兩個隱藏層和一個最終softmax分類器層的棧式自編碼網(wǎng)絡(luò),這個網(wǎng)絡(luò)能夠如你所愿地對MNIST數(shù)字進(jìn)行分類。38/42通過以上例子,我們能夠清楚的了解到深度網(wǎng)絡(luò)能夠獲取到輸入的“層次型分組”或者“部分-整體分解”結(jié)構(gòu),具有強(qiáng)大的表達(dá)能力

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論