BP神經(jīng)網(wǎng)絡(luò)模型與學(xué)習(xí)算法
一,什么是BP "BP(Back )網(wǎng)絡(luò)是1986年由和為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無(wú)需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來(lái)不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hide layer)和輸出層( layer)。"
我們現(xiàn)在來(lái)分析下這些話:
“是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋
網(wǎng)絡(luò)” ?
BP是后向傳播的英文縮寫,那么傳播對(duì)象是什么?傳播的目的是什么?傳播的方式是后向,可這又是什么意思呢。
傳播的對(duì)象是誤差,傳播的目的是得到所有層的估計(jì)誤差多層神經(jīng)網(wǎng)絡(luò)bp算法權(quán)值更新過程,后向是說(shuō)由后層誤差推導(dǎo)前層誤差:
即BP的思想可以總結(jié)為
利用輸出后的誤差來(lái)估計(jì)輸出層的直接前導(dǎo)層的誤差,再用這個(gè)誤差估計(jì)更前一層的誤差,如此一層一層的反傳下去多層神經(jīng)網(wǎng)絡(luò)bp算法權(quán)值更新過程,就獲得了所有其他各層的誤差估計(jì)。
? “BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層
(input)、隱層(hide layer)和輸出層
( layer)”
我們來(lái)看一個(gè)最簡(jiǎn)單的三層BP:
? “BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模
式映射關(guān)系,而無(wú)需事前揭示描述這種映射
關(guān)系的數(shù)學(xué)方程。”
BP利用一種稱為激活函數(shù)來(lái)描述層與層輸出之間的關(guān)系,從而模擬各層神經(jīng)元
之間的交互反應(yīng)。
激活函數(shù)必須滿足處處可導(dǎo)的條件。那么比較常用的是一種稱為S型函數(shù)的激活函數(shù):
那么上面的函數(shù)為什么稱為是S
型函數(shù)呢:
我們來(lái)看它的形態(tài)和它導(dǎo)數(shù)的形態(tài):
p.s. S型函數(shù)的導(dǎo)數(shù):
神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)目的: 希望能夠?qū)W習(xí)到一個(gè)模型,能夠?qū)斎胼敵鲆粋€(gè)我們期望的輸出。
學(xué)習(xí)的方式:
在外界輸入樣本的刺激下不斷改變網(wǎng)絡(luò)的連接權(quán)值
學(xué)習(xí)的本質(zhì):
對(duì)各連接權(quán)值的動(dòng)態(tài)調(diào)整
學(xué)習(xí)的核心:
權(quán)值調(diào)整規(guī)則,即在學(xué)習(xí)過程中網(wǎng)絡(luò)中各神經(jīng)元的連接權(quán)變化所依據(jù)的一定的調(diào)整規(guī)則。
二,有監(jiān)督的BP模型訓(xùn)練過程
1. 思想
有監(jiān)督的BP模型訓(xùn)練表示我們有一個(gè)訓(xùn)練集,它包括了: input X 和它被期望擁有的輸出 Y
所以對(duì)于當(dāng)前的一個(gè)BP模型,我們能夠獲得它針對(duì)于訓(xùn)練集的誤差
所以BP的核心思想就是:將輸出誤差以某種形式通過隱層向輸入層逐層反傳,這里的某種形式其實(shí)就是:
也就是一種 "信號(hào)的正向傳播 ---->誤差的反向傳播"的過程:
2.具體
這里解釋下根據(jù)誤差對(duì)權(quán)值的偏導(dǎo)數(shù)來(lái)修訂權(quán)值: