一港庄、整體脈絡(luò)
二、神經(jīng)元模型
1呢蔫、本節(jié)框架
2切心、要了解什么是神經(jīng)元模型,首先得明白什么是神經(jīng)網(wǎng)絡(luò)片吊。
神經(jīng)網(wǎng)絡(luò)是有具有適應(yīng)性的簡單單元組成的廣泛進行互連的網(wǎng)絡(luò)绽昏,它的組織能夠模擬生物神經(jīng)系統(tǒng)對真實世界物體所做出的交互反映。我們在機器學(xué)習(xí)中談?wù)撋窠?jīng)網(wǎng)絡(luò)時是“神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)”也可以說是機器學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)這兩個學(xué)科領(lǐng)域的交叉部分俏脊。
3全谤、神經(jīng)元模型
4、經(jīng)典模型| M-P神經(jīng)元模型
在這個模型中爷贫,神經(jīng)元接收到來自n個其他神經(jīng)元傳遞過來的輸入信號认然,這些輸入信號通過帶權(quán)重的連接(connection)進行傳遞,神經(jīng)元接收到的總輸入值與神經(jīng)元的閥值進行比較然后通過“激活函數(shù)”(activation function)處理以產(chǎn)生神經(jīng)元的輸出沸久。
5季眷、激活函數(shù)
5.1 理想型 |階躍函數(shù)
它將輸入值映射為輸出值“0”或“1”,1對應(yīng)神經(jīng)元興奮卷胯,0對應(yīng)神經(jīng)元抑制子刮。
但缺點是:不連續(xù)、不光滑等不太好的性質(zhì)導(dǎo)致不實用窑睁。
5.2 常用型|Sigmoid函數(shù)
又名“擠壓函數(shù)”(squashing function)
Sigmoid函數(shù)把可能在較大范圍內(nèi)變化的輸入值擠壓到(0挺峡,1)輸出值范圍內(nèi)。
6担钮、神經(jīng)元與神經(jīng)網(wǎng)絡(luò)的關(guān)系
把許多神經(jīng)元按照一定的層次結(jié)構(gòu)連接起來橱赠,就得到了神經(jīng)網(wǎng)絡(luò)。
三箫津、感知機與多層網(wǎng)絡(luò)
1狭姨、本節(jié)脈絡(luò)
本節(jié)總的來說宰啦,就是先了解感知機是什么,感知器能解決線性可分的問題(與或非)饼拍,卻不能解決非線性可分的問題(異或)赡模,所以這時需要更為復(fù)雜的模型,引入隱層师抄,得到多層網(wǎng)絡(luò)去解決感知機不能解決的問題漓柑。
2、感知機
2.1 感知機的定義
感知機(Perceptron)由兩層神經(jīng)元組成叨吮,輸入層接收外界輸入信號后傳遞給輸出層辆布,輸出層是M-P神經(jīng)元,也叫“閾值邏輯單元”(threshold logic unit)
簡單地來說就是:接收多個信號茶鉴,輸出一個信號锋玲。
2.2感知機的作用
感知器能夠輕易地實現(xiàn)邏輯與、或蛤铜、非運算嫩絮。
需要注意的是,感知機只有輸出層神經(jīng)元進行激活函數(shù)處理围肥,即只擁有一層功能神經(jīng)元(function neuron)剿干,其學(xué)習(xí)能力有限,只能解決線性可分(linearly sparable)的問題穆刻。
3置尔、感知機對于權(quán)重的學(xué)習(xí)
4、“與” “或”“ 非 ”“異或”問題(拓展部分)
4.1 定義
要明白與氢伟、或榜轿、非、異或分別是什么意思朵锣,就要明白感知機如何處理這些問題的谬盐。
輸入的信息,就像電流诚些、水流般地流入飞傀,而輸出的結(jié)果只有兩個:流 和 不流。 我們就用0表示不流诬烹,用1表示流砸烦。
與:就是像一條河一樣,只有河里的每個地方都是通的绞吁,整條河才可以流動幢痘。
或:就像兩條小溪一樣,任一一條是通的家破,水就可以流向河水颜说。
非:輸出始始終和輸入相反购岗。
異或:只有兩個輸入值不相同時,才能輸出1门粪,比如(X1=0藕畔,X2=1,Y=1)庄拇。
4.2 與或非 的問題求權(quán)重
線性分類模型:
若兩種模式是線性可分的,即存在一個線性超平面能將它們分開韭邓,則感知機就一定會收斂(converge)?求得適當(dāng)?shù)臋?quán)項w=(w1措近,w2...wn+1)。
代碼:
而解決非線性可分的問題(如異或問題)女淑,需要考慮使用多層功能神經(jīng)元瞭郑。
5、多層網(wǎng)絡(luò)
5.1 什么是多層網(wǎng)絡(luò)
多層網(wǎng)絡(luò):只需要包含隱層鸭你,即可稱為多層網(wǎng)絡(luò)屈张。
神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程,就是根據(jù)訓(xùn)練數(shù)據(jù)來調(diào)整神經(jīng)元之間的連接權(quán)(connection weight)以及每個功能的閾值袱巨,換言之阁谆,神經(jīng)網(wǎng)絡(luò)“學(xué)”到的東西,蘊涵在連接權(quán)和閾值中愉老。
5.2 常見的多層神經(jīng)網(wǎng)絡(luò)|多層前饋神經(jīng)網(wǎng)絡(luò)
常見的神經(jīng)網(wǎng)絡(luò)是形如下圖的層級結(jié)構(gòu)场绿,每層神經(jīng)元都與下一層的神經(jīng)元完全互連,神經(jīng)元之間不存在同層連接嫉入,也不存在跨層連接焰盗。這樣的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)通常稱為“多層前饋神經(jīng)網(wǎng)絡(luò)”(mult-layer feedforward neural)
5.3 用多層神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)異或問題中的權(quán)重
要解決非線性可分的問題,需要考慮使用多層功能神經(jīng)元咒林。如上圖簡單的兩層感知機就能解決異或問題熬拒。輸入層和輸出層之間的一層神經(jīng)元,被稱為隱層(hidden layer)垫竞,隱層和輸出層神經(jīng)元都是擁有激活函數(shù)的功能神經(jīng)元澎粟。
四、誤差逆?zhèn)鞑ニ惴?/h1>1件甥、本節(jié)與前一節(jié)的聯(lián)系
上一節(jié)捌议,我們已經(jīng)知道感知機輸出的結(jié)果不可避免地存在誤差,因此我們需要不斷調(diào)整權(quán)重引有,使模型達(dá)到最優(yōu)瓣颅。那么如何使得累積誤差最小化的同時代價最小化呢?這就需要使用誤差逆?zhèn)鞑ニ惴ā?/p>
2譬正、本節(jié)脈絡(luò)
3宫补、什么是逆?zhèn)鞑フ`差算法(error BackPropagation)
3.1 問題描述:
輸入示例由d個屬性描述檬姥,輸出l維實值向量,試圖找到調(diào)整連接權(quán)和閾值代價最小的方式粉怕。
3.2標(biāo)準(zhǔn)BP算法工作流程:
先將輸入示例提供給輸入層神經(jīng)元健民,然后逐層將信號前傳,直到產(chǎn)生輸出層結(jié)果贫贝,然后計算輸出層的誤差秉犹,再降誤差逆向傳播至隱層神經(jīng)元,最后根據(jù)神經(jīng)元的誤差來對連接權(quán)和閾值進行調(diào)整稚晚,該迭代過程循壞進行崇堵,直到達(dá)到停止條件為止,如訓(xùn)練誤差已經(jīng)達(dá)到一個很小的值客燕。
3.3標(biāo)準(zhǔn)BP算法和累積BP算法的的聯(lián)系與區(qū)別
標(biāo)準(zhǔn)BP算法每次僅針對一個訓(xùn)練樣例的連接權(quán)和閾值鸳劳,而基于累計誤差推導(dǎo)而得,就能類似推導(dǎo)出基于累積誤差最小化的更新規(guī)則也搓,就能得到累積誤差逆?zhèn)鞑ィ╝ccumulated error backpropagation)算法赏廓。
為了達(dá)到同樣的累積誤差最小化,標(biāo)準(zhǔn)BP算法往往需要多次數(shù)的迭代傍妒,而累積BP算法的參數(shù)更新頻率要低得多幔摸。
但在很多任務(wù)中,累積誤差下降到一定程度之后拍顷,進一步下降會非常緩慢抚太,這時候標(biāo)準(zhǔn)BP往往會更快獲得較好的解。因此最好將兩種方法結(jié)合使用昔案。
4尿贫、BP算法的核心
BP算法的核心就在于梯度下降(gradient descent)策略,并且BP算法是一個迭代學(xué)習(xí)算法踏揣,以目標(biāo)的負(fù)梯度方向對參數(shù)進行調(diào)整庆亡。
4.1 梯度
梯度可以理解為全部偏導(dǎo)數(shù)構(gòu)成的向量,梯度向量方向即為函數(shù)值增長最快的方向捞稿。而正負(fù)號就是在告訴我們輸入向量的這一項該調(diào)大還是調(diào)小又谋,每一項的相對大小則告訴我們改變那個值的影響更大。因此我們可以把梯度向量理解為各個權(quán)重偏置的相對重要度娱局。
更多詳細(xì)理解請前往:https://blog.csdn.net/walilk/article/details/50978864
4.2 梯度下降法
4.2.1梯度下降法就是沿著目標(biāo)的負(fù)梯度彰亥,即沿著梯度下降的方向求解極小值。簡單地來說就是求目標(biāo)函數(shù)的極小值
4.2.2梯度下降的一個直觀的解釋:
比如我們在一座大山上的某處位置衰齐,由于我們不知道怎么下山任斋,于是決定走一步算一步,也就是在每走到一個位置的時候耻涛,求解當(dāng)前位置的梯度废酷,沿著梯度的負(fù)方向瘟檩,也就是當(dāng)前最陡峭的位置向下走一步,然后繼續(xù)求解當(dāng)前位置梯度澈蟆,向這一步所在位置沿著最陡峭最易下山的位置走一步墨辛。這樣一步步的走下去,一直走到覺得我們已經(jīng)到了山腳趴俘。當(dāng)然這樣走下去睹簇,有可能我們不能走到山腳,而是到了某一個局部的山峰低處寥闪。
更多數(shù)理推導(dǎo)理解請前往:https://www.zhihu.com/question/305638940
5带膀、BP算法的后續(xù)優(yōu)化
由于其強大的表示能力,BP神經(jīng)網(wǎng)絡(luò)經(jīng)常遭遇過擬合橙垢,其訓(xùn)練誤差持續(xù)降低,但其測試誤差卻可能上升伦糯。
因此有兩種策略用來緩解BP網(wǎng)絡(luò)的過擬合:早停和正則化
5.1 早停(early stopping )
將數(shù)據(jù)分成訓(xùn)練集和驗證集柜某,訓(xùn)練集用來計算梯度、更新連接算和閾值敛纲,驗證集用來估計誤差喂击。
若訓(xùn)練集誤差降低單驗證集誤差升高,則停止訓(xùn)練淤翔,同時返回具有最小驗證集誤差的連接權(quán)和閾值翰绊。
5.2 正則化(regularization)
基本思想:在誤差目標(biāo)函數(shù)中增加一個用于描述網(wǎng)絡(luò)復(fù)雜度的部分。
例如:增加連接權(quán)與閾值的平方和旁壮,則誤差目標(biāo)函數(shù)改變?yōu)椋?/p>
四监嗜、全局最小與局部極小
1、本節(jié)脈絡(luò)
2抡谐、最優(yōu)的判斷條件與種類
2.1我們談到的最優(yōu)裁奇,有兩種:“局部極小”(local minimum)和“全局最小”(global minimum).
2.2最優(yōu)的判斷條件:
3、局部極小和全局最小的關(guān)系
直觀地看麦撵,局部極小是參數(shù)空間中的某個點刽肠,其鄰域點的誤差函數(shù)值均不小于該點的函數(shù)值。全局最小則是參數(shù)空間中所優(yōu)點的誤差函數(shù)數(shù)值均不小于該點的誤差函數(shù)值免胃。
顯然音五,參數(shù)空間內(nèi)梯度為0的點,只要誤差值小于鄰點的誤差函數(shù)值羔沙,就是局部極小點躺涝,可能存在多個局部極小值,但只會有一個全局最小值撬碟。
也就是說:全局最小一定是局部極小诞挨,反之不成立莉撇。
4、基于梯度尋優(yōu)
在此類方法中惶傻,我們從某些初始解出發(fā)棍郎,迭代尋找最優(yōu)參數(shù)解。每次迭代中银室,我們先計算誤差函數(shù)在當(dāng)前點的梯度涂佃,然后根據(jù)梯度確定搜索方向。當(dāng)梯度為0時蜈敢,達(dá)到局部最優(yōu)辜荠,更新量為0
然而如果只有一個局部極小就是全局極小,那如果誤差函數(shù)有多個局部極小呢抓狭?我們?nèi)绾螌ふ胰肿钚∧兀?/p>
5伯病、跳出局部極小。進一步接近全局最蟹窆:
五午笛、深度學(xué)習(xí)
1、本節(jié)脈絡(luò)
深度學(xué)習(xí)興起苗桂,然而典型的深度學(xué)習(xí)模型不能有效的進行多隱訓(xùn)練药磺,因此我們需要采取無監(jiān)督逐層訓(xùn)練和權(quán)共享這兩個有效的策略來應(yīng)對多隱層訓(xùn)練。通過DBN和CCN這兩個典例我們對深度學(xué)習(xí)做進一步的理解煤伟。
2癌佩、興起背景
隨著云計算、大數(shù)據(jù)時代的到來便锨,計算能力的大幅度提高可緩解訓(xùn)練的低效性围辙,訓(xùn)練數(shù)據(jù)的大幅度增加可降低過擬合風(fēng)險,因此放案,以“深度學(xué)習(xí)”(deep learning)為代表的復(fù)雜模型受到人們青睞酌畜。
3、典型的深度學(xué)習(xí)模型
典型的深度學(xué)習(xí)模型就是很深層的神經(jīng)網(wǎng)絡(luò)卿叽。
對神經(jīng)網(wǎng)絡(luò)模型桥胞,提高容量的一個簡單的辦法就是增加隱層的數(shù)據(jù),因為隱層多了考婴,相應(yīng)的神經(jīng)元連接權(quán)贩虾、閾值等參數(shù)就會更多。
從增加模型復(fù)雜度來看沥阱,增加隱層層數(shù)不僅增加了擁有激活函數(shù)的神經(jīng)元數(shù)目缎罢,還增加了激活函數(shù)嵌套的層數(shù)。
然而,多隱層神經(jīng)網(wǎng)絡(luò)難以直接用經(jīng)典算法進行訓(xùn)練策精。因此舰始,在多隱層內(nèi)逆?zhèn)鞑r,往往會“發(fā)散”而不能收斂到穩(wěn)定狀態(tài)咽袜。因此我們需要尋找有效的多隱層網(wǎng)絡(luò)的訓(xùn)練手段丸卷。
4、有效的多隱層網(wǎng)絡(luò)訓(xùn)練手段
4.1 無監(jiān)督逐層訓(xùn)練(unsupervised layer-wise training)
基本思想:每次訓(xùn)練一層隱結(jié)點询刹,訓(xùn)練時將上一層的隱結(jié)點的輸出作為輸入谜嫉,而本層的隱結(jié)點的輸出作為下一隱結(jié)點的輸入。這稱為“預(yù)訓(xùn)練”(pre-training)凹联;在預(yù)訓(xùn)練全部完成后沐兰,在對整個網(wǎng)絡(luò)進行“微調(diào)”(fine-tuning)訓(xùn)練。
簡單來說就是“預(yù)訓(xùn)練+微調(diào)”的策略
該策略可看作將大量的參數(shù)分組蔽挠,對每組先找到局部較優(yōu)的設(shè)置住闯,然后基于這些局部較優(yōu)的結(jié)果聯(lián)合起來進行全局尋優(yōu)。
這樣就能在利用模型大量參數(shù)所提供的自由度的同時澳淑,有效地節(jié)省了訓(xùn)練開銷寞秃。
典例:深度信念網(wǎng)絡(luò)(deep belief network) 簡稱DBN
感興趣可移步:https://blog.csdn.net/a819825294/article/details/53608141
4.2 權(quán)共享(weight sharing)
基本思想:讓一組神經(jīng)元使用相同的連接權(quán)。
我們用卷積神經(jīng)網(wǎng)絡(luò)(CNN)進行手寫數(shù)字識別任務(wù)為例子進行了解:
CNN復(fù)合了多個“卷積層”和“采樣層”對手寫數(shù)字進行加工偶惠,然后在連接層實現(xiàn)與輸出目標(biāo)之間的映射,每個卷積層都包含多個特征映射(feature map)朗涩,每個特征映射反映的是多個神經(jīng)元構(gòu)成的神經(jīng)元陣列忽孽,負(fù)責(zé)提取局部特征。而采樣層也叫做“匯合層”負(fù)責(zé)基于局部相關(guān)性原理進行采樣谢床,從而減少數(shù)據(jù)量的同時保留有用信息。
進一步了解請移步(該視頻以手寫數(shù)字識別為例子):https://b23.tv/av16144388
需注意的是:在訓(xùn)練中识腿,無論是卷積層還是采樣層出革,其每一組的神經(jīng)元都是用相同的連接權(quán),從而大幅度減少了需要訓(xùn)練的參數(shù)數(shù)目渡讼。
5骂束、對于深度學(xué)習(xí)的理解
無論是DBN還是CNN,其隱層堆疊成箫、每層對于上一層的輸出進行處理的機制展箱,可以看作是對輸入信號進行逐層加工,從而把初始的蹬昌、與輸出目標(biāo)之間聯(lián)系不太密切的輸入表示混驰,轉(zhuǎn)化成與輸入目標(biāo)聯(lián)系更為密切的表示,使得原來基于最后一層的輸出映射難以完成的任務(wù)稱為可能。
由此栖榨,可將深度學(xué)習(xí)理解為進行“特征學(xué)習(xí)”(feature learning)或“表示學(xué)習(xí)”(representation learning)
七昆汹、其他常見神經(jīng)網(wǎng)絡(luò)
1、本節(jié)脈絡(luò)
鑒于初學(xué)婴栽,因此我們對這些常見的神經(jīng)網(wǎng)絡(luò)只作簡單的了解满粗。
2、RBF網(wǎng)絡(luò)
RBF(Radial Basis Function,徑向基函數(shù))網(wǎng)絡(luò)是一種單隱層前饋神經(jīng)網(wǎng)絡(luò)居夹。
它使用徑向基函數(shù)作為隱層神經(jīng)元激活函數(shù)败潦,而輸出層則是對隱層神經(jīng)元輸出的線性組合。
3准脂、ART網(wǎng)絡(luò)
ART(Adaptive Resonance Theory,自適應(yīng)諧振理論)網(wǎng)絡(luò)是競爭型學(xué)習(xí)的重要代表劫扒。該網(wǎng)絡(luò)由比較層、識別層狸膏、識別閾值和重置模塊構(gòu)成沟饥。
其中比較層負(fù)責(zé)接收輸入樣本,并將其傳遞給識別層神經(jīng)元湾戳,識別層每個神經(jīng)元對應(yīng)一個模塊類,神經(jīng)元數(shù)目可在訓(xùn)練過程中動態(tài)增長以增加新的的模式類幼驶。
ART比較好地緩解了競爭學(xué)習(xí)中的“可塑性-穩(wěn)定性窘境”盅藻∈鲜纾可塑性是指神經(jīng)網(wǎng)絡(luò)要有學(xué)習(xí)新知識的能力假残,而穩(wěn)定性則是指神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)新知識時要保持對舊知識的記憶。這就使得ART網(wǎng)絡(luò)有一個很重要的優(yōu)點:可進行增量學(xué)習(xí)或在線學(xué)習(xí)谍失。
4仿便、SOM網(wǎng)絡(luò)
SOM(Self-Organizing Map,自組織映射)網(wǎng)絡(luò)是一種競爭學(xué)習(xí)型無監(jiān)督神經(jīng)網(wǎng)絡(luò)。
它能將高維輸入數(shù)據(jù)映射到低維空間荒勇,同時保持輸入數(shù)據(jù)在高位空間的拓?fù)浣Y(jié)構(gòu)沽翔,即將高維空間中相似的樣本點映射到網(wǎng)絡(luò)輸出層中的鄰近神經(jīng)元。
SOM的訓(xùn)練過程:
在接收到一個訓(xùn)練樣本后橘沥,每個輸出層神經(jīng)元會計算樣本與自身攜帶的權(quán)向量之間的距離座咆,距離最近的為最佳匹配單元介陶,然后最佳匹配單元及其鄰近神經(jīng)元的權(quán)向量被調(diào)整,以似的這些權(quán)向量與當(dāng)前輸入樣本的距離縮小某残。這個過程不斷迭代,直到收斂走越。
5旨指、級聯(lián)相關(guān)網(wǎng)絡(luò)
級聯(lián)相關(guān)(Cascade-Correlation)網(wǎng)絡(luò)是結(jié)構(gòu)自適應(yīng)網(wǎng)絡(luò)的重要代表谆构。
結(jié)構(gòu)自適應(yīng)網(wǎng)絡(luò)不僅把學(xué)習(xí)參數(shù)而且把網(wǎng)絡(luò)結(jié)構(gòu)也當(dāng)成了學(xué)習(xí)目標(biāo)之一。
級聯(lián)相關(guān)網(wǎng)絡(luò)有兩個主要成分:
(1)級聯(lián):是指建立層次連接的層級結(jié)構(gòu)
(2)相關(guān):是指通過最大化神經(jīng)元的輸出與網(wǎng)絡(luò)誤差之間的相關(guān)性來訓(xùn)練別的參數(shù)摸屠。
6季二、Elman網(wǎng)絡(luò)
Elman網(wǎng)絡(luò)是最常用的遞歸神經(jīng)網(wǎng)絡(luò)之一。
遞歸神經(jīng)網(wǎng)絡(luò)允許網(wǎng)絡(luò)中出現(xiàn)環(huán)形結(jié)構(gòu)桑嘶,從而讓一些神經(jīng)元的輸出反饋回來作為輸入信號不翩,這樣的結(jié)構(gòu)和信息反饋過程使得網(wǎng)絡(luò)在t時刻的輸出狀態(tài)不僅與t時刻的輸入有關(guān)口蝠,還與t-1時刻的網(wǎng)絡(luò)狀態(tài)有關(guān)妙蔗,從而能處理與實踐相關(guān)的動態(tài)變化眉反。
這里簡單理解下遞歸:
遞歸,就是在運行的過程中調(diào)用自己梳杏。
7十性、Boltzmann機
Boltazamann機是一種基于能量的模型,能量最小化時網(wǎng)絡(luò)達(dá)到理想狀態(tài)霞势,而網(wǎng)絡(luò)的訓(xùn)練就是在最小化這個能量函數(shù)支示。
Boltazamann機的常見結(jié)構(gòu)如下圖所示促绵,其神經(jīng)元分為兩層:顯層败晴、隱層。顯層用于表示數(shù)據(jù)輸入與輸出慢味,隱層被理解為數(shù)據(jù)的內(nèi)在表達(dá)纯路。
Boltazmann機的訓(xùn)練過程:
就是將每個訓(xùn)練樣本視為一個狀態(tài)向量,使其出現(xiàn)的概率盡可能大叫编。標(biāo)準(zhǔn)的Boltzmann機是一個全連接圖搓逾,訓(xùn)練網(wǎng)絡(luò)的復(fù)雜度很高,這使得難以用于解決現(xiàn)實任務(wù)】芩穑現(xiàn)實中常用受限Boltzmann機芙沥。
受限Boltzmann機僅保留顯層和隱層之間的連接,從而將Boltazmann機友完全圖簡化為二部圖。