開始接觸神經(jīng)網(wǎng)絡(luò)(Neural Network,NN)的入門例子 MNIST及其論文 Y. LeCun, L. Bottou, Y. Bengio and P. Haffner: Gradient-Based Learning Applied to Document Recognition, Proceedings of the IEEE, 86(11):2278-2324, November 1998 時,難免會有很多疑問:例如:
- 什么是CNN、RNN、LSTM?什么是卷積(convolution)層、池化(pooling)層、全連接(fully connected)層、Dropout層?
- 為什么需要激活函數(shù)?為什么ReLU不處處可微卻性能優(yōu)良?
- 什么是反向傳播?怎么實現(xiàn)?
- 損失函數(shù)如何設(shè)置?
- 優(yōu)化算法如何選取?什么是貝葉斯正則化?如何設(shè)置學(xué)習(xí)率可以保證最速訓(xùn)練且收斂到全局最優(yōu)?
- 學(xué)習(xí)率、Batch_Size和Epoch的如何設(shè)置?
帶著這些疑問找到了一本講述傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的書《神經(jīng)網(wǎng)絡(luò)設(shè)計(第二版)》,讀之后感覺豁然開朗,學(xué)了多年的《線性代數(shù)》終于明白了怎么用,而且順便復(fù)習(xí)了很多學(xué)過的課程:線性代數(shù)、高等數(shù)學(xué)、概率論與數(shù)理統(tǒng)計、離散信號處理、隨機(jī)信號處理、數(shù)字圖像處理、數(shù)學(xué)物理方法,收獲良多,故而整理下作為學(xué)習(xí)筆記。本文所有配圖及其版權(quán)歸原作者所有,本文僅供學(xué)習(xí)。另外中文翻譯版內(nèi)容有些許錯誤,強(qiáng)烈建議對照著原版pdf一起學(xué)習(xí)。
原書名為《NEURAL NETWORK DESIGN (Second Edition)》,作者:Mattin T.Hagan、Howard B.Demuth、Mark H.Bearle 和 Orlando De Jesus。
配套的演示軟件、書籍pdf版及ppt下載頁面如下:
第1章 神經(jīng)元模型及網(wǎng)絡(luò)結(jié)構(gòu)
1.1 神經(jīng)元模型
1.1.1 單輸入神經(jīng)元
標(biāo)量輸入 乘以權(quán)值(weight)
得到
,作為其中的一項進(jìn)入累加器,另一個輸入"1"乘以一個偏置值(bias)
,再送入累加器。累加器的輸出結(jié)果
,通常稱作
凈輸入
(net input) ,送給 傳輸函數(shù)
(transfer function) 作用后,產(chǎn)生標(biāo)量
,作為神經(jīng)元的輸出(一些作者使用“激活函數(shù)”而不是“傳輸函數(shù)”,“補(bǔ)償”而不是“偏置值”)。權(quán)值
對應(yīng)生物神經(jīng)元的突觸連接的強(qiáng)度,胞體由累加器和激活函數(shù)來表述,神經(jīng)元的輸出
代表突觸上的信號。神經(jīng)元的實際輸出依賴于不同激活函數(shù)的選擇。
1.1.2 激活函數(shù)
激活函數(shù)可以是一個關(guān)于凈輸入 的線性或非線性函數(shù)。
(1)硬限值:如果自變量小于0,神經(jīng)元輸出0;如果函數(shù)大于等于0,神經(jīng)元輸出1。
輸入/輸出特性如下
(2)線性:輸出等于輸入
輸入/輸出特性如下圖:
(3)對數(shù)-S型(log-sigmoid):
輸入/輸出特性如下
(4)Tanh (hyperbolic tangent sigmoid 雙曲正切S型),用于循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(recurrent neural networks):
(5)ReLU (rectified linear units),目前卷積神經(jīng)網(wǎng)絡(luò)CNN(convolutional neural networks)中喜歡使用的激活函數(shù):
1.1.3 多輸入神經(jīng)元
個輸入權(quán)值
,
,... ,
對應(yīng)權(quán)值矩陣
共享神經(jīng)元的偏置
1.2 網(wǎng)絡(luò)結(jié)構(gòu)
1.2.1 單層神經(jīng)網(wǎng)絡(luò)
個輸入,
個神經(jīng)元的權(quán)值矩陣:
1.2.2 多層神經(jīng)網(wǎng)絡(luò)
1.2.3 循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent network , RNN)
延遲器:
假設(shè)時間步長的更新是離散的,并且只取整數(shù)值
積分器:
代表初始條件
循環(huán)神經(jīng)網(wǎng)絡(luò)是一個帶有反饋的網(wǎng)絡(luò),它的部分輸出連接到它的輸入。
延遲器、積分器和循環(huán)神經(jīng)網(wǎng)絡(luò)RNN如圖所示:
第2章 一個小例子
三種網(wǎng)絡(luò):前饋網(wǎng)絡(luò)(感知機(jī)為代表)、競爭網(wǎng)絡(luò)(Hamming 網(wǎng)絡(luò)為代表)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Hopfield 網(wǎng)絡(luò)為代表)
2.1 問題描述:模式識別
水果的三種特征:形狀、紋理和重量
- 形狀感知器:近似圓輸出 1 ,近似橢圓輸出 -1
- 紋理感知器:表面光滑輸出 1 , 表面粗糙輸出 -1
- 重量感知器:大于1磅輸出 1 , 小于1磅輸出 -1
輸入、標(biāo)準(zhǔn)的橘子和標(biāo)準(zhǔn)的蘋果為:
2.2 感知機(jī)
采用對稱硬限值激活函數(shù) handlims 的單層感知機(jī)
2.2.1 兩個輸入的實例
單神經(jīng)元的感知機(jī)能把輸入向量分為兩類
如果輸入權(quán)值矩陣(這里是一個行向量)和輸入向量的內(nèi)積大于或者等于 ,則感知機(jī)的輸出為 1 ,如果內(nèi)積小于
,則輸出 -1 。這樣將空間劃分為兩個部分
邊界條件為:
2.2.2 模式識別實例
偏置值 , 權(quán)值矩陣
,權(quán)值矩陣正交與決策邊界
感知機(jī)的決策邊界與標(biāo)準(zhǔn)向量:
2.3 Hamming 網(wǎng)絡(luò)
為了解決二值模式識別的問題而特別設(shè)計的(輸入向量中的每個元素都只有2個可能的取值)
包含一層前饋層和一層反饋層,兩層神經(jīng)元個數(shù)相同,標(biāo)準(zhǔn)的Hamming 網(wǎng)絡(luò)如下:
Hamming 網(wǎng)絡(luò)的目標(biāo)是判斷哪個標(biāo)準(zhǔn)向量最接近輸入向量。判斷結(jié)果由反饋層的輸出表示。對于每一個標(biāo)準(zhǔn)模式
而言,在反饋層中都有與之對應(yīng)的神經(jīng)元。當(dāng)反饋層收斂后,只有一個神經(jīng)元會輸出非零值,該神經(jīng)元就表示哪一個標(biāo)準(zhǔn)模式
最接近輸入向量。
2.3.1 前饋層
前饋層用來計算每個標(biāo)準(zhǔn)模式
和輸入模式
之間的相關(guān)性或內(nèi)積。為了達(dá)到計算相關(guān)性的目的,前饋層中權(quán)值矩陣用連接矩陣 表示,該矩陣每一行設(shè)置為一個標(biāo)準(zhǔn)模式。在蘋果和橘子實例中:
前饋層中使用線性傳輸函數(shù),偏置向量中的每個元素都等于 ,其中
等于輸入向量中元素的個數(shù),偏置向量為:
通過選擇權(quán)值和偏置向量,前饋層的輸出為:
注意:前饋層的輸出等于每個標(biāo)準(zhǔn)模式和輸入向量的內(nèi)積加上 。對于兩個長度(范數(shù))相同的向量而言,當(dāng)它們方向相同時內(nèi)積最大,方向相反時內(nèi)積最小。通過給內(nèi)積加上
,來確保前饋層的輸出永遠(yuǎn)不會為負(fù)數(shù),這也是反饋層所需要的。
2.3.2 反饋層
反饋層正是所謂的 競爭層 。初始值為前饋層的輸出,這個輸出代表著標(biāo)準(zhǔn)模式和輸入向量的相關(guān)性。然后該層的神經(jīng)元互相競爭決定一個勝者。競爭結(jié)束后,只會有一個神經(jīng)元的輸出為零。獲勝的神經(jīng)元表明了網(wǎng)絡(luò)輸入的類別。
其中上標(biāo)表示網(wǎng)絡(luò)層數(shù)
權(quán)值矩陣為:
其中 是一個小于
的數(shù),
為反饋層中神經(jīng)元的個數(shù)。
反饋層一次迭代計算過程為:
向量中每一個元素都要同等比例減去另一個元素的一部分,值較大的元素減幅小一些,值較小的元素減幅大一些,因此值較大的元素與值較小元素之間的差異就會增大。反饋層的作用就在于將除了初始值最大的神經(jīng)元外的其他所有神經(jīng)元的輸出逐步縮小為0(最終輸出值最大的神經(jīng)元對應(yīng)著與輸入的 Hamming 距離最小的標(biāo)準(zhǔn)輸入模式)
運行過程如下:
考慮用于驗證感知機(jī)的橢圓形橘子
前饋層的輸出為:
上式的結(jié)果是反饋層的初始條件:
反饋層第一次迭代結(jié)果:
反饋層第二次迭代結(jié)果:
由于后續(xù)迭代的輸出都相同,所以網(wǎng)絡(luò)是收斂的。因為只有第一神經(jīng)元輸出了非零值,所以選擇第一個標(biāo)注模式 橘子
作為匹配結(jié)果。因為 橘子
的標(biāo)準(zhǔn)模式與輸入模式的 Hamming 距離為 1 ,而蘋果
的標(biāo)準(zhǔn)模式和輸入模式的 Hamming 距離為2 ,所以網(wǎng)絡(luò)做出的選擇是正確的。
2.4 Hopfield 網(wǎng)絡(luò)
循環(huán)網(wǎng)絡(luò),可以完成 Hamming 網(wǎng)絡(luò)兩層結(jié)構(gòu)才能完成的工作。Hopfield 網(wǎng)絡(luò)的一種變形如下圖:
使用輸入向量來初始化該網(wǎng)絡(luò)的神經(jīng)元,然后網(wǎng)絡(luò)不斷迭代直到收斂。當(dāng)網(wǎng)絡(luò)結(jié)果正確時,其輸出結(jié)果將會是某一個標(biāo)準(zhǔn)向量。
在 Hamming 網(wǎng)絡(luò)中由輸出非零值的神經(jīng)元來表明選定了哪種標(biāo)準(zhǔn)模式,而 Hopfield 網(wǎng)絡(luò)則是直接生成一個選定的標(biāo)準(zhǔn)模式作為輸出。
網(wǎng)絡(luò)運算:
satlins 表示對稱飽和輸出函數(shù),其輸入輸出為:
Hamming 網(wǎng)絡(luò)的前饋層的權(quán)值為標(biāo)準(zhǔn)模式,在Hopfield 網(wǎng)絡(luò)中權(quán)值矩陣和偏置向量的設(shè)置要復(fù)雜許多。
2.5 總結(jié)
感知機(jī)是前饋網(wǎng)絡(luò)的一個實例。在這些網(wǎng)絡(luò)中,輸出是直接根據(jù)輸入計算得到的,中間沒有任何形式的反饋。前饋網(wǎng)絡(luò)可以用于模式識別,也可以用于函數(shù)逼近。函數(shù)逼近在自適應(yīng)濾波和自動控制等領(lǐng)域已有所應(yīng)用。
以 Hamming 網(wǎng)絡(luò)為代表的競爭網(wǎng)絡(luò)由兩個主要的特性。第一,它們計算了已存儲的標(biāo)準(zhǔn)模式和輸入模式之間的距離。第二,它們通過競爭來決定哪個神經(jīng)元所代表的標(biāo)準(zhǔn)模式最接近輸入。
以 Hopfield 網(wǎng)絡(luò)為代表的循環(huán)網(wǎng)絡(luò),最初是受統(tǒng)計力學(xué)的啟發(fā)。它們被用作聯(lián)想記憶,其中已存儲的數(shù)據(jù)可以通過與輸入數(shù)據(jù)的關(guān)聯(lián)關(guān)系而不是基于地址被提取。循環(huán)網(wǎng)絡(luò)已經(jīng)被用來解決各種優(yōu)化問題。
第3章 感知機(jī)學(xué)習(xí)規(guī)則
在不能可視化決策邊界的情況下,如何確定多輸入感知機(jī)網(wǎng)絡(luò)的權(quán)值矩陣和偏置值?
單層感知機(jī)網(wǎng)絡(luò)的優(yōu)點和局限性
3.1 學(xué)習(xí)規(guī)則
指修改網(wǎng)絡(luò)權(quán)值和偏置值的方法和過程,也稱為訓(xùn)練算法。學(xué)習(xí)規(guī)則是為了訓(xùn)練網(wǎng)絡(luò)來完成某些任務(wù)。學(xué)習(xí)規(guī)則可以歸納為三大類:
- 有監(jiān)督學(xué)習(xí)
- 無監(jiān)督學(xué)習(xí)
- 增強(qiáng)(評分)學(xué)習(xí) :適合應(yīng)用于決策等控制系統(tǒng)
3.2 感知機(jī)結(jié)構(gòu)
網(wǎng)絡(luò)的輸出為:
網(wǎng)絡(luò)中的每個神經(jīng)元把輸入空間劃分成了兩個區(qū)域
3.2.1 單神經(jīng)元感知機(jī)
考慮兩個輸入,輸出為:
決策邊界(descision boundary)通過網(wǎng)絡(luò)的凈輸入 等于 0 的輸入向量來確定
對于決策邊界上的所有點而言,輸入向量與權(quán)值向量間的內(nèi)積都相等。
3.2.2 多神經(jīng)元感知機(jī)
每個神經(jīng)元都有一個決策邊界:
3.3 感知機(jī)學(xué)習(xí)規(guī)則
有監(jiān)督訓(xùn)練的學(xué)習(xí)過程是從一組能夠正確反映網(wǎng)絡(luò)行為的樣本集中獲得的:
其中 是網(wǎng)絡(luò)的輸入,
是該輸入相應(yīng)的目標(biāo)輸出。當(dāng)每個輸入作用到網(wǎng)絡(luò)上時,將網(wǎng)絡(luò)的實際輸出與目標(biāo)輸出相比較。為了使網(wǎng)絡(luò)的實際輸出盡量靠近目標(biāo)輸出,學(xué)習(xí)規(guī)則將調(diào)整該網(wǎng)絡(luò)的權(quán)值和偏置值。
統(tǒng)一的學(xué)習(xí)規(guī)則:
定義感知機(jī)誤差 :
其中 代表目標(biāo)輸出,
代表實際輸出
權(quán)值學(xué)習(xí)規(guī)則:
將偏置值看作一個輸入總是1的權(quán)值,則偏置值學(xué)習(xí)規(guī)則:
通常將權(quán)值和偏置值初始化為較小的隨機(jī)數(shù)
3.4 收斂性證明
可以證明:
該規(guī)則總能收斂到能實現(xiàn)正確分類的權(quán)值上(假設(shè)權(quán)值存在)
感知機(jī)的學(xué)習(xí)規(guī)則將在有限次迭代后收斂
局限性:
無法解決 “異或”門 (兩個輸入值相同輸出0,輸入值不同輸出1)問題
3.5 小結(jié)
決策邊界總與權(quán)值向量正交
單層感知機(jī)只能對線性可分的向量進(jìn)行分類
學(xué)習(xí)規(guī)則:
由于簡書一篇文章的字?jǐn)?shù)不能太多,更多的內(nèi)容請轉(zhuǎn)如下鏈接:
迷人的神經(jīng)網(wǎng)絡(luò)——機(jī)器學(xué)習(xí)筆記1