吃瓜教程-詳讀西瓜書+南瓜書第5章

第5章

神經(jīng)網(wǎng)絡(luò)最基本的成分是神經(jīng)元模型,神經(jīng)元接受來自n個其他神經(jīng)元傳遞過來的輸入,通過帶權(quán)重的連接得到的總輸入值與閾值比較,通過激活函數(shù)(常用sigmoid函數(shù))處理得到神經(jīng)元的輸出,抽象圖為



把多個這樣的神經(jīng)元按一定的層次結(jié)構(gòu)連接起來,就得到了神經(jīng)網(wǎng)絡(luò)。

感知機(jī)由兩層神經(jīng)元組成,即輸入層和輸出層,不過其學(xué)習(xí)能力有限,只能處理線性可分的問題。要解決非線性可分問題,則需要使用多層功能神經(jīng)元,也即在輸入層和輸出層之間,插入一層或多層隱層功能神經(jīng)元。一般的,每層神經(jīng)元與下一層神經(jīng)元全互連,神經(jīng)元之間不存在同層連接,也不存在跨層連接,稱為多層前饋神經(jīng)網(wǎng)絡(luò),示意圖



神經(jīng)網(wǎng)絡(luò)想要學(xué)習(xí)的東西,就是連接權(quán)(權(quán)重)和閾值。

多層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)能力比單層感知機(jī)強(qiáng)大很多,需要強(qiáng)大的學(xué)習(xí)算法,誤差逆?zhèn)鞑ニ惴ǎǚ聪騻鞑ニ惴ǎ┦谴?,反向傳播算法是一個迭代學(xué)習(xí)算法,基于梯度下降策略,以目標(biāo)的負(fù)梯度方向?qū)?shù)進(jìn)行調(diào)整。工作流程為:先將輸入示例提供給輸入層神經(jīng)元,然后逐層將信號前傳,直到產(chǎn)生輸出層結(jié)果;然后計算輸出層的誤差,再將誤差逆向傳播至隱層神經(jīng)元,最后根據(jù)隱層神經(jīng)元的誤差來對連接權(quán)和閾值進(jìn)行調(diào)整,該迭代過程循環(huán)進(jìn)行,直到達(dá)到某些停止條件為止,如訓(xùn)練誤差已達(dá)到一個很小的值。

標(biāo)準(zhǔn)反向傳播算法每次更新只針對單個樣例,參數(shù)更新得非常頻繁,而且對不同樣例進(jìn)行更新的效果可能出現(xiàn)抵消現(xiàn)象,因此往往需進(jìn)行更多次數(shù)的迭代;累積反向傳播算法直接針對累積誤差最小化,它在讀取整個訓(xùn)練集一遍后才對參數(shù)進(jìn)行更新,參數(shù)更新的頻率低得多,但在很多任務(wù)中,累積誤差下降到一定程度之后,下降會非常緩慢,這時標(biāo)準(zhǔn)反向傳播往往會更快獲得較好的解。

反向傳播神經(jīng)網(wǎng)絡(luò)經(jīng)常碰到過擬合問題,其訓(xùn)練誤差持續(xù)降低,測試誤差卻可能上升,一般有早停和正則化兩種緩解策略。早停即在訓(xùn)練集誤差降低但驗證集誤差升高時停止訓(xùn)練,返回具有最小驗證集誤差的連接權(quán)和閾值;正則化的基本思想是在誤差目標(biāo)函數(shù)中增加一個用于描述網(wǎng)絡(luò)復(fù)雜度的部分,如連接權(quán)與閾值的平方和。

全局最小解與局部極小解,顧名思義,局部極小解是參數(shù)空間中的某個點,其鄰域點的誤差函數(shù)值均不小于該點的函數(shù)值;而全局最小解則是指參數(shù)空間中所有點的誤差函數(shù)值均不小于該點的誤差函數(shù)值。在使用基于梯度的搜索中,參數(shù)尋優(yōu)可能陷入局部極小而找不到全局最小,一般可以通過嘗試多組不同初始化參數(shù)、模擬退火、計算梯度加入隨機(jī)因素等策略解決。

還有很多其他神經(jīng)網(wǎng)絡(luò)模型,如RBF(徑向基函數(shù))網(wǎng)絡(luò)、可進(jìn)行增量學(xué)習(xí)或在線學(xué)習(xí)的ART(自適應(yīng)諧振理論)網(wǎng)絡(luò)、競爭學(xué)習(xí)型的無監(jiān)督神經(jīng)網(wǎng)絡(luò)SOM(自組織映射)網(wǎng)絡(luò)、可以學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)的級聯(lián)相關(guān) (Cascade-Correlation) 網(wǎng)絡(luò)、遞歸神經(jīng)網(wǎng)絡(luò)Elman網(wǎng)絡(luò)與Boltzmann機(jī)等。

典型的深度學(xué)習(xí)模型就是很深層的神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)能力強(qiáng)大,但難以直接用經(jīng)典算法(例如標(biāo)準(zhǔn) BP 算法)進(jìn)行訓(xùn)練,因為誤差在多隱層內(nèi)逆?zhèn)鞑r,往往會發(fā)散而不能收斂到穩(wěn)定狀態(tài)。無監(jiān)督逐層訓(xùn)練是多隱層網(wǎng)絡(luò)訓(xùn)練的有效手段,可以有效地節(jié)省了訓(xùn)練開銷;另一種節(jié)省訓(xùn)練開銷的策略是權(quán)共享,即讓一組神經(jīng)元使用相同的連接權(quán),在卷積神經(jīng)網(wǎng)絡(luò)(CNN)中發(fā)揮重要作用,如卷積與池化運算。

從另一個角度理解深度學(xué)習(xí),無論是深度信念網(wǎng)絡(luò)(DBN)還是卷積神經(jīng)網(wǎng)絡(luò)(CNN),其多隱層堆疊、每層對上一層的輸出進(jìn)行處理的機(jī)制,可看作是在對輸入信號進(jìn)行逐層加工,從而把初始的、與輸出目標(biāo)之間聯(lián)系不太密切的輸入表示,轉(zhuǎn)化成與輸出目標(biāo)聯(lián)系更密切的表示。換言之,通過多層處理,逐漸將初始的低層特征表示轉(zhuǎn)化為高層特征表示后,用簡單模型即可完成復(fù)雜的分類等學(xué)習(xí)任務(wù),由此可將深度學(xué)習(xí)理解為進(jìn)行特征學(xué)習(xí)或表示學(xué)習(xí)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容