陳曉琳
(武漢鐵路職業(yè)技術(shù)學(xué)院,湖北 武漢 430000)
由于BP 神經(jīng)網(wǎng)絡(luò)是一個既向前傳播也能向后傳播的過程。 它在多級網(wǎng)絡(luò)中,可以計算出隱藏層的任何神經(jīng)元的誤差。 它利用最后輸出端的誤差計算出前一個神經(jīng)元輸出端的誤差,并再次利用這個誤差值估計出更前一層的誤差值。 循環(huán)下來,就可獲得所有其他各層的誤差估計。這誤差估計雖然它本身的精度會在向后傳播的過程中不斷降低,但卻可以為多層網(wǎng)絡(luò)的訓(xùn)練提供有效算法。
BP 神經(jīng)網(wǎng)絡(luò)作為一個有導(dǎo)師訓(xùn)練的網(wǎng)絡(luò)。在輸入一個向量時,也會被要求給出對應(yīng)的一個理想輸出向量, 使網(wǎng)絡(luò)中出現(xiàn)異相聯(lián)的映射。 也就是輸入向量與對應(yīng)的輸出向量之間構(gòu)成一個“訓(xùn)練對”。
根據(jù)以上的研究分析, 我們可以得出采用有導(dǎo)師學(xué)習(xí)的訓(xùn)練方法,需進(jìn)行以下步驟:1)從訓(xùn)練的樣本集合中取一個樣本(Ai,Bi);2)計算神經(jīng)網(wǎng)絡(luò)中的實(shí)際輸出O;3)求D=Bi-O;4)根據(jù)D 調(diào)整權(quán)矩陣W;5)對每個樣本重復(fù)上述過程,直到對整個樣本集來說,誤差不超過規(guī)定范圍。
BP 神經(jīng)網(wǎng)絡(luò)向前傳播訓(xùn)練方法:1) 從樣本集中取一個樣本(XP,YP);2)計算相應(yīng)的實(shí)際輸出OP;
在這個過程中,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層。它是在網(wǎng)絡(luò)完成訓(xùn)練后正常執(zhí)行的過程,這個過程在網(wǎng)絡(luò)中執(zhí)行以下運(yùn)算:
OP=Fn(...F2(F1(XPW(1))W(2))...)W(n))
BP 神經(jīng)網(wǎng)絡(luò)向后傳播階段訓(xùn)練方法[1]:1)計算實(shí)際輸出Op與相應(yīng)的理想輸出Yp的差;2)依照極小化誤差的方式來調(diào)整網(wǎng)絡(luò)的權(quán)矩陣。
以上兩個階段的訓(xùn)練方法都必須受到精度的控制,即:
以上即作為網(wǎng)絡(luò)中關(guān)于第p 個樣本的誤差測度。而將網(wǎng)絡(luò)關(guān)于整個樣本集的誤差測度定義為E=ΣEp
值得注意的是,在開始調(diào)整神經(jīng)元的連接權(quán)時,得先求出輸出層的誤差,而其它層的誤差要通過此誤差反向逐層推算后才能得到。
那么在這里還要注意誤差傳播分析中輸出層權(quán)和隱藏層權(quán)的調(diào)整,下圖是 ANP到 ANq接:
圖1
那么在實(shí)際的路由問題中,我們就可以利用神經(jīng)網(wǎng)絡(luò)這種不斷調(diào)整其連接權(quán)值或閥值的過程來不斷的為我們每一個節(jié)點(diǎn)選擇其最優(yōu)的路由決定,并最終達(dá)到整個路徑或延時方面的最優(yōu)化。 每一個節(jié)點(diǎn)中的神經(jīng)元會根據(jù)每一次反饋過來的信息進(jìn)行下一步選擇。但由于每個節(jié)點(diǎn)同時存在很多不同的相連的路徑,那么數(shù)據(jù)會通過各個不同路徑先向前傳播, 然后根據(jù)最終到達(dá)目的節(jié)點(diǎn)的信息反饋到源節(jié)點(diǎn),供其參考,最后選擇最終合適的路徑。
被調(diào)整后的神經(jīng)網(wǎng)絡(luò)連接權(quán)值,可以使任意一個輸入都可在網(wǎng)絡(luò)對中得到最佳的的輸出或者結(jié)果,這也是BP 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的最終目的。 正向傳播和反向傳播構(gòu)成了BP 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程。 正向傳播按照字面意思,就肯定是向前傳遞網(wǎng)絡(luò)信息,并針對某一輸入值得到相應(yīng)輸出結(jié)果;而反向傳播既是向后一層一層的傳遞誤差值,不斷地向后反饋信息,調(diào)整每個神經(jīng)元之間的的連接權(quán)值,使網(wǎng)絡(luò)在得到不同的輸入信息后都能經(jīng)過正確的計算得到最佳的輸出結(jié)果,并且誤差得保持在一定的范圍之內(nèi)。
BP 神經(jīng)算法的學(xué)習(xí)方法是對需要得到訓(xùn)練的樣本進(jìn)行針對網(wǎng)絡(luò)權(quán)值的調(diào)整的訓(xùn)練。每組都由相應(yīng)的輸入以及希望得到的輸出這兩個結(jié)構(gòu)的組成。在向前傳播的過程中,將需要得到訓(xùn)練的樣本輸入,通過每一個神經(jīng)元進(jìn)行處理,并最終到達(dá)輸出。在這整個過程中,上一級的神經(jīng)元就會影響到下一級的神經(jīng)元,如果通過層層傳播,最終得到的結(jié)果不是期望的結(jié)果,就會進(jìn)行下一步,向后傳播。
向后傳播則是將誤差信號依照原來的方式向后傳播,傳播的過程中根據(jù)一定的規(guī)則對每個節(jié)點(diǎn)的權(quán)重閥值進(jìn)行更改,這個過程直到到達(dá)最開始的神經(jīng)元才停止,轉(zhuǎn)而開始上面的步驟,向前傳播。這個過程循環(huán)往復(fù)下去,直至最終的輸出結(jié)果達(dá)到期望的要求,那么這個時候算法的學(xué)習(xí)才算完畢,否則,繼續(xù)往復(fù)下去。
學(xué)習(xí)過程的循環(huán)往復(fù), 最終到整個神經(jīng)網(wǎng)絡(luò)得到理想的結(jié)果為止。在這里需要注意的是,神經(jīng)網(wǎng)絡(luò)在進(jìn)行訓(xùn)練的實(shí)際過程中,是只有向前傳播而沒有向后傳播的。
具體步驟如下:在此次學(xué)習(xí)算法中,只考慮QOS 路由的最小跳轉(zhuǎn)數(shù),根據(jù)BP 神經(jīng)網(wǎng)絡(luò)模型的相關(guān)理論,本文首先建立一個反饋式神經(jīng)網(wǎng)絡(luò)路由分配計算機(jī)結(jié)構(gòu)。
定義反饋函數(shù)R,它表示反向傳播中對神經(jīng)網(wǎng)絡(luò)的反饋:1)定義參考數(shù)值P;2)若Rk≥Pk-1,那么有W+ij修正為 w+ji+Rk; w-jt 修正為 wjt+Rk/(n-1).( t≠i)
當(dāng)該路徑的回饋函數(shù)大于等于P, 到達(dá)神經(jīng)元j 的所有正權(quán)重加強(qiáng),這個就意味改路徑下次被使用的機(jī)率增大,而且其它的負(fù)權(quán)重會相應(yīng)加強(qiáng)些許,以期達(dá)到平衡。 反之,神經(jīng)元j 的負(fù)權(quán)重被加強(qiáng),該路徑被使用的機(jī)率減小,而且其正權(quán)重相應(yīng)加強(qiáng)達(dá)到平衡。
在此例中,節(jié)點(diǎn)A 到目的節(jié)點(diǎn)F,路徑(A,C,F)跳轉(zhuǎn) 2 次,測量數(shù)據(jù)包返回起始節(jié)點(diǎn)A,獲得的路徑值為2。 α 為學(xué)習(xí)速率,用來控制反饋函數(shù)的取值范圍。 若α 值取 0.5,路徑(A,C,F)的反饋函數(shù)為1,路徑(A,E,C,F)的反饋值為0.667,很顯然前一個路徑為改變權(quán)重值做出最大的貢獻(xiàn),那么神經(jīng)元就優(yōu)先選擇該路徑。
1)分別對輸入層到隱含層的權(quán)值、隱含層到輸出層的權(quán)值和輸入層到隱含層的閥值進(jìn)行初始化。 (其中p0 表示訓(xùn)練樣本輸入;t0 表示訓(xùn)練樣本期望值;ptest 表示需要仿真的樣本;l 表示隱含層神經(jīng)元數(shù)目;r 表示迭代次數(shù);lv 表示權(quán)值學(xué)習(xí)率;lf 表示閥值學(xué)習(xí)率;mse 表示誤差)
Function[out7,out1,out2,out3,out4,out5,out6]=bp0(p0,t0,ptest,l,r,lv,lf,mse) [p,minp,maxp,t,mint,maxt]=premnmx(p0,t0);
P2=tramnmx(ptest,minp,maxp);
m=size(p);
n=size(t);
w=rand(m(1),1); %初始化輸入層到隱含層的權(quán)值
v=rand(1,n(1)); %初始化隱含層到輸出層的權(quán)值
thetal1=rand(1,1); %初始化輸入層的閥值
thetal2=rand(n(1),1); %初始化隱含層的閥值
m0=size(ptest);
sum00(1:r)=mse;
h0=plot(1:r,sum00,’EraseMode’,’normal’);
2)分別計算輸入層的輸出、隱含層的輸出和輸出層的輸出。
o1=p(:,g0); %輸入層的輸出
o2=1./(1+exp(-(w’*o1+theta1)));%計算隱含層的輸出
o3=v’*o2+theta2; %計算輸出層的輸出
e=t(:,g0)-o3;
3)對神經(jīng)網(wǎng)絡(luò)中的各層次進(jìn)行訓(xùn)練,即對輸出層、隱含層和輸入層進(jìn)行閥值調(diào)整。
theta2=theta2+lf*e; %調(diào)整輸出層閥值
deta=v*e;
v=v+lv*o2*e’; %調(diào)整輸入層至隱含層權(quán)值
g=(o2).*(1-o2).*deta;
theta1=theta1+lf*g; %調(diào)整隱含層閥值
w=w+lv*o1*g’; %調(diào)整隱含層至輸出層權(quán)值
本文針對QOS 的特診及相應(yīng)的一些參數(shù)特點(diǎn),構(gòu)建了QOS 組播路由的數(shù)學(xué)模型。 然后在此基礎(chǔ)之上利用神經(jīng)網(wǎng)絡(luò)的工作原理和流程,立足于QOS 路由——NP-complete 問題的特征,闡述了選取BP 神經(jīng)網(wǎng)絡(luò)算法作為參考依據(jù)的原因。 和算法過程。
[1]Q Zhu,M Parsa,J Garcial-Luna-Aceves.A Source-based Algonthm for Delayconstrained Minimum-cost Multi casting [J].Proceeding of IEEE INFOCOM’95,1995.
[2]方建安,等.采用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)控制器[J].控制與決策,1993,3(3).
[3]萬曉榆.下一代網(wǎng)絡(luò)技術(shù)與應(yīng)用[M].北京:人民郵電出版社,2003,3:15-16.