本文主要介紹BP算法:
給定訓(xùn)練集,
道川,
冒萄,即輸入由
個(gè)屬性描述宦言,輸出
維實(shí)值向量。
BP網(wǎng)絡(luò)及算法中的變量符號(hào).jpg
- 上圖給出了一個(gè)擁有
個(gè)輸入神經(jīng)元、
個(gè)輸出神經(jīng)元鄙信、
個(gè)隱層神經(jīng)元的多層前饋網(wǎng)絡(luò)結(jié)構(gòu)忿晕,其中輸出層第
個(gè)神經(jīng)元的閾值用
表示,隱層第
個(gè)神經(jīng)元的閾值用
表示鸦采。輸出層第i個(gè)神經(jīng)元與隱層第h個(gè)神經(jīng)元之間的連接權(quán)為
,隱層第
和神經(jīng)元與輸出層第
個(gè)神經(jīng)元之間的連接權(quán)為
渔伯。
- 記隱層第
個(gè)神經(jīng)元接收到的輸入為
,輸出層第
個(gè)神經(jīng)元接收到的輸入為
选浑,其中
為第
個(gè)神經(jīng)元的輸出古徒。假設(shè)隱層和輸出層的神經(jīng)元激活函數(shù)為
描函。
- 對(duì)訓(xùn)練例
舀寓,假定神經(jīng)網(wǎng)絡(luò)的輸出為
互墓,即
,則網(wǎng)絡(luò)在
上的均方誤差為
- BP算法是一個(gè)迭代學(xué)習(xí)算法育谬,在迭代的每一輪中采用廣義的感知機(jī)學(xué)習(xí)規(guī)則對(duì)參數(shù)進(jìn)行更新估計(jì)膛檀,任意參數(shù)
的更新估計(jì)式為
BP算法基于梯度下降(gradient descent)策略咖刃,以目標(biāo)的負(fù)梯度方向?qū)?shù)進(jìn)行調(diào)整嚎杨,對(duì)枫浙,給定學(xué)習(xí)率
箩帚,有
注意到先影響到第j個(gè)輸出層神經(jīng)元的輸入值為
,在影響到輸出值
,然后影響到
,有
根據(jù)的定義焕参,顯然有
Sigmoid函數(shù)有一個(gè)很好的性質(zhì):
那么有
因此有:
- 類似地,有
輸出層神經(jīng)元的閾值:
輸入層到隱層的連接權(quán):
隱層神經(jīng)元的閾值:
其中涩嚣,
- 學(xué)習(xí)率
控制著算法在每一輪迭代中的更新步長(zhǎng),若太長(zhǎng)則容易震蕩幔睬,太小則收斂速度又會(huì)過慢麻顶。
-
輸入:
訓(xùn)練集;
學(xué)習(xí)率.
-
過程:
1:在(0,1)范圍內(nèi)隨機(jī)初始化網(wǎng)絡(luò)中所有連接權(quán)和閾值
2:Repeat
3:for all
do
4:根據(jù)當(dāng)前參數(shù)和
計(jì)算當(dāng)前樣本的輸出
;
5:根據(jù)式
計(jì)算輸出神經(jīng)元的梯度項(xiàng)
;
6:根據(jù)式
計(jì)算隱層神經(jīng)元的梯度項(xiàng)
;
7:根據(jù)式
舱卡、
辅肾、
、
更新連接權(quán)
轮锥、
與閾值
矫钓、
;
8:end for
9:until 達(dá)到停止條件。 -
輸出:
連接權(quán)與閾值確定的多層前饋神經(jīng)網(wǎng)絡(luò)舍杜。
需注意的是份汗,BP算法的目標(biāo)是要最小化訓(xùn)練集上的累積誤差
標(biāo)準(zhǔn)的BP算法每次針對(duì)一個(gè)訓(xùn)練樣例更新連接權(quán)和閾值。換言之蝴簇,算法的更新規(guī)則是基于單個(gè)的推到而得的旁钧。如果類似地推到基于累積誤差最小化的更新規(guī)則颜矿,就得到了累積誤差逆?zhèn)鞑?accumulated error backpropagation)算法替废。
一般來說兽赁,標(biāo)準(zhǔn)BP算法每次更新只針對(duì)你單個(gè)樣例亮钦,參數(shù)更新得非常頻繁,而且對(duì)不同樣例進(jìn)行更新得效果可能出現(xiàn)抵消現(xiàn)象。因此荤堪,為了達(dá)到同樣的累積誤差極小點(diǎn)碎赢,標(biāo)準(zhǔn)BP算法往往需要進(jìn)行更多次數(shù)的迭代枕赵。累積BP算法直接針對(duì)累積誤差最小化篮昧,它在讀取整個(gè)訓(xùn)練集一遍后才對(duì)參數(shù)進(jìn)行更新挽鞠,其參數(shù)更新得頻率低得多。
可以證明:多層前饋網(wǎng)絡(luò)若包含足夠多神經(jīng)元的隱含層,則它可以以任意精度逼近任意復(fù)雜度的連續(xù)函數(shù)。
BP神經(jīng)網(wǎng)絡(luò)十分強(qiáng)大,因此可能出現(xiàn)過擬合現(xiàn)象沽讹。這時(shí)有兩種策略可以緩解過擬合現(xiàn)象:
- “”早椭课粒”策略:將數(shù)據(jù)集分成訓(xùn)練集和驗(yàn)證數(shù)據(jù)集兩類侧漓,訓(xùn)練集用于計(jì)算梯度、更新連接權(quán)重和閾值;驗(yàn)證集用于估計(jì)誤差,如果訓(xùn)練集誤差降低而驗(yàn)證集誤差上升搓蚪,則停止訓(xùn)練。同時(shí)返回具有最小驗(yàn)證集誤差的連接權(quán)重和閾值佑女。
- “正則化”策略:修改誤差目標(biāo)函數(shù)為:
其中表示連接權(quán)重和閾值嚎花;
表示對(duì)經(jīng)驗(yàn)誤差和網(wǎng)絡(luò)復(fù)雜度的折中;即
刻畫了網(wǎng)絡(luò)復(fù)雜度噪生。