【DW 11月-西瓜書學習筆記】Task04:第五章 神經(jīng)網(wǎng)絡

第五章 神經(jīng)網(wǎng)絡

所謂神經(jīng)網(wǎng)絡厂置,目前用得最廣泛的一個定義是“神經(jīng)網(wǎng)絡是由具有適應性的簡單單元組成的廣泛并行互連的網(wǎng)絡,它的組織能夠模擬生物神經(jīng)系統(tǒng)對真實世界物體所做出的交互反應”也殖。

5.1? 神經(jīng)元模型

神經(jīng)網(wǎng)絡中最基本的單元是神經(jīng)元模型(neuron)。在生物神經(jīng)網(wǎng)絡的原始機制中,每個神經(jīng)元通常都有多個樹突(dendrite),一個軸突(axon)和一個細胞體(cell body)斧拍,樹突短而多分支,軸突長而只有一個杖小;在功能上饮焦,樹突用于傳入其它神經(jīng)元傳遞的神經(jīng)沖動怕吴,而軸突用于將神經(jīng)沖動傳出到其它神經(jīng)元,當樹突或細胞體傳入的神經(jīng)沖動使得神經(jīng)元興奮時县踢,該神經(jīng)元就會通過軸突向其它神經(jīng)元傳遞興奮。


一直沿用至今的“M-P神經(jīng)元模型”正是對這一結構進行了抽象伟件,也稱“閾值邏輯單元“硼啤,其中樹突對應于輸入部分,每個神經(jīng)元收到n個其他神經(jīng)元傳遞過來的輸入信號斧账,這些信號通過帶權重的連接傳遞給細胞體谴返,這些權重又稱為連接權(connection weight)。細胞體分為兩部分咧织,前一部分計算總輸入值(即輸入信號的加權和嗓袱,或者說累積電平),后一部分先計算總輸入值與該神經(jīng)元閾值的差值习绢,然后通過激活函數(shù)(activation function)的處理渠抹,產(chǎn)生輸出從軸突傳送給其它神經(jīng)元。M-P神經(jīng)元模型如下圖所示:

與線性分類十分相似闪萄,神經(jīng)元模型最理想的激活函數(shù)也是階躍函數(shù)梧却,即將神經(jīng)元輸入值與閾值的差值映射為輸出值1或0,若差值大于零輸出1败去,對應興奮放航;若差值小于零則輸出0,對應抑制圆裕。但階躍函數(shù)不連續(xù)广鳍,不光滑,故在M-P神經(jīng)元模型中吓妆,也采用Sigmoid函數(shù)來近似赊时, Sigmoid函數(shù)將較大范圍內變化的輸入值擠壓到 (0,1) 輸出值范圍內,所以也稱為擠壓函數(shù)(squashing function)耿战。

將多個神經(jīng)元按一定的層次結構連接起來蛋叼,就得到了神經(jīng)網(wǎng)絡。它是一種包含多個參數(shù)的模型剂陡,比方說10個神經(jīng)元兩兩連接狈涮,則有100個參數(shù)需要學習(每個神經(jīng)元有9個連接權以及1個閾值),若將每個神經(jīng)元都看作一個函數(shù)鸭栖,則整個神經(jīng)網(wǎng)絡就是由這些函數(shù)相互嵌套而成歌馍。

5.2 感知機和多層網(wǎng)絡

感知機(Perceptron)是由兩層神經(jīng)元組成的一個簡單模型,但只有輸出層是M-P神經(jīng)元晕鹊,即只有輸出層神經(jīng)元進行激活函數(shù)處理松却,也稱為功能神經(jīng)元(functional neuron)暴浦;輸入層只是接受外界信號(樣本屬性)并傳遞給輸出層(輸入層的神經(jīng)元個數(shù)等于樣本的屬性數(shù)目),而沒有激活函數(shù)晓锻。這樣一來歌焦,感知機與之前線性模型中的對數(shù)幾率回歸的思想基本是一樣的,都是通過對屬性加權與另一個常數(shù)求和砚哆,再使用sigmoid函數(shù)將這個輸出值壓縮到0-1之間独撇,從而解決分類問題。不同的是感知機的輸出層應該可以有多個神經(jīng)元躁锁,從而可以實現(xiàn)多分類問題纷铣,同時兩個模型所用的參數(shù)估計方法十分不同。

給定訓練集战转,則感知機的n+1個參數(shù)(n個權重+1個閾值)都可以通過學習得到搜立。閾值Θ可以看作一個輸入值固定為-1的啞結點的權重ωn+1,即假設有一個固定輸入xn+1=-1的輸入層神經(jīng)元槐秧,其對應的權重為ωn+1啄踊,這樣就把權重和閾值統(tǒng)一為權重的學習了。簡單感知機的結構如下圖所示:

感知機權重的學習規(guī)則如下:對于訓練樣本(x色鸳,y)社痛,當該樣本進入感知機學習后,會產(chǎn)生一個輸出值命雀,若該輸出值與樣本的真實標記不一致蒜哀,則感知機會對權重進行調整,若激活函數(shù)為階躍函數(shù)吏砂,則調整的方法為(基于梯度下降法):

其中 η∈(0撵儿,1)稱為學習率,可以看出感知機是通過逐個樣本輸入來更新權重狐血,首先設定好初始權重(一般為隨機)淀歇,逐個地輸入樣本數(shù)據(jù),若輸出值與真實標記相同則繼續(xù)輸入下一個樣本匈织,若不一致則更新權重浪默,然后再重新逐個檢驗,直到每個樣本數(shù)據(jù)的輸出值都與真實標記相同缀匕。容易看出:感知機模型總是能將訓練數(shù)據(jù)的每一個樣本都預測正確纳决,和決策樹模型總是能將所有訓練數(shù)據(jù)都分開一樣,感知機模型很容易產(chǎn)生過擬合問題乡小。

由于感知機模型只有一層功能神經(jīng)元阔加,因此其功能十分有限,只能處理線性可分的問題满钟,對于這類問題胜榔,感知機的學習過程一定會收斂(converge)胳喷,因此總是可以求出適當?shù)臋嘀怠5菍τ谙駮咸岬降漠惢騿栴}夭织,只通過一層功能神經(jīng)元往往不能解決吭露,因此要解決非線性可分問題,需要考慮使用多層功能神經(jīng)元摔癣,即神經(jīng)網(wǎng)絡奴饮。多層神經(jīng)網(wǎng)絡的拓撲結構如下圖所示:

在神經(jīng)網(wǎng)絡中,輸入層與輸出層之間的層稱為隱含層或隱層(hidden layer)择浊,隱層和輸出層的神經(jīng)元都是具有激活函數(shù)的功能神經(jīng)元。只需包含一個隱層便可以稱為多層神經(jīng)網(wǎng)絡逾条,常用的神經(jīng)網(wǎng)絡稱為“多層前饋神經(jīng)網(wǎng)絡”(multi-layer feedforward neural network)琢岩,該結構滿足以下幾個特點:

* 每層神經(jīng)元與下一層神經(jīng)元之間完全互連?

* 神經(jīng)元之間不存在同層連接?

* 神經(jīng)元之間不存在跨層連接?

根據(jù)上面的特點可以得知:這里的“前饋”指的是網(wǎng)絡拓撲結構中不存在環(huán)或回路,而不是指該網(wǎng)絡只能向前傳播而不能向后傳播(下節(jié)中的BP神經(jīng)網(wǎng)絡正是基于前饋神經(jīng)網(wǎng)絡而增加了反饋調節(jié)機制)师脂。神經(jīng)網(wǎng)絡的學習過程就是根據(jù)訓練數(shù)據(jù)來調整神經(jīng)元之間的“連接權”以及每個神經(jīng)元的閾值担孔,換句話說:神經(jīng)網(wǎng)絡所學習到的東西都蘊含在網(wǎng)絡的連接權與閾值中。

5.3 BP神經(jīng)網(wǎng)絡算法

由上面可以得知:神經(jīng)網(wǎng)絡的學習主要蘊含在權重和閾值中吃警,多層網(wǎng)絡使用上面簡單感知機的權重調整規(guī)則顯然不夠用了糕篇,BP神經(jīng)網(wǎng)絡算法即誤差逆?zhèn)鞑ニ惴ǎ╡rror BackPropagation)正是為學習多層前饋神經(jīng)網(wǎng)絡而設計,BP神經(jīng)網(wǎng)絡算法是迄今為止最成功的的神經(jīng)網(wǎng)絡學習算法酌心。

一般而言拌消,只需包含一個足夠多神經(jīng)元的隱層,就能以任意精度逼近任意復雜度的連續(xù)函數(shù)[Hornik et al.,1989]安券,故下面以訓練單隱層的前饋神經(jīng)網(wǎng)絡為例墩崩,介紹BP神經(jīng)網(wǎng)絡的算法思想。


上圖為一個單隱層前饋神經(jīng)網(wǎng)絡的拓撲結構侯勉,BP神經(jīng)網(wǎng)絡算法也使用梯度下降法(gradient descent)鹦筹,以單個樣本的均方誤差的負梯度方向對權重進行調節(jié)≈访玻可以看出:BP算法首先將誤差反向傳播給隱層神經(jīng)元铐拐,調節(jié)隱層到輸出層的連接權重與輸出層神經(jīng)元的閾值;接著根據(jù)隱含層神經(jīng)元的均方誤差练对,來調節(jié)輸入層到隱含層的連接權值與隱含層神經(jīng)元的閾值遍蟋。BP算法基本的推導過程與感知機的推導過程原理是相同的,下面給出調整隱含層到輸出層的權重調整規(guī)則的推導過程:

學習率η∈(0锹淌,1)控制著沿反梯度方向下降的步長匿值,若步長太大則下降太快容易產(chǎn)生震蕩,若步長太小則收斂速度太慢赂摆,一般地常把η設置為0.1挟憔,有時更新權重時會將輸出層與隱含層設置為不同的學習率钟些。BP算法的基本流程如下所示:

BP算法的更新規(guī)則是基于每個樣本的預測值與真實類標的均方誤差來進行權值調節(jié),即BP算法每次更新只針對于單個樣例绊谭。需要注意的是:BP算法的最終目標是要最小化整個訓練集D上的累積誤差政恍,即:

如果基于累積誤差最小化的更新規(guī)則,則得到了累積誤差逆?zhèn)鞑ニ惴ǎ╝ccumulated error backpropagation),即每次讀取全部的數(shù)據(jù)集一遍,進行一輪學習骡送,從而基于當前的累積誤差進行權值調整浮声,因此參數(shù)更新的頻率相比標準BP算法低了很多,但在很多任務中嘿棘,尤其是在數(shù)據(jù)量很大的時候,往往標準BP算法會獲得較好的結果。另外對于如何設置隱層神經(jīng)元個數(shù)的問題蒙保,至今仍然沒有好的解決方案,常使用“試錯法”進行調整欲主。

前面提到邓厕,BP神經(jīng)網(wǎng)絡強大的學習能力常常容易造成過擬合問題,有以下兩種策略來緩解BP網(wǎng)絡的過擬合問題:

早停:將數(shù)據(jù)分為訓練集與測試集扁瓢,訓練集用于學習详恼,測試集用于評估性能,若在訓練過程中引几,訓練集的累積誤差降低昧互,而測試集的累積誤差升高,則停止訓練她紫。

引入正則化(regularization):基本思想是在累積誤差函數(shù)中增加一個用于描述網(wǎng)絡復雜度的部分硅堆,例如所有權值與閾值的平方和,其中λ∈(0,1)用于對累積經(jīng)驗誤差與網(wǎng)絡復雜度這兩項進行折中贿讹,常通過交叉驗證法來估計渐逃。


5.4 全局最小和局部極小

模型學習的過程實質上就是一個尋找最優(yōu)參數(shù)的過程,例如BP算法試圖通過最速下降來尋找使得累積經(jīng)驗誤差最小的權值與閾值民褂,在談到最優(yōu)時茄菊,一般會提到局部極小(local minimum)和全局最猩蘅啊(global minimum)面殖。

* 局部極小解:參數(shù)空間中的某個點,其鄰域點的誤差函數(shù)值均不小于該點的誤差函數(shù)值哭廉。?

* 全局最小解:參數(shù)空間中的某個點脊僚,所有其他點的誤差函數(shù)值均不小于該點的誤差函數(shù)值。?


要成為局部極小點,只要滿足該點在參數(shù)空間中的梯度為零辽幌。局部極小可以有多個增淹,而全局最小只有一個。全局最小一定是局部極小乌企,但局部最小卻不一定是全局最小虑润。顯然在很多機器學習算法中,都試圖找到目標函數(shù)的全局最小加酵。梯度下降法的主要思想就是沿著負梯度方向去搜索最優(yōu)解拳喻,負梯度方向是函數(shù)值下降最快的方向,若迭代到某處的梯度為0猪腕,則表示達到一個局部最小冗澈,參數(shù)更新停止。因此在現(xiàn)實任務中陋葡,通常使用以下策略盡可能地去接近全局最小渗柿。

* 以多組不同參數(shù)值初始化多個神經(jīng)網(wǎng)絡,按標準方法訓練脖岛,迭代停止后,取其中誤差最小的解作為最終參數(shù)颊亮。?

* 使用“模擬退火”技術柴梆,這里不做具體介紹。?

* 使用隨機梯度下降终惑,即在計算梯度時加入了隨機因素绍在,使得在局部最小時,計算的梯度仍可能不為0雹有,從而迭代可以繼續(xù)進行偿渡。

5.5 深度學習

理論上,參數(shù)越多霸奕,模型復雜度就越高溜宽,容量(capability)就越大,從而能完成更復雜的學習任務质帅。深度學習(deep learning)正是一種極其復雜而強大的模型适揉。

怎么增大模型復雜度呢?兩個辦法煤惩,一是增加隱層的數(shù)目嫉嘀,二是增加隱層神經(jīng)元的數(shù)目。前者更有效一些魄揉,因為它不僅增加了功能神經(jīng)元的數(shù)量剪侮,還增加了激活函數(shù)嵌套的層數(shù)。但是對于多隱層神經(jīng)網(wǎng)絡洛退,經(jīng)典算法如標準BP算法往往會在誤差逆?zhèn)鞑r發(fā)散(diverge)瓣俯,無法收斂達到穩(wěn)定狀態(tài)杰标。

那要怎么有效地訓練多隱層神經(jīng)網(wǎng)絡呢?一般來說有以下兩種方法:

無監(jiān)督逐層訓練(unsupervised layer-wise training):每次訓練一層隱節(jié)點降铸,把上一層隱節(jié)點的輸出當作輸入來訓練在旱,本層隱結點訓練好后,輸出再作為下一層的輸入來訓練推掸,這稱為預訓練(pre-training)桶蝎。全部預訓練完成后,再對整個網(wǎng)絡進行微調(fine-tuning)訓練谅畅。一個典型例子就是深度信念網(wǎng)絡(deep belief network登渣,簡稱DBN)。這種做法其實可以視為把大量的參數(shù)進行分組毡泻,先找出每組較好的設置胜茧,再基于這些局部最優(yōu)的結果來訓練全局最優(yōu)。

權共享(weight sharing):令同一層神經(jīng)元使用完全相同的連接權仇味,典型的例子是卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network呻顽,簡稱CNN)。這樣做可以大大減少需要訓練的參數(shù)數(shù)目丹墨。

深度學習中訓練多隱層神經(jīng)網(wǎng)絡這兩種方法廊遍,一種是無監(jiān)督逐層訓練,即逐層預訓練贩挣,現(xiàn)在這種方法用得少了『砬埃現(xiàn)在常說的預訓練其實專指遷移學習(migration?learning)了 。

基于監(jiān)督學習的深度學習技術王财,通過Dropout或批標準化來正則化卵迂,能夠在很多任務上達到人類級別的性能,但僅僅是在極大的標注數(shù)據(jù)集上绒净。

在中等大小的數(shù)據(jù)集(例如:CIFAR-10 和 MNIST见咒,每個類大約有5,000個標注樣本)上,這些技術的效果比無監(jiān)督預訓練更好疯溺。

在極小的數(shù)據(jù)集论颅,例如:選擇性剪接數(shù)據(jù)集,貝葉斯方法要優(yōu)于基于無監(jiān)督預訓練的方法囱嫩。[1]


另一種是權共享(weight sharing)恃疯,典型的例子是卷積神經(jīng)網(wǎng)絡(CNN)?,可以大大減少需要訓練的參數(shù)數(shù)目墨闲。


深度學習可以理解為一種特征學習(feature learning)或者表示學習(representation learning)今妄,無論是DBN還是CNN,都是通過多個隱層來把與輸出目標聯(lián)系不大的初始輸入轉化為與輸出目標更加密切的表示,使原來只通過單層映射難以完成的任務變?yōu)榭赡芏芰邸<赐ㄟ^多層處理犬性,逐漸將初始的“低層”特征表示轉化為“高層”特征表示,從而使得最后可以用簡單的模型來完成復雜的學習任務腾仅。

傳統(tǒng)任務中乒裆,樣本的特征需要人類專家來設計,這稱為特征工程(feature engineering)推励。特征好壞對泛化性能有至關重要的影響鹤耍。而深度學習為全自動數(shù)據(jù)分析帶來了可能,可以自動產(chǎn)生更好的特征验辞。

參考鏈接:

[1]版權聲明:本文為CSDN博主「沒人不認識我」的原創(chuàng)文章稿黄,遵循CC 4.0 BY-SA版權協(xié)議,轉載請附上原文出處鏈接及本聲明跌造。

原文鏈接:https://blog.csdn.net/weixin_42555985/article/details/105063387

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末杆怕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子壳贪,更是在濱河造成了極大的恐慌陵珍,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件违施,死亡現(xiàn)場離奇詭異撑教,居然都是意外死亡,警方通過查閱死者的電腦和手機醉拓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來收苏,“玉大人亿卤,你說我怎么就攤上這事÷拱裕” “怎么了排吴?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長懦鼠。 經(jīng)常有香客問我钻哩,道長,這世上最難降的妖魔是什么肛冶? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任街氢,我火速辦了婚禮,結果婚禮上睦袖,老公的妹妹穿的比我還像新娘珊肃。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布伦乔。 她就那樣靜靜地躺著厉亏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪烈和。 梳的紋絲不亂的頭發(fā)上爱只,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音招刹,去河邊找鬼恬试。 笑死,一個胖子當著我的面吹牛蔗喂,可吹牛的內容都是我干的忘渔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼缰儿,長吁一口氣:“原來是場噩夢啊……” “哼畦粮!你這毒婦竟也來了?” 一聲冷哼從身側響起乖阵,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤宣赔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瞪浸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體儒将,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年对蒲,在試婚紗的時候發(fā)現(xiàn)自己被綠了钩蚊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蹈矮,死狀恐怖砰逻,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情泛鸟,我是刑警寧澤蝠咆,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站北滥,受9級特大地震影響刚操,放射性物質發(fā)生泄漏。R本人自食惡果不足惜再芋,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一菊霜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧济赎,春花似錦占卧、人聲如沸遗菠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辙纬。三九已至,卻和暖如春叭喜,著一層夾襖步出監(jiān)牢的瞬間贺拣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工捂蕴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留譬涡,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓啥辨,卻偏偏與公主長得像涡匀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子溉知,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容