BP神經(jīng)網(wǎng)絡(luò)算法
BP(Back Propagation)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hide layer)和輸出層(output layer)。
人工神經(jīng)網(wǎng)絡(luò)(artificial neural networks, ANN)系統(tǒng)是20世紀(jì)40年代后出現(xiàn)的,它是由眾多的神經(jīng)元可調(diào)的連接權(quán)值連接而成,具有大規(guī)模并行處理、分布式信息存儲、良好的自組織自學(xué)習(xí)能力等特點(diǎn),在信息處理、模式識別、智能控制及系統(tǒng)建模等領(lǐng)域得到越來越廣泛的應(yīng)用。尤其誤差反向傳播算法(Error Back-propagation Training,簡稱BP網(wǎng)絡(luò))可以逼近任意連續(xù)函數(shù),具有很強(qiáng)的非線性映射能力,而且網(wǎng)絡(luò)的中間層數(shù)、各層的處理單元數(shù)及網(wǎng)絡(luò)的學(xué)習(xí)系數(shù)等參數(shù)可根據(jù)具體情況設(shè)定,靈活性很大,所以它在許多應(yīng)用領(lǐng)域中起到重要作用。為了解決BP神經(jīng)網(wǎng)絡(luò)收斂速度慢、不能保證收斂到全局最點(diǎn),網(wǎng)絡(luò)的中間層及它的單元數(shù)選取無理論指導(dǎo)及網(wǎng)絡(luò)學(xué)習(xí)和記憶的不穩(wěn)定性等缺陷,提出了許多改進(jìn)算法。
傳統(tǒng)的BP算法簡述
BP算法是一種有監(jiān)督式的學(xué)習(xí)算法,其主要思想是:輸入學(xué)習(xí)樣本,使用反向傳播算法對網(wǎng)絡(luò)的權(quán)值和偏差進(jìn)行反復(fù)的調(diào)整訓(xùn)練,使輸出的向量與期望向量盡可能地接近,當(dāng)網(wǎng)絡(luò)輸出層的誤差平方和小于指定的誤差時(shí)訓(xùn)練完成,保存網(wǎng)絡(luò)的權(quán)值和偏差。具體步驟如下:
(1)初始化,隨機(jī)給定各連接權(quán)[w],[v]及閾值θi,rt。
(2)由給定的輸入輸出模式對計(jì)算隱層、輸出層各單元輸出
bj=f(■wijai-θj) ct=f(■vjtbj-rt)
式中:bj為隱層第j個(gè)神經(jīng)元實(shí)際輸出;ct為輸出層第t個(gè)神經(jīng)元的實(shí)際輸出;wij為輸入層至隱層的連接權(quán);vjt為隱層至輸出層的連接權(quán)。
dtk=(ytk-ct)ct(1-ct) ejk=[■dtvjt] bj(1-bj)
(3)選取下一個(gè)輸入模式對返回第2步反復(fù)訓(xùn)練直到網(wǎng)絡(luò)設(shè)輸出誤差達(dá)到要求結(jié)束訓(xùn)練。
傳統(tǒng)的BP算法,實(shí)質(zhì)上是把一組樣本輸入/輸出問題轉(zhuǎn)化為一個(gè)非線性優(yōu)化問題,并通過負(fù)梯度下降算法,利用迭代運(yùn)算求解權(quán)值問題的一種學(xué)習(xí)方法,但其收斂速度慢且容易陷入局部極小,為此提出了一種新的算法,即高斯消元法。
改進(jìn)的BP網(wǎng)絡(luò)算法
2.1 改進(jìn)算法概述
此前有人提出:任意選定一組自由權(quán),通過對傳遞函數(shù)建立線性方程組,解得待求權(quán)。本文在此基礎(chǔ)上將給定的目標(biāo)輸出直接作為線性方程等式代數(shù)和來建立線性方程組,不再通過對傳遞函數(shù)求逆來計(jì)算神經(jīng)元的凈輸出,簡化了運(yùn)算步驟。沒有采用誤差反饋原理,因此用此法訓(xùn)練出來的神經(jīng)網(wǎng)絡(luò)結(jié)果與傳統(tǒng)算法是等效的。其基本思想是:由所給的輸入、輸出模式對通過作用于神經(jīng)網(wǎng)絡(luò)來建立線性方程組,運(yùn)用高斯消元法解線性方程組來求得未知權(quán)值,而未采用傳統(tǒng)BP網(wǎng)絡(luò)的非線性函數(shù)誤差反饋尋優(yōu)的思想。
2.2 改進(jìn)算法的具體步驟
對給定的樣本模式對,隨機(jī)選定一組自由權(quán),作為輸出層和隱含層之間固定權(quán)值,通過傳遞函數(shù)計(jì)算隱層的實(shí)際輸出,再將輸出層與隱層間的權(quán)值作為待求量,直接將目標(biāo)輸出作為等式的右邊建立方程組來求解。
現(xiàn)定義如下符號(見圖1):x (p)輸入層的輸入矢量;y (p)輸入層輸入為x (p)時(shí)輸出層的實(shí)際輸出矢量;t (p)目標(biāo)輸出矢量;n,m,r分別為輸入層、隱層和輸出層神經(jīng)元個(gè)數(shù);W為隱層與輸入層間的權(quán)矩陣;V為輸出層與隱層間的權(quán)矩陣。具體步驟如下:
(1)隨機(jī)給定隱層和輸入層間神經(jīng)元的初始權(quán)值wij。
(2)由給定的樣本輸入xi(p)計(jì)算出隱層的實(shí)際輸出aj(p)。為方便起見將圖1網(wǎng)絡(luò)中的閾值寫入連接權(quán)中去,令:隱層閾值θj=wnj,x(n)=-1,則:
aj(p)=f(■wijxi(p)) (j=1,2…m-1)。
(3)計(jì)算輸出層與隱層間的權(quán)值vjr。以輸出層的第r個(gè)神經(jīng)元為對象,由給定的輸出目標(biāo)值tr(p)作為等式的多項(xiàng)式值建立方程,用線性方程組表示為:
a0(1)v1r+a1(1)v2r+…+am(1)vmr=tr(1)a0(2)v1r+a1(2)v2r+…+am(2)vmr=tr(2) ……a0(p)v1r+a1(p)v2r+…+am(p)vmr=tr(p) 簡寫為: Av=T
為了使該方程組有唯一解 [1] ,方程矩陣A為非奇異矩陣,其秩等于其增廣矩陣的秩,即:r(A)=r(A┊B),且方程的個(gè)數(shù)等于未知數(shù)的個(gè)數(shù),故取m=p,此時(shí)方程組的唯一解為: Vr=[v0r,v2r,…vmr](r=0,1,2…m-1)
(4)重復(fù)第三步就可以求出輸出層m個(gè)神經(jīng)元的權(quán)值,以求的輸出層的權(quán)矩陣加上隨機(jī)固定的隱層與輸入層的權(quán)值就等于神經(jīng)網(wǎng)絡(luò)最后訓(xùn)練的權(quán)矩陣。
計(jì)算機(jī)運(yùn)算實(shí)例
現(xiàn)以神經(jīng)網(wǎng)絡(luò)最簡單的XOR問題用VC編程運(yùn)算進(jìn)行比較(取神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為2-4-1型),傳統(tǒng)算法和改進(jìn)BP算法的誤差(取動量因子α=0.001 5,步長η=1.653)
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個(gè)字
最新活動更多
推薦專題
- 1 腦機(jī)接口芯片,華為出了新專利!
- 2 今年諾獎(jiǎng)對人工智能的重視,給我們的基礎(chǔ)教育提了個(gè)醒
- 3 銀行業(yè)AI大模型,從入局到求變
- 4 巨頭搶布局,VC狂撒錢,為了能讓「AI讀心」這些公司卷瘋了
- 5 阿斯麥ASML:“骨折級”洋相,又成AI第一殺手?
- 6 蘋果市值創(chuàng)新高,iPhone 16能否助力突破4萬億美元大關(guān)?
- 7 洞見AI風(fēng)潮 第二屆vivo藍(lán)河操作系統(tǒng)創(chuàng)新賽開啟招募
- 8 地平線開啟配售,阿里百度各砸5000萬美金,市值最高超500億
- 9 小馬智行沖刺納斯達(dá)克:或成「全球Robotaxi第一股」,兩年半營收約12億元
- 10 云從科技:營收低迷與虧損加劇,2025年盈利目標(biāo)挑戰(zhàn)重重
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市