開始接觸神經(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 時(shí),難免會有很多疑問:例如:
- 什么是CNN、RNN、LSTM?什么是卷積(convolution)層蓬豁、池化(pooling)層、全連接(fully connected)層菇肃、Dropout層地粪?
- 為什么需要激活函數(shù)?為什么ReLU不處處可微卻性能優(yōu)良琐谤?
- 什么是反向傳播蟆技?怎么實(shí)現(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è)計(jì)(第二版)》妻坝,讀之后感覺豁然開朗,學(xué)了多年的《線性代數(shù)》終于明白了怎么用惊窖,而且順便復(fù)習(xí)了很多學(xué)過的課程:線性代數(shù)刽宪、高等數(shù)學(xué)、概率論與數(shù)理統(tǒng)計(jì)界酒、離散信號處理圣拄、隨機(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)
得到
琼稻,作為其中的一項(xiàng)進(jìn)入累加器吮螺,另一個(gè)輸入"1"乘以一個(gè)偏置值(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í)際輸出依賴于不同激活函數(shù)的選擇梨与。
1.1.2 激活函數(shù)
激活函數(shù)可以是一個(gè)關(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)元
個(gè)輸入權(quán)值
苏研,
等浊,... ,
對應(yīng)權(quán)值矩陣
共享神經(jīng)元的偏置
1.2 網(wǎng)絡(luò)結(jié)構(gòu)
1.2.1 單層神經(jīng)網(wǎng)絡(luò)
個(gè)輸入摹蘑,
個(gè)神經(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í)間步長的更新是離散的筹燕,并且只取整數(shù)值
積分器:
代表初始條件
循環(huán)神經(jīng)網(wǎng)絡(luò)是一個(gè)帶有反饋的網(wǎng)絡(luò),它的部分輸出連接到它的輸入。
延遲器撒踪、積分器和循環(huán)神經(jīng)網(wǎng)絡(luò)RNN如圖所示:
第2章 一個(gè)小例子
三種網(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 兩個(gè)輸入的實(shí)例
單神經(jīng)元的感知機(jī)能把輸入向量分為兩類
如果輸入權(quán)值矩陣(這里是一個(gè)行向量)和輸入向量的內(nèi)積大于或者等于 砸脊,則感知機(jī)的輸出為 1 ,如果內(nèi)積小于
纬霞,則輸出 -1 凌埂。這樣將空間劃分為兩個(gè)部分
邊界條件為:
2.2.2 模式識別實(shí)例
偏置值 , 權(quán)值矩陣
诗芜,權(quán)值矩陣正交與決策邊界
感知機(jī)的決策邊界與標(biāo)準(zhǔn)向量:
2.3 Hamming 網(wǎng)絡(luò)
為了解決二值模式識別的問題而特別設(shè)計(jì)的(輸入向量中的每個(gè)元素都只有2個(gè)可能的取值)
包含一層前饋層和一層反饋層瞳抓,兩層神經(jīng)元個(gè)數(shù)相同,標(biāo)準(zhǔn)的Hamming 網(wǎng)絡(luò)如下:
Hamming 網(wǎng)絡(luò)的目標(biāo)是判斷哪個(gè)標(biāo)準(zhǔn)向量最接近輸入向量伏恐。判斷結(jié)果由反饋層的輸出表示孩哑。對于每一個(gè)標(biāo)準(zhǔn)模式
而言,在反饋層中都有與之對應(yīng)的神經(jīng)元翠桦。當(dāng)反饋層收斂后横蜒,只有一個(gè)神經(jīng)元會輸出非零值,該神經(jīng)元就表示哪一個(gè)標(biāo)準(zhǔn)模式
最接近輸入向量销凑。
2.3.1 前饋層
前饋層用來計(jì)算每個(gè)標(biāo)準(zhǔn)模式
和輸入模式
之間的相關(guān)性或內(nèi)積丛晌。為了達(dá)到計(jì)算相關(guān)性的目的,前饋層中權(quán)值矩陣用連接矩陣 表示斗幼,該矩陣每一行設(shè)置為一個(gè)標(biāo)準(zhǔn)模式澎蛛。在蘋果和橘子實(shí)例中:
前饋層中使用線性傳輸函數(shù),偏置向量中的每個(gè)元素都等于 蜕窿,其中
等于輸入向量中元素的個(gè)數(shù)谋逻,偏置向量為:
通過選擇權(quán)值和偏置向量桐经,前饋層的輸出為:
注意:前饋層的輸出等于每個(gè)標(biāo)準(zhǔn)模式和輸入向量的內(nèi)積加上 。對于兩個(gè)長度(范數(shù))相同的向量而言次询,當(dāng)它們方向相同時(shí)內(nèi)積最大荧恍,方向相反時(shí)內(nèi)積最小。通過給內(nèi)積加上
,來確保前饋層的輸出永遠(yuǎn)不會為負(fù)數(shù)送巡,這也是反饋層所需要的摹菠。
2.3.2 反饋層
反饋層正是所謂的 競爭層 。初始值為前饋層的輸出骗爆,這個(gè)輸出代表著標(biāo)準(zhǔn)模式和輸入向量的相關(guān)性次氨。然后該層的神經(jīng)元互相競爭決定一個(gè)勝者。競爭結(jié)束后摘投,只會有一個(gè)神經(jīng)元的輸出為零煮寡。獲勝的神經(jīng)元表明了網(wǎng)絡(luò)輸入的類別。
其中上標(biāo)表示網(wǎng)絡(luò)層數(shù)
權(quán)值矩陣為:
其中 是一個(gè)小于
的數(shù)犀呼,
為反饋層中神經(jīng)元的個(gè)數(shù)幸撕。
反饋層一次迭代計(jì)算過程為:
向量中每一個(gè)元素都要同等比例減去另一個(gè)元素的一部分,值較大的元素減幅小一些外臂,值較小的元素減幅大一些坐儿,因此值較大的元素與值較小元素之間的差異就會增大。反饋層的作用就在于將除了初始值最大的神經(jīng)元外的其他所有神經(jīng)元的輸出逐步縮小為0(最終輸出值最大的神經(jīng)元對應(yīng)著與輸入的 Hamming 距離最小的標(biāo)準(zhǔn)輸入模式)
運(yùn)行過程如下:
考慮用于驗(yàn)證感知機(jī)的橢圓形橘子
前饋層的輸出為:
上式的結(jié)果是反饋層的初始條件:
反饋層第一次迭代結(jié)果:
反饋層第二次迭代結(jié)果:
由于后續(xù)迭代的輸出都相同宋光,所以網(wǎng)絡(luò)是收斂的貌矿。因?yàn)橹挥械谝簧窠?jīng)元輸出了非零值,所以選擇第一個(gè)標(biāo)注模式 橘子
作為匹配結(jié)果罪佳。因?yàn)?橘子
的標(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é)果正確時(shí),其輸出結(jié)果將會是某一個(gè)標(biāo)準(zhǔn)向量娇掏。
在 Hamming 網(wǎng)絡(luò)中由輸出非零值的神經(jīng)元來表明選定了哪種標(biāo)準(zhǔn)模式呕寝,而 Hopfield 網(wǎng)絡(luò)則是直接生成一個(gè)選定的標(biāo)準(zhǔn)模式作為輸出。
網(wǎng)絡(luò)運(yùn)算:
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ò)的一個(gè)實(shí)例孽江。在這些網(wǎng)絡(luò)中,輸出是直接根據(jù)輸入計(jì)算得到的番电,中間沒有任何形式的反饋岗屏。前饋網(wǎng)絡(luò)可以用于模式識別辆琅,也可以用于函數(shù)逼近。函數(shù)逼近在自適應(yīng)濾波和自動控制等領(lǐng)域已有所應(yīng)用这刷。
以 Hamming 網(wǎng)絡(luò)為代表的競爭網(wǎng)絡(luò)由兩個(gè)主要的特性婉烟。第一,它們計(jì)算了已存儲的標(biāo)準(zhǔn)模式和輸入模式之間的距離暇屋。第二似袁,它們通過競爭來決定哪個(gè)神經(jīng)元所代表的標(biāo)準(zhǔn)模式最接近輸入。
以 Hopfield 網(wǎng)絡(luò)為代表的循環(huán)網(wǎng)絡(luò)咐刨,最初是受統(tǒng)計(jì)力學(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)點(diǎn)和局限性
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ò)中的每個(gè)神經(jīng)元把輸入空間劃分成了兩個(gè)區(qū)域
3.2.1 單神經(jīng)元感知機(jī)
考慮兩個(gè)輸入,輸出為:
決策邊界(descision boundary)通過網(wǎng)絡(luò)的凈輸入 等于 0 的輸入向量來確定
對于決策邊界上的所有點(diǎn)而言华糖,輸入向量與權(quán)值向量間的內(nèi)積都相等麦向。
3.2.2 多神經(jīng)元感知機(jī)
每個(gè)神經(jīng)元都有一個(gè)決策邊界:
3.3 感知機(jī)學(xué)習(xí)規(guī)則
有監(jiān)督訓(xùn)練的學(xué)習(xí)過程是從一組能夠正確反映網(wǎng)絡(luò)行為的樣本集中獲得的:
其中 是網(wǎng)絡(luò)的輸入,
是該輸入相應(yīng)的目標(biāo)輸出客叉。當(dāng)每個(gè)輸入作用到網(wǎng)絡(luò)上時(shí)诵竭,將網(wǎng)絡(luò)的實(shí)際輸出與目標(biāo)輸出相比較。為了使網(wǎng)絡(luò)的實(shí)際輸出盡量靠近目標(biāo)輸出兼搏,學(xué)習(xí)規(guī)則將調(diào)整該網(wǎng)絡(luò)的權(quán)值和偏置值卵慰。
統(tǒng)一的學(xué)習(xí)規(guī)則:
定義感知機(jī)誤差 :
其中 代表目標(biāo)輸出,
代表實(shí)際輸出
權(quán)值學(xué)習(xí)規(guī)則:
將偏置值看作一個(gè)輸入總是1的權(quán)值佛呻,則偏置值學(xué)習(xí)規(guī)則:
通常將權(quán)值和偏置值初始化為較小的隨機(jī)數(shù)
3.4 收斂性證明
可以證明:
該規(guī)則總能收斂到能實(shí)現(xiàn)正確分類的權(quán)值上(假設(shè)權(quán)值存在)
感知機(jī)的學(xué)習(xí)規(guī)則將在有限次迭代后收斂
局限性:
無法解決 “異或”門 (兩個(gè)輸入值相同輸出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