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