吴恩达《神经网络与深度学习》精炼笔记(5)-- 深层神经网络
上節(jié)課我們主要介紹了淺層神經(jīng)網(wǎng)絡(luò)。首先介紹神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu),包括輸入層,隱藏層和輸出層。然后以簡(jiǎn)單的2 layer NN為例,詳細(xì)推導(dǎo)了其正向傳播過(guò)程和反向傳播過(guò)程,使用梯度下降的方法優(yōu)化神經(jīng)網(wǎng)絡(luò)參數(shù)。同時(shí),我們還介紹了不同的激活函數(shù),比較各自優(yōu)缺點(diǎn),討論了激活函數(shù)必須是非線性的原因。最后介紹了神經(jīng)網(wǎng)絡(luò)參數(shù)隨機(jī)初始化的必要性,特別是權(quán)重W,不同神經(jīng)元的W不能初始化為同一零值。本節(jié)課是對(duì)上節(jié)課的延伸和擴(kuò)展,討論更深層的神經(jīng)網(wǎng)絡(luò)。
——上期回顧
1
Deep L-layer neural network
深層神經(jīng)網(wǎng)絡(luò)其實(shí)就是包含更多的隱藏層神經(jīng)網(wǎng)絡(luò)。如下圖所示,分別列舉了邏輯回歸、1個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)、2個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)和5個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)它們的模型結(jié)構(gòu)。
命名規(guī)則上,一般只參考隱藏層個(gè)數(shù)和輸出層。例如,上圖中的邏輯回歸又叫1 layer NN,1個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)叫做2 layer NN,2個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)叫做3 layer NN,以此類推。如果是L-layer NN,則包含了L-1個(gè)隱藏層,最后的L層是輸出層。2
Forward Propagation in a Deep Network
接下來(lái),我們來(lái)推導(dǎo)一下深層神經(jīng)網(wǎng)絡(luò)的正向傳播過(guò)程。仍以上面講過(guò)的4層神經(jīng)網(wǎng)絡(luò)為例,對(duì)于單個(gè)樣本:
第1層,l=1:
第2層,l=2:
第3層,l=3:
第4層,l=4:
如果有m個(gè)訓(xùn)練樣本,其向量化矩陣形式為:
第1層,l=1:
第2層,l=2:
第3層,l=3:
第4層,l=4:
其中l(wèi)=1,?,L
3
Getting your matrix dimensions right
4
Why deep representations?
我們都知道神經(jīng)網(wǎng)絡(luò)能處理很多問(wèn)題,而且效果顯著。其強(qiáng)大能力主要源自神經(jīng)網(wǎng)絡(luò)足夠“深”,也就是說(shuō)網(wǎng)絡(luò)層數(shù)越多,神經(jīng)網(wǎng)絡(luò)就更加復(fù)雜和深入,學(xué)習(xí)也更加準(zhǔn)確。接下來(lái),我們從幾個(gè)例子入手,看一下為什么深度網(wǎng)絡(luò)能夠如此強(qiáng)大。
先來(lái)看人臉識(shí)別的例子,如下圖所示。經(jīng)過(guò)訓(xùn)練,神經(jīng)網(wǎng)絡(luò)第一層所做的事就是從原始圖片中提取出人臉的輪廓與邊緣,即邊緣檢測(cè)。這樣每個(gè)神經(jīng)元得到的是一些邊緣信息。神經(jīng)網(wǎng)絡(luò)第二層所做的事情就是將前一層的邊緣進(jìn)行組合,組合成人臉一些局部特征,比如眼睛、鼻子、嘴巴等。再往后面,就將這些局部特征組合起來(lái),融合成人臉的模樣。可以看出,隨著層數(shù)由淺到深,神經(jīng)網(wǎng)絡(luò)提取的特征也是從邊緣到局部特征到整體,由簡(jiǎn)單到復(fù)雜。可見(jiàn),如果隱藏層足夠多,那么能夠提取的特征就越豐富、越復(fù)雜,模型的準(zhǔn)確率就會(huì)越高。
語(yǔ)音識(shí)別模型也是這個(gè)道理。淺層的神經(jīng)元能夠檢測(cè)一些簡(jiǎn)單的音調(diào),然后較深的神經(jīng)元能夠檢測(cè)出基本的音素,更深的神經(jīng)元就能夠檢測(cè)出單詞信息。如果網(wǎng)絡(luò)夠深,還能對(duì)短語(yǔ)、句子進(jìn)行檢測(cè)。記住一點(diǎn),神經(jīng)網(wǎng)絡(luò)從左到右,神經(jīng)元提取的特征從簡(jiǎn)單到復(fù)雜。特征復(fù)雜度與神經(jīng)網(wǎng)絡(luò)層數(shù)成正相關(guān)。特征越來(lái)越復(fù)雜,功能也越來(lái)越強(qiáng)大。
除了從提取特征復(fù)雜度的角度來(lái)說(shuō)明深層網(wǎng)絡(luò)的優(yōu)勢(shì)之外,深層網(wǎng)絡(luò)還有另外一個(gè)優(yōu)點(diǎn),就是能夠減少神經(jīng)元個(gè)數(shù),從而減少計(jì)算量。例如下面這個(gè)例子,使用電路理論,計(jì)算邏輯輸出:
其中,⊕表示異或操作。對(duì)于這個(gè)邏輯運(yùn)算,如果使用深度網(wǎng)絡(luò),深度網(wǎng)絡(luò)的結(jié)構(gòu)是每層將前一層的兩兩單元進(jìn)行異或,最后到一個(gè)輸出,如下圖左邊所示。這樣,整個(gè)深度網(wǎng)絡(luò)的層數(shù)是log2(n),不包含輸入層。總共使用的神經(jīng)元個(gè)數(shù)為:
可見(jiàn),輸入個(gè)數(shù)是n,這種深層網(wǎng)絡(luò)所需的神經(jīng)元個(gè)數(shù)僅僅是n-1個(gè)。
如果不用深層網(wǎng)絡(luò),僅僅使用單個(gè)隱藏層,那么需要的神經(jīng)元個(gè)數(shù)將是指數(shù)級(jí)別那么大。Ng指出,由于包含了所有的邏輯位(0和1),則需要2^(n?1)個(gè)神經(jīng)元。
比較下來(lái),處理同一邏輯問(wèn)題,深層網(wǎng)絡(luò)所需的神經(jīng)元個(gè)數(shù)比淺層網(wǎng)絡(luò)要少很多。這也是深層神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)之一。
盡管深度學(xué)習(xí)有著非常顯著的優(yōu)勢(shì),Andrew還是建議對(duì)實(shí)際問(wèn)題進(jìn)行建模時(shí),盡量先選擇層數(shù)少的神經(jīng)網(wǎng)絡(luò)模型,這也符合奧卡姆剃刀定律(Occam’s Razor)。對(duì)于比較復(fù)雜的問(wèn)題,再使用較深的神經(jīng)網(wǎng)絡(luò)模型。
5
Building blocks of deep neural networks
下面用流程塊圖來(lái)解釋神經(jīng)網(wǎng)絡(luò)正向傳播和反向傳播過(guò)程。如下圖所示,對(duì)于第l層來(lái)說(shuō),正向傳播過(guò)程中:
剛才這是第l層的流程塊圖,對(duì)于神經(jīng)網(wǎng)絡(luò)所有層,整體的流程塊圖正向傳播過(guò)程和反向傳播過(guò)程如下所示:
6
Forward and Backward Propagation
我們繼續(xù)接著上一部分流程塊圖的內(nèi)容,推導(dǎo)神經(jīng)網(wǎng)絡(luò)正向傳播過(guò)程和反向傳播過(guò)程的具體表達(dá)式。
m個(gè)訓(xùn)練樣本,向量化形式為:
m個(gè)訓(xùn)練樣本,向量化形式為:
7
Parameters vs Hyperparameters
該部分介紹神經(jīng)網(wǎng)絡(luò)中的參數(shù)(parameters)和超參數(shù)(hyperparameters)的概念。
如何設(shè)置最優(yōu)的超參數(shù)是一個(gè)比較困難的、需要經(jīng)驗(yàn)知識(shí)的問(wèn)題。通常的做法是選擇超參數(shù)一定范圍內(nèi)的值,分別代入神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,測(cè)試cost function隨著迭代次數(shù)增加的變化,根據(jù)結(jié)果選擇cost function最小時(shí)對(duì)應(yīng)的超參數(shù)值。這類似于validation的方法。
8
What does this have to do with the brain?
那么,神經(jīng)網(wǎng)絡(luò)跟人腦機(jī)制到底有什么聯(lián)系呢?究竟有多少的相似程度?神經(jīng)網(wǎng)絡(luò)實(shí)際上可以分成兩個(gè)部分:正向傳播過(guò)程和反向傳播過(guò)程。神經(jīng)網(wǎng)絡(luò)的每個(gè)神經(jīng)元采用激活函數(shù)的方式,類似于感知機(jī)模型。這種模型與人腦神經(jīng)元是類似的,可以說(shuō)是一種非常簡(jiǎn)化的人腦神經(jīng)元模型。如下圖所示,人腦神經(jīng)元可分為樹(shù)突、細(xì)胞體、軸突三部分。樹(shù)突接收外界電刺激信號(hào)(類比神經(jīng)網(wǎng)絡(luò)中神經(jīng)元輸入),傳遞給細(xì)胞體進(jìn)行處理(類比神經(jīng)網(wǎng)絡(luò)中神經(jīng)元激活函數(shù)運(yùn)算),最后由軸突傳遞給下一個(gè)神經(jīng)元(類比神經(jīng)網(wǎng)絡(luò)中神經(jīng)元輸出)。
值得一提的是,人腦神經(jīng)元的結(jié)構(gòu)和處理方式要復(fù)雜的多,神經(jīng)網(wǎng)絡(luò)模型只是非常簡(jiǎn)化的模型。人腦如何進(jìn)行學(xué)習(xí)?是否也是通過(guò)反向傳播和梯度下降算法現(xiàn)在還不清楚,可能會(huì)更加復(fù)雜。這是值得生物學(xué)家探索的事情。也許發(fā)現(xiàn)重要的新的人腦學(xué)習(xí)機(jī)制后,讓我們的神經(jīng)網(wǎng)絡(luò)模型拋棄反向傳播和梯度下降算法,能夠?qū)崿F(xiàn)更加準(zhǔn)確和強(qiáng)大的神經(jīng)網(wǎng)絡(luò)模型!
9
Summary
本節(jié)課主要介紹了深層神經(jīng)網(wǎng)絡(luò),是上一節(jié)淺層神經(jīng)網(wǎng)絡(luò)的拓展和歸納。首先,我們介紹了建立神經(jīng)網(wǎng)絡(luò)模型一些常用的標(biāo)準(zhǔn)的標(biāo)記符號(hào)。然后,用流程塊圖的方式詳細(xì)推導(dǎo)正向傳播過(guò)程和反向傳播過(guò)程的輸入輸出和參數(shù)表達(dá)式。我們也從提取特征復(fù)雜性和計(jì)算量的角度分別解釋了深層神經(jīng)網(wǎng)絡(luò)為什么優(yōu)于淺層神經(jīng)網(wǎng)絡(luò)。接著,我們介紹了超參數(shù)的概念,解釋了超參數(shù)與參數(shù)的區(qū)別。最后,我們將神經(jīng)網(wǎng)絡(luò)與人腦做了類別,人工神經(jīng)網(wǎng)絡(luò)是簡(jiǎn)化的人腦模型。
喜歡我的文章就關(guān)注、點(diǎn)喜歡哦,歡迎分享到朋友圈,謝謝~
至此,吳恩達(dá)深度學(xué)習(xí)專項(xiàng)課程的第一門課《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》已經(jīng)介紹完畢!
后續(xù)課程精煉筆記將陸續(xù)發(fā)布,請(qǐng)關(guān)注公眾號(hào)最新動(dòng)態(tài)~
推薦閱讀:
吳恩達(dá)《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》精煉筆記(1)-- 深度學(xué)習(xí)概述
吳恩達(dá)《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》精煉筆記(2)-- 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)之邏輯回歸
吳恩達(dá)《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》精煉筆記(3)-- 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)之Python與向量化
吳恩達(dá)《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》精煉筆記(4)-- 淺層神經(jīng)網(wǎng)絡(luò)
長(zhǎng)按二維碼掃描關(guān)注
紅色石頭的機(jī)器學(xué)習(xí)之路
ID:redstonewill
紅色石頭
個(gè)人微信 : WillowRedstone
新浪微博:@RedstoneWill
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的吴恩达《神经网络与深度学习》精炼笔记(5)-- 深层神经网络的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 吴恩达《神经网络与深度学习》精炼笔记(4
- 下一篇: Coursera吴恩达《序列模型》课程笔