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