柚子快報(bào)激活碼778899分享:機(jī)器學(xué)習(xí)——神經(jīng)網(wǎng)絡(luò)
柚子快報(bào)激活碼778899分享:機(jī)器學(xué)習(xí)——神經(jīng)網(wǎng)絡(luò)
一、神經(jīng)網(wǎng)絡(luò)
??神經(jīng)網(wǎng)絡(luò)是由具有適應(yīng)性的簡單單元組成的廣泛并行互連的網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)中最基本的成分是神經(jīng)元模型。以下圖常見的“M-P神經(jīng)元模型”為例,在這個(gè)模型中,神經(jīng)元接收到來自
n
n
n個(gè)其他神經(jīng)元傳遞過來的輸入信號(hào),這些輸入信號(hào)通過帶權(quán)重的連接進(jìn)行傳遞,神經(jīng)元收到的總輸入值將與神經(jīng)元的閾值進(jìn)行比較,然后通過激活函數(shù)處理以產(chǎn)生神經(jīng)元的輸出。
??理想中的激活函數(shù)是左下圖所示的階躍函數(shù),但是階躍函數(shù)具有不連續(xù)、不光滑等不太好的性質(zhì),因此實(shí)際常用Sigmoid函數(shù)作為激活函數(shù),典型代表是對(duì)數(shù)幾率函數(shù),它把可能在較大范圍內(nèi)變化的輸入值擠壓到(0,1)輸出值范圍內(nèi),因此有時(shí)也稱為“擠壓函數(shù)”。
??把許多個(gè)這樣的神經(jīng)元按一定的層次結(jié)構(gòu)連接起來,就得到了神經(jīng)網(wǎng)絡(luò)。
二、多層網(wǎng)絡(luò)
??常見的神經(jīng)網(wǎng)絡(luò)是如下圖所示的層級(jí)結(jié)構(gòu),每層神經(jīng)元與下一層的神經(jīng)元完全互連,神經(jīng)元之間不存在同層連接,也不存在跨層連接,這樣的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)通常稱為“多層前饋神經(jīng)網(wǎng)絡(luò)”。
“前饋”并不意味著網(wǎng)絡(luò)中信號(hào)不能向后傳,而是指網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中不存在環(huán)或回路。
??多層前饋神經(jīng)網(wǎng)絡(luò)中,輸入層神經(jīng)元接收外界輸入,隱層與輸出層神經(jīng)元對(duì)信號(hào)進(jìn)行加工,最終結(jié)果由輸出層神經(jīng)元輸出。輸入層神經(jīng)元僅是接受輸入,不進(jìn)行函數(shù)處理,隱層與輸出層包含函數(shù)功能神經(jīng)元。 ??神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程,就是根據(jù)訓(xùn)練數(shù)據(jù)來調(diào)整神經(jīng)元之間的“連接權(quán)”以及每個(gè)功能神經(jīng)元的閾值。神經(jīng)網(wǎng)絡(luò)學(xué)到的東西,蘊(yùn)涵在連接權(quán)與閾值中。
多層前饋網(wǎng)絡(luò)有強(qiáng)大的表示能力(萬有逼近性) 僅需一個(gè)包含足夠多神經(jīng)元的隱層,多層前饋神經(jīng)網(wǎng)絡(luò)就能以任意精度逼近任意復(fù)雜度的函數(shù)。 但是,如何設(shè)置隱層神經(jīng)元是未解決問題,實(shí)際上常用“試錯(cuò)法”。
三、誤差逆?zhèn)鞑ニ惴ǎ˙P算法)
??對(duì)訓(xùn)練樣例
(
x
k
,
y
k
)
(x_k,y_k)
(xk?,yk?),假定神經(jīng)網(wǎng)絡(luò)的輸出為
y
^
k
=
(
y
^
1
k
,
y
^
2
k
,
?
,
y
^
l
k
)
\hat {y}_k=(\hat y_1^k,\hat y_2^k,\cdots,\hat y_l^k)
y^?k?=(y^?1k?,y^?2k?,?,y^?lk?),即
y
^
j
k
=
f
(
β
j
?
θ
j
)
\hat y_j^k=f(\beta_j-\theta_j)
y^?jk?=f(βj??θj?)(表示的是第j個(gè)神經(jīng)元關(guān)于第k個(gè)樣例的輸出)。神經(jīng)網(wǎng)絡(luò)在
(
x
k
,
y
k
)
(x_k,y_k)
(xk?,yk?)上的均方誤差為
E
k
=
1
2
∑
j
=
1
l
(
y
^
j
k
?
y
j
k
)
2
E_k=\frac 1 2\sum_{j=1}^l (\hat y_j^k -y_j^k)^2
Ek?=21?j=1∑l?(y^?jk??yjk?)2 ??BP神經(jīng)網(wǎng)絡(luò)中有(d+l+1)q+l個(gè)參數(shù)需要確定:輸入層到隱層的dq個(gè)權(quán)值、隱層到輸出層的ql個(gè)權(quán)值、q個(gè)隱層神經(jīng)元的閾值、l個(gè)輸出層神經(jīng)元的閾值。BP是一個(gè)迭代學(xué)習(xí)算法,在迭代的每一輪中采用廣義的感知機(jī)學(xué)習(xí)規(guī)則對(duì)參數(shù)進(jìn)行更新估計(jì),任意參數(shù)v的更新估計(jì)式為
v
←
v
+
Δ
v
v \leftarrow v+\Delta v
v←v+Δv ??BP算法基于梯度下降策略,以目標(biāo)的負(fù)梯度方向?qū)?shù)進(jìn)行調(diào)整,給定學(xué)習(xí)率
η
\eta
η ??BP算法的工作流程:對(duì)于每個(gè)訓(xùn)練樣例,BP算法先將輸入示例提供給輸入層神經(jīng)元,然后逐層將信號(hào)前傳,直到產(chǎn)生輸出層的結(jié)果;然后計(jì)算輸出層的誤差,再將誤差逆向傳播至隱層神經(jīng)元,最后根據(jù)隱層神經(jīng)元的誤差來對(duì)連接權(quán)和閾值進(jìn)行調(diào)整。該迭代過程循環(huán)進(jìn)行,直到達(dá)到某些停止條件為止,例如訓(xùn)練誤差已經(jīng)達(dá)到一個(gè)很小的值。 ??神經(jīng)網(wǎng)絡(luò)就有強(qiáng)大的表示能力,BP神經(jīng)網(wǎng)絡(luò)經(jīng)常出現(xiàn)“過擬合”的情況,其訓(xùn)練誤差持續(xù)降低,但是測(cè)試誤差卻可能上升。有兩種策略常用來緩解BP網(wǎng)絡(luò)的過擬合。方法一,“早?!保簩?shù)據(jù)分成訓(xùn)練集和驗(yàn)證集,訓(xùn)練集用來計(jì)算梯度、更新連接權(quán)和閾值,驗(yàn)證集用來估計(jì)誤差,若訓(xùn)練集誤差降低但驗(yàn)證集誤差升高,則停止訓(xùn)練,同時(shí)返回具有最小驗(yàn)證集誤差的連接權(quán)和閾值。方法二,“正則化”:在誤差目標(biāo)函數(shù)中增加一個(gè)用于描述網(wǎng)絡(luò)復(fù)雜度的部分,例如連接權(quán)和閾值的平方和,仍令
E
k
E_k
Ek?表示第
k
k
k個(gè)訓(xùn)練樣例上的誤差,
w
i
w_i
wi?表示連接權(quán)和閾值,則目標(biāo)函數(shù)改變?yōu)椋?/p>
E
=
λ
1
m
∑
k
=
1
m
E
k
+
(
1
?
λ
)
∑
i
w
i
2
E=\lambda \frac 1 m \sum_{k=1}^m E_k+(1-\lambda)\sum_i w_i^2
E=λm1?k=1∑m?Ek?+(1?λ)i∑?wi2?
偏好比較小的連接權(quán)和閾值,這樣會(huì)使網(wǎng)絡(luò)輸出更光滑
其中
λ
∈
(
0
,
1
)
\lambda \in(0,1)
λ∈(0,1)用于對(duì)經(jīng)驗(yàn)誤差與網(wǎng)絡(luò)復(fù)雜度這兩項(xiàng)進(jìn)行折中,常通過交叉驗(yàn)證法來估計(jì)。
柚子快報(bào)激活碼778899分享:機(jī)器學(xué)習(xí)——神經(jīng)網(wǎng)絡(luò)
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。