Course1:神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí),包括:
[1] Week1:深度學(xué)習(xí)概述
[2] Week2:神經(jīng)網(wǎng)絡(luò)基礎(chǔ)
[3] Week3:淺層神經(jīng)網(wǎng)絡(luò)
[4] Week4:深層神經(jīng)網(wǎng)絡(luò)
[5] 深度學(xué)習(xí)的基本流程
[1] Week1:深度學(xué)習(xí)概述
1.2 什么是神經(jīng)網(wǎng)絡(luò)萧吠?
一種強(qiáng)有力的學(xué)習(xí)算法磁玉,受大腦如何工作的啟發(fā)而得到的。
Example1:?jiǎn)紊窠?jīng)網(wǎng)絡(luò)
Example2:多神經(jīng)網(wǎng)絡(luò)
1.3 什么是監(jiān)督學(xué)習(xí)?機(jī)器學(xué)習(xí)的數(shù)據(jù)分為哪兩類绊起?
- 在監(jiān)督學(xué)習(xí)中,給出一個(gè)數(shù)據(jù)集燎斩,我們已經(jīng)知道正確的輸出是什么樣子的虱歪,由此想要知道輸入和輸出之間存在什么關(guān)系。
- 監(jiān)督學(xué)習(xí)可以看成“回歸”或者“分類”問題栅表∷癖桑“回歸”問題嘗試把輸入變量映射到一些連續(xù)的函數(shù)上,預(yù)測(cè)連續(xù)的輸出結(jié)果怪瓶;“分類”問題嘗試把輸入變量映射到離散的類別當(dāng)中萧落,預(yù)測(cè)離散的輸出結(jié)果。
以下是一些監(jiān)督學(xué)習(xí)的例子:
神經(jīng)網(wǎng)絡(luò)有不同的類型洗贰,例如standard NN(標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò))用于房?jī)r(jià)預(yù)估和廣告點(diǎn)擊找岖;CNN(卷積神經(jīng)網(wǎng)絡(luò))經(jīng)常用于圖像處理;RNN(遞歸神經(jīng)網(wǎng)絡(luò))用于處理一維序列數(shù)據(jù)敛滋,例如語(yǔ)音識(shí)別和機(jī)器翻譯许布;而自動(dòng)駕駛則是混合的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
機(jī)器學(xué)習(xí)的數(shù)據(jù)分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)绎晃。非結(jié)構(gòu)化數(shù)據(jù)包括音頻蜜唾、圖片、文本等等庶艾。
1.4 為什么深度學(xué)習(xí)會(huì)興起灵妨?
深度學(xué)習(xí)興起的原因有:大數(shù)據(jù)時(shí)代,數(shù)據(jù)的爆炸性增長(zhǎng)落竹;計(jì)算機(jī)硬件技術(shù)的發(fā)展泌霍,計(jì)算成本下降,速度提高述召;神經(jīng)網(wǎng)絡(luò)算法的變革等朱转。
影響性能的兩大因素:能夠訓(xùn)練一個(gè)大的神經(jīng)網(wǎng)絡(luò);擁有很多標(biāo)記的數(shù)據(jù)积暖。
訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)是可迭代的:
[2] Week2:神經(jīng)網(wǎng)絡(luò)基礎(chǔ)
2.2 二分分類
如
Cat vs No-Cat
問題藤为,目標(biāo)是訓(xùn)練一個(gè)分類器,輸入是一張圖片夺刑,圖片被表示成一個(gè)特征向量x
缅疟,并且預(yù)測(cè)標(biāo)簽y
是1(Cat)還是0(No-Cat)分别。
吳恩達(dá)的矩陣表示法:用列向量表示一個(gè)樣本,因此
X.shape==(n_x,m)
存淫,n_x
表示特征數(shù)耘斩,m
是樣本大小。
2.3 logistic回歸
logistic回歸是一種監(jiān)督學(xué)習(xí)下的學(xué)習(xí)算法桅咆,使得輸出
y
要么都是0或者要么都是1括授。logistic回歸的目標(biāo)是使預(yù)測(cè)和訓(xùn)練數(shù)據(jù)之間的誤差最小化。
對(duì)于
Cat vs No-Cat
問題岩饼,給定一張圖的特征向量x
荚虚,這個(gè)算法將會(huì)評(píng)估這幅圖是貓的概率:
通過計(jì)算,W^T+b
是一個(gè)線性函數(shù)ax+b
(W^T
計(jì)算出來(lái)是一個(gè)具體的數(shù)值a
)籍茧,因?yàn)槲覀兤诖粋€(gè)在[0,1]區(qū)間的概率約束版述,所以sigmoid
函數(shù)被使用。
sigmoid函數(shù)的性質(zhì):
2.3 logistic回歸的損失函數(shù)
- 損失函數(shù) Loss:?jiǎn)蝹€(gè)樣本的估計(jì)值與真實(shí)值的誤差寞冯。
- 成本函數(shù) Cost:所有樣本的誤差總和的平均值渴析。
2.4 梯度下降法
2.9 用導(dǎo)數(shù)流程圖計(jì)算logistic回歸中的梯度
對(duì)于單個(gè)訓(xùn)練樣本的梯度計(jì)算:
假設(shè)有兩個(gè)特征x1
、x2
简十,α
是學(xué)習(xí)率檬某,紅色箭頭代表反向傳播:
2.10 m個(gè)樣本的梯度下降
運(yùn)用一次梯度下降法,其中
dz^(i)
是第i
個(gè)訓(xùn)練樣本的偏導(dǎo)數(shù)dz
螟蝙,α
是學(xué)習(xí)率:
總結(jié)起來(lái)步驟如下:參數(shù)初始化 -> 前向傳播 -> 計(jì)算成本 -> 反向傳播 -> 更新參數(shù)
2.11 向量化
- 向量化的好處: 不必顯示地使用for循環(huán)恢恼,用矩陣運(yùn)算來(lái)替代循環(huán),如numpy中的內(nèi)置函數(shù)np.dot(w,t)胰默。充分利用了GPU或CPU的SIMD(單指令流多數(shù)據(jù)流)的優(yōu)勢(shì)场斑,進(jìn)行并行化計(jì)算,明顯地提高了計(jì)算效率牵署。
- 因此漏隐,神經(jīng)網(wǎng)絡(luò)編程中,盡可能避免顯示地使用for循環(huán)奴迅。
2.13 向量化實(shí)現(xiàn)正向傳播:
下圖有兩個(gè)注意點(diǎn):
w^T
是一個(gè) (nx,1) 維的矩陣青责,無(wú)論訓(xùn)練數(shù)據(jù)中是一個(gè)樣本x
還是m
個(gè)樣本組成的X
。Z=np.dot(w.T,X)+b
中取具,numpy 會(huì)把b
拓展成一個(gè) (1,m) 矩陣脖隶,這種方法叫廣播。
2.14 向量化實(shí)現(xiàn)logistic回歸的完整流程:
左邊是for循環(huán)的一次梯度下降暇检,右邊是向量化的1000次梯度下降:
注意點(diǎn):在右邊的向量化中产阱,np.dot(a,b)
是按照矩陣乘法的運(yùn)算進(jìn)行的,而X*(dz)^T
是按照矩陣對(duì)應(yīng)位置元素相乘進(jìn)行的块仆。同時(shí)再次注意构蹬,w
是一個(gè) (nx,1) 的矩陣王暗,因此dw
也是一個(gè) (nx,1) 的矩陣。
[3] Week3:淺層神經(jīng)網(wǎng)絡(luò)
3.3 計(jì)算神經(jīng)網(wǎng)絡(luò)的輸出
神經(jīng)網(wǎng)絡(luò)的表示如下:
注意: 這里的輸入層算作第0層庄敛,故這是一個(gè)two-layer的神經(jīng)網(wǎng)絡(luò)俗壹。W[1]
是隱藏層的一個(gè) (4,3) 矩陣,其中4代表隱藏層有4個(gè)單元铐姚,3代表來(lái)自輸入層的3個(gè)特征策肝。W[2]
是輸出層的一個(gè) (1,4) 矩陣肛捍,同理隐绵。
隱藏層的計(jì)算過程,目的是得到
a[1]
:
輸出層的計(jì)算過程拙毫,目的是得到
y(^) = a[2]
:
3.6 激活函數(shù)
常見的 4 種激活函數(shù)(σ依许、tanh、ReLU缀蹄、Leaky ReLU):
4 種激活函數(shù)的優(yōu)缺點(diǎn):
σ: 優(yōu)點(diǎn):適合二元分類峭跳,因?yàn)轭A(yù)測(cè)值在[0,1]之間,比如在輸出層使用缺前;缺點(diǎn):當(dāng)z很大蛀醉,梯度接近0,下降速度緩慢衅码。
tanh: 比σ要好拯刁,因?yàn)轭A(yù)測(cè)值在[-1,1]之間,可以使均值為0逝段,比如在隱藏層使用垛玻;缺點(diǎn):當(dāng)z很大,梯度接近0奶躯,下降速度緩慢帚桩。
ReLU(修正線性單元): 優(yōu)點(diǎn):當(dāng)z很大,梯度為1嘹黔,下降速度很快账嚎,最常用的激活函數(shù);缺點(diǎn):z有一半梯度為0儡蔓。
Leaky ReLU(帶泄露的修正線性單元): 優(yōu)點(diǎn):解決了ReLU的有一半梯度為0的問題郭蕉;缺點(diǎn):需要調(diào)參來(lái)找到一個(gè)好的緩慢下降的參數(shù),不常用浙值。
3.9 神經(jīng)網(wǎng)絡(luò)的梯度下降法
以下是單隱層神經(jīng)網(wǎng)絡(luò)的梯度下降法的流程:
參數(shù)解釋:nx=n[0]
恳不,n[1]
,n[2] = 1
分別代表輸入層特征數(shù)量、隱藏層和輸出層的單元數(shù)量开呐,因此隱藏層w[1]
(n[1],n[0])烟勋、b[1]
(n[1],1)规求,輸出層的w[2]
(n[2],n[1]) 、b[2]
(n[2],1)卵惦。
使用梯度下降法重復(fù)以下過程(一次迭代):
- 正向傳播阻肿,計(jì)算預(yù)測(cè)值
y(^) = a[2]
;- 反向傳播沮尿,計(jì)算導(dǎo)數(shù)
dw[1] db[1] dw[2] db[2]
丛塌;- 計(jì)算成本(未寫出)
- 更新參數(shù)
所用公式(注意:正向傳播就4個(gè)公式,反向傳播先計(jì)算的是
dz[2] dw[2] db[2]
畜疾,再計(jì)算的是dz[1] dw[1] db[1]
赴邻,共6個(gè)公式):
3.11 隨機(jī)初始化
如果將
w[1]
、w[2]
初始化為全0矩陣啡捶,會(huì)導(dǎo)致隱藏單元在計(jì)算完全一樣的函數(shù)姥敛,即所有隱藏單元的計(jì)算都是對(duì)稱的。b[1]
瞎暑、b[0]
不存在對(duì)稱性問題彤敛。
正確的做法:隨機(jī)初始化參數(shù)
解釋:將w[1]
、w[2]
初始化為高斯分布隨機(jī)變量了赌,再乘以一個(gè)小因子(如0.01)墨榄,使得w[1]
、w[2]
中的值盡可能小勿她,原因是可以使得計(jì)算出來(lái)的z[1]
袄秩、z[2]
盡可能小,這樣在反向傳播過程中求梯度dz[1]
嫂拴、dz[2]
就不會(huì)接近0播揪,使得梯度下降的速度加快。
[4] Week4:深層神經(jīng)網(wǎng)絡(luò)
4.1 深層神經(jīng)網(wǎng)絡(luò)的表示
4.2 深層網(wǎng)絡(luò)中的前向傳播
4.3 核對(duì)矩陣的維數(shù)
核對(duì)矩陣維數(shù)可以幫助我們檢查算法是否正確:
4.4 為什么使用深層表示
以人臉識(shí)別為例筒狠,淺層的神經(jīng)網(wǎng)絡(luò)可能只能做的是一些簡(jiǎn)單的邊緣檢測(cè)猪狈,而深層的神經(jīng)網(wǎng)絡(luò)可以將邊緣特征組合成人臉特征,進(jìn)行面部檢測(cè)辩恼。
事實(shí)上雇庙,深層表示可以用電路理論來(lái)解釋,如下:
比如我們要實(shí)現(xiàn)一個(gè)異或操作灶伊,使用深層的神經(jīng)網(wǎng)絡(luò)可以減少異或門的數(shù)量疆前,時(shí)間復(fù)雜度也會(huì)降低,而淺層的神經(jīng)網(wǎng)絡(luò)需要更大的計(jì)算量聘萨,進(jìn)行指數(shù)級(jí)操作竹椒。
4.5 搭建深層神經(jīng)網(wǎng)絡(luò)塊
深層網(wǎng)絡(luò)前向傳播和后向傳播流程:
4.6 前向和反向傳播
舉例,總結(jié):
第L
層的前向傳播:輸入a[L-1]
米辐,輸出a[L]
胸完,并緩存z[L]书释、w[L]、b[L]
赊窥,用于反向傳播過程爆惧;
第L
層的反向傳播:輸入da[L],輸出da[L-1]锨能、dw[L]扯再、db[L]
,用于更新參數(shù)w[L]址遇、b[L]
熄阻;
4.7 參數(shù) VS 超參數(shù)
超參數(shù):控制參數(shù)的參數(shù)
參數(shù):
w[1] b[1] w[2] b[2] w[3] b[3]
...
超參數(shù): 學(xué)習(xí)率α
、梯度下降迭代次數(shù)傲隶、隱藏層數(shù)L
饺律、隱藏單元數(shù)n[1] n[2]
窃页、激活函數(shù)等等跺株。
調(diào)參是深度學(xué)習(xí)中很常見的一環(huán),最優(yōu)參數(shù)的取值還會(huì)隨著GPU或CPU的變化而變化脖卖。所以經(jīng)常調(diào)試乒省,探索最優(yōu)參數(shù)取值,逐漸地就會(huì)掌握一些調(diào)參的規(guī)律畦木。
4.8 深度學(xué)習(xí)和大腦的關(guān)系
當(dāng)我們提及正向傳播和反向傳播時(shí)袖扛,很多人可能不明白那些公式在做什么,為什么就可以行之有效十籍?但是蛆封,如果把深度學(xué)習(xí)比喻成就像大腦一樣,這樣大眾更樂于接收勾栗,也方便媒體報(bào)道惨篱。
一個(gè)簡(jiǎn)單的類比:
事實(shí)上,深度學(xué)習(xí)和大腦到底有多少聯(lián)系围俘,這也無(wú)法衡量砸讳,畢竟人類對(duì)大腦的認(rèn)知還是有限的。
[5] 深度學(xué)習(xí)的基本流程
最后界牡,深度學(xué)習(xí)的基本流程總結(jié)如下: