誤差反向傳播算法
1.什么是誤差反向傳播算法[1]
自從40年代赫布(D.O. Hebb)提出的學(xué)習(xí)規(guī)則以來(lái),人們相繼提出了各種各樣的學(xué)習(xí)算法。其中以在1986年Rumelhart等提出的誤差反向傳播法,即BP(error BackPropagation)法影響最為廣泛。直到今天,BP算法仍然是自動(dòng)控制上最重要、應(yīng)用最多的有效算法。是用于多層神經(jīng)網(wǎng)絡(luò)訓(xùn)練的著名算法,有理論依據(jù)堅(jiān)實(shí)、推導(dǎo)過(guò)程嚴(yán)謹(jǐn)、物理概念清楚、通用性強(qiáng)等優(yōu)點(diǎn).但是,人們?cè)谑褂弥邪l(fā)現(xiàn)BP算法存在收斂速度緩慢、易陷入局部極小等缺點(diǎn).
2.誤差反向傳播算法的思想[2]
BP算法的基本思想是,學(xué)習(xí)過(guò)程由信號(hào)的正向傳播與誤差的反向傳播兩個(gè)過(guò)程組成。
1)正向傳播:輸入樣本->輸入層->各隱層(處理)->輸出層
注1:若輸出層實(shí)際輸出與期望輸出(教師信號(hào))不符,則轉(zhuǎn)入2)(誤差反向傳播過(guò)程)
2)誤差反向傳播:輸出誤差(某種形式)->隱層(逐層)->輸入層 其主要目的是通過(guò)將輸出誤差反傳,將誤差分?jǐn)偨o各層所有單元,從而獲得各層單元的誤差信號(hào),進(jìn)而修正各單元的權(quán)值(其過(guò)程,是一個(gè)權(quán)值調(diào)整的過(guò)程)。
注2:權(quán)值調(diào)整的過(guò)程,也就是網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練過(guò)程(學(xué)習(xí)也就是這么的由來(lái),權(quán)值調(diào)整)。
3.誤差反向傳播算法的實(shí)現(xiàn)步驟[2]
1)初始化
2)輸入訓(xùn)練樣本對(duì),計(jì)算各層輸出
3)計(jì)算網(wǎng)絡(luò)輸出誤差
4)計(jì)算各層誤差信號(hào)
5)調(diào)整各層權(quán)值
6)檢查網(wǎng)絡(luò)總誤差是否達(dá)到精度要求
滿足,則訓(xùn)練結(jié)束;不滿足,則返回步驟2。
4.誤差反向傳播算法的缺陷[2]
1)易形成局部極小(屬貪婪算法,局部最優(yōu))而得不到全局最優(yōu);
2)訓(xùn)練次數(shù)多使得學(xué)習(xí)效率低下,收斂速度慢(需做大量運(yùn)算);
3)隱節(jié)點(diǎn)的選取缺乏理論支持;
4)訓(xùn)練時(shí)學(xué)習(xí)新樣本有遺忘舊樣本趨勢(shì)。