第三周——淺層神經(jīng)網(wǎng)絡(luò)
1嗅定、神經(jīng)網(wǎng)絡(luò)概述
比較簡(jiǎn)單自娩,沒(méi)有什么需要筆記記錄的。
2、神經(jīng)網(wǎng)絡(luò)表示
(1)只有一個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)忙迁,三層NN:輸入層脐彩、隱藏層、輸出層姊扔;兩層NN:隱藏層惠奸、輸出層。
(2)由于輸入層沒(méi)有任何參數(shù)需要去學(xué)習(xí)恰梢,所以并不把輸入層視做標(biāo)準(zhǔn)的一層佛南,所以感知器亦稱為單層NN,即它只有輸出層嵌言。
(3)輸入層亦稱之為第零層嗅回,隱藏層為第一層,每一層會(huì)將激活值饋送給下一層摧茴,變量a表示這是激活值向量绵载。
3、計(jì)算NN的輸出
(1)帶有非線性激活函數(shù)的神經(jīng)元堆疊形成層苛白,層堆疊形成網(wǎng)絡(luò)娃豹。
(2)權(quán)重矩陣的某一行,行向量购裙,對(duì)應(yīng)于該層某個(gè)神經(jīng)單元的權(quán)重向量懂版,偏置向量的某一個(gè)元素則對(duì)應(yīng)于該層某個(gè)神經(jīng)單元的偏置值。
(3)向量化躏率,沿著豎方向進(jìn)行堆疊定续,于是就得到了W、b禾锤、z和a。
(4)隱藏層得到輸入樣本新的表示形式摹察,即特征向量恩掷,輸出層就是一個(gè)線性分類器(線性模型+將輸出歸一化使得具有概率意義),例如用于二分類的logistic回歸和用于多分類的softmax回歸供嚎,通過(guò)計(jì)算輸入樣本屬于各個(gè)類別的概率來(lái)預(yù)測(cè)輸入樣本的類別黄娘。
4、多樣本向量化
(1)向量化的好處克滴,可以避免寫顯示的for循環(huán)逼争,這樣就不用寫一堆的角標(biāo)用于指定這是哪一個(gè)樣本或是那一層,使得代碼足夠簡(jiǎn)潔劝赔,不容易出錯(cuò)誓焦。
(2)另外通過(guò)向量化,可以使用numpy內(nèi)置的相關(guān)函數(shù)着帽,做element wise的操作和向量矩陣計(jì)算等杂伟,numpy基于經(jīng)典的線性代數(shù)庫(kù)BLAS(C/C++寫的)移层,使用CPU/GPU(GPU不確定?)支持的SIMD指令赫粥,數(shù)據(jù)并行观话,加快代碼的運(yùn)行速度,所以看DL框架的源代碼越平,是看不到多線程相關(guān)的代碼的频蛔。
5、向量化實(shí)現(xiàn)的解釋
沒(méi)什么好解釋的秦叛,就是:Z=WX+b; A=sigmoid(Z)晦溪。
6、激活函數(shù)
(1)tanh函數(shù)的效果幾乎總是比sigmoid好书闸,所以隱藏層幾乎不會(huì)使用sigmoid來(lái)引入非線性尼变。
(2)當(dāng)構(gòu)建二分類模型的時(shí)候,輸出層使用sigmoid使得輸出歸一化為輸入樣本屬于正類的概率浆劲。
(3)由于S型函數(shù)存在導(dǎo)數(shù)趨近于零的區(qū)域嫌术,故在反向傳播鏈?zhǔn)角髮?dǎo)的時(shí)候,會(huì)導(dǎo)致梯度趨近于零牌借,使得訓(xùn)練速度變慢度气。
(4)ReLU函數(shù)在z=0處不可微(可微必可導(dǎo),可導(dǎo)必可微膨报;可導(dǎo)必連續(xù)磷籍,連續(xù)不一定可導(dǎo)),導(dǎo)數(shù)沒(méi)有定義(編程的時(shí)候现柠,z=0處的導(dǎo)數(shù)可以為0也可以為1院领,喜歡就好),事實(shí)上z=0的概率極低够吩;它的另外一個(gè)缺點(diǎn)比然,當(dāng)z<0時(shí),導(dǎo)數(shù)為零周循。
(5)Leaky ReLU强法,a=max(0.01z, z);不過(guò)由于有足夠多的隱藏單元使得z往往都大于零湾笛,故實(shí)際應(yīng)用中還是常用ReLU饮怯。
7、為什么需要非線性激活函數(shù)
(1)如果隱藏層神經(jīng)單元都使用線性激活函數(shù)嚎研,則任意多層的MLP都可以約簡(jiǎn)為感知機(jī)蓖墅,即依然只是一個(gè)線性模型,即模型的輸出依然只是輸入特征的線性組合,無(wú)法解決非線性問(wèn)題置媳,更多詳見(jiàn) 多層感知機(jī)/器-MLP于樟。
(2)如果是回歸問(wèn)題,即輸入輸入對(duì)的輸出(樣本的標(biāo)簽)為連續(xù)值拇囊,則輸出層可以使用線性激活函數(shù)迂曲。
8、計(jì)算激活函數(shù)的導(dǎo)數(shù)
(1)a=sigmoid(z), da/dz=a(1-a)寥袭。
(2)a=tanh(z), da/dz=1-a的平方路捧。
(3)ReLU和Leaky ReLU在z=0處不可導(dǎo)。
9传黄、使用梯度下降訓(xùn)練NN
向量化杰扫,沒(méi)什么需要記錄的內(nèi)容
10、直觀理解反向傳播
(1)向量化膘掰,單樣本訓(xùn)練logistic回歸模型章姓。
(2)向量化,單樣本訓(xùn)練NN识埋。
(3)向量化凡伊,多樣本訓(xùn)練NN,如下面兩圖所示:
11系忙、隨機(jī)初始化(關(guān)于權(quán)重初始化,理解得還不是特別到位惠豺,需要看些論文)
(1)logistic回歸的權(quán)重向量可以被初始化成全零银还,softmax回歸的權(quán)重矩陣亦可。
(2)MLP每一層的權(quán)重矩陣不可以被初始化成全零洁墙,否則網(wǎng)絡(luò)會(huì)不work蛹疯,不過(guò)偏置向量可以初始化成全零。
(3)如果MLP的權(quán)重矩陣被初始化成全零热监,則每一個(gè)神經(jīng)元都在做一樣的計(jì)算捺弦,則輸出的激活值矩陣所有元素均相等;反向傳播時(shí)梯度矩陣dW=dZ*Ai-1
狼纬,兩個(gè)所有item皆相等的矩陣相乘得到的新的矩陣所有item亦相等;參數(shù)更新之后骂际,權(quán)重矩陣所有item依然相等疗琉,即某一層每個(gè)神經(jīng)元依然在做一樣的計(jì)算,則最后softmax輸出層計(jì)算得到的該樣本屬于各個(gè)類別的概率將會(huì)是一樣的歉铝,則模型完全不work盈简。
(4)需要將權(quán)重隨機(jī)初始化成一些很小的數(shù),因?yàn)檩敵鰧涌赡軙?huì)使用sigmoid函數(shù),則dZ=dA*dA/dZ柠贤,若權(quán)重很大香浩,則Z的元素會(huì)很大或很小(負(fù)數(shù))臼勉,則dZ的元素會(huì)趨近于零邻吭,導(dǎo)致梯度下降優(yōu)化參數(shù)很慢。