?? 1_2反向傳播bp模型.htm
字號:
<TD width="100%" height=144>即有:
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="76%"><IMG height=124 src="1_2反向傳播BP模型.files/4.2.ht15.gif"
width=119 border=0></TD>
<TD width="24%">(1-24)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=487>
<P>從式(1—24)有:
<P>W<SUB>1</SUB>≥θ,W<SUB>2</SUB>≥θ</FONT></SPAN></P>
<P><FONT size=3>令 W<SUB>1</SUB>=1,W<SUB>2</SUB>=2</SPAN></FONT></P>
<P><FONT size=3>則有:</FONT><FONT size=3>θ</FONT>≤1</P>
<P>取 <FONT size=3>θ=0.5</FONT></P>
<P><FONT size=3>則有:X1+X2-0.5=0,分類情況如圖1—11所示。</FONT>
<P align=center><IMG height=339 src="1_2反向傳播BP模型.files/4.2.ht16.gif"
width=384 border=0></P></TD></TR>
<TR>
<TD width="100%" height=286>
<P align=center>圖1-11 邏輯函數X<SUB>1</SUB>VX<SUB>2</SUB>的分類</P>
<P>1.2.2 神經網絡學習的梯度算法</P>
<P>從感如器的學習算法可知,學習的目的是在于修改網絡中的權系數,使到網絡對于所輸入的模式樣本能正確分類。當學習結束時,也即神經網絡能正確分類時,顯然權系數就反映了同類輸人模式樣本的共同特征。換句話講,權系數就是存儲了的輸人模式。由于權系數是分散存在的,故神經網絡自然而然就有分布存儲的特點。</P>
<P>前面的感知器的傳遞函數是階躍函數,所以,它可以用作分類器。前面一節所講的感知器學習算法因其傳遞函數的簡單而存在局限性。</P>
<P>感知器學習算法相當簡單,并且當函數線性可分時保證收斂。但它也存在問題:即函數不是線性可分時,則求不出結果;另外,不能推廣到一般前饋網絡中。</P>
<P>為了克服存在的問題,所以人們提出另一種算法——梯度算法(也即是LMS法)。</P>
<P>為了能實現梯度算法,故把神經元的激發函數改為可微分函數,例如Sigmoid函數,非對稱Sigmoid函數為f(X)=1/(1+e<SUP>-x</SUP>),對稱Sigmoid函數f(X)=(1-e<SUP>-x</SUP>)/(1+e<SUP>-x</SUP>);而不采用式(1—13)的階躍函數。</P>
<P>對于給定的樣本集X<SUB>i</SUB>(i=1,2,,n),梯度法的目的是尋找權系數W<SUP>*</SUP>,使得f[W<SUP>*.</SUP>X<SUB>i</SUB>]與期望輸出Yi盡可能接近。</P>
<P>設誤差e采用下式表示:</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="77%"><IMG height=39 src="1_2反向傳播BP模型.files/4.2.ht17.gif"
width=167 border=0></TD>
<TD width="23%">(1-25)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=115>
<P>其中,Y<SUB>i</SUB>=f〔W<SUP>*</SUP>·X<SUB>i</SUB>]是對應第i個樣本X<SUB>i</SUB>的實時輸出
<P>Y<SUB>i</SUB>是對應第i個樣本X<SUB>i</SUB>的期望輸出。</P>
<P>要使誤差e最小,可先求取e的梯度:</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="77%"><IMG height=44 src="1_2反向傳播BP模型.files/4.2.ht18.gif"
width=202 border=0></TD>
<TD width="23%">(1-26)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=43>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="8%">
<P>其中:</P></TD>
<TD width="69%"><IMG height=39 src="1_2反向傳播BP模型.files/4.2.ht19.gif"
width=160 border=0></TD>
<TD width="23%">(1-27)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=103>
<P>令 U<SUB>k</SUB>=W<SUP>.</SUP>X<SUB>k</SUB>,則有:
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="77%"><IMG height=71 src="1_2反向傳播BP模型.files/4.2.ht20.gif"
width=271 border=0></TD>
<TD width="23%">(1-28)</TD></TR></TBODY></TABLE></P></TD></TR>
<TR>
<TD width="100%" height=67>
<P>即有:
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="77%"><IMG height=40 src="1_2反向傳播BP模型.files/4.2.ht21.gif"
width=266 border=0></TD>
<TD width="23%">(1-29)</TD></TR></TBODY></TABLE></P></TD></TR>
<TR>
<TD width="100%" height=68>
<P>最后有按負梯度方向修改權系數W的修改規則:
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="77%"><IMG height=41 src="1_2反向傳播BP模型.files/4.2.ht22.gif"
width=328 border=0></TD>
<TD width="23%">(1-30)</TD></TR></TBODY></TABLE></P></TD></TR>
<TR>
<TD width="100%" height=72>
<P>也可寫成:
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="77%"><IMG height=45 src="1_2反向傳播BP模型.files/4.2.ht23.gif"
width=264 border=0></TD>
<TD width="23%">(1-31)</TD></TR></TBODY></TABLE></P></TD></TR>
<TR>
<TD width="100%" height=794>
<P>在上式(1—30),式(1—31)中,<SPAN
style="FONT-FAMILY: 宋體; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><FONT
size=3>μ</FONT></SPAN>是權重變化率,它視情況不同而取值不同,一般取0-1之間的小數。<BR>很明顯,梯度法比原來感知器的學習算法進了一大步。其關鍵在于兩點:
<P>1.神經元的傳遞函數采用連續的s型函數,而不是階躍函數;</P>
<P>2.對權系數的修改采用誤差的梯度去控制,而不是采用誤差去控制。故而有更好的動態特能,即加強了收斂進程。</P>
<P>但是梯度法對于實際學習來說,仍然是感覺太慢;所以,這種算法仍然是不理想的。</P>
<P>1.2.3 反向傳播學習的BP算法</P>
<P>反向傳播算法也稱BP算法。由于這種算法在本質上是一種神經網絡學習的數學模型,所以,有時也稱為BP模型。</P>
<P>BP算法是為了解決多層前向神經網絡的權系數優化而提出來的;所以,BP算法也通常暗示著神經網絡的拓撲結構是一種無反饋的多層前向網絡。故而.有時也稱無反饋多層前向網絡為BP模型。</P>
<P>在這里,并不要求過于嚴格去爭論和區分算法和模型兩者的有關異同。感知機學習算法是一種單層網絡的學習算法。在多層網絡中.它只能改變最后權系數。因此,感知機學習算法不能用于多層神經網絡的學習。1986年,Rumelhart提出了反向傳播學習算法,即BP(backpropagation)算法。這種算法可以對網絡中各層的權系數進行修正,故適用于多層網絡的學習。BP算法是目前最廣泛用的神經網絡學習算法之一,在自動控制中是最有用的學習算法。</P>
<P>一、BP算法的原理</P>
<P>BP算法是用于前饋多層網絡的學習算法,前饋多層網絡的結構一般如圖1—12所示</P>
<P align=center><IMG height=449 src="1_2反向傳播BP模型.files/4.2.ht24.gif"
width=588 border=0></P></TD></TR>
<TR>
<TD width="100%" height=175>
<P align=center>圖1-12 網絡學習結構</P>
<P>它含有輸人層、輸出層以及處于輸入輸出層之間的中間層。中間層有單層或多層,由于它們和外界沒有直接的聯系,故也稱為隱層。在隱層中的神經元也稱隱單元。隱層雖然和外界不連接.但是,它們的狀態則影響輸入輸出之間的關系。這也是說,改變隱層的權系數,可以改變整個多層神經網絡的性能。</P>
<P>設有一個m層的神經網絡,并在輸入層加有樣本X;設第k層的i神經元的輸入總和表示為U<SUB>i</SUB><SUP>k</SUP>,輸出X<SUB>i</SUB><SUP>k</SUP>;從第k—1層的第j個神經元到第k層的第i個神經元的權系數為W<SUB>ij</SUB>各個神經元的激發函數為f,則各個變量的關系可用下面有關數學式表示:</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD
width="79%">X<SUB>i</SUB><SUP>k</SUP>=f(U<SUB>i</SUB><SUP>k</SUP>) </TD>
<TD width="21%">(1-32)</TD></TR>
<TR>
<TD width="79%"><IMG height=40 src="1_2反向傳播BP模型.files/4.2.ht25.gif"
width=160 border=0></TD>
<TD width="21%">(1-33)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=245>
<P>反向傳播算法分二步進行,即正向傳播和反向傳播。這兩個過程的工作簡述如下。
<P>1.正向傳播</P>
<P>輸入的樣本從輸入層經過隱單元一層一層進行處理,通過所有的隱層之后,則傳向輸出層;在逐層處理的過程中,每一層神經元的狀態只對下一層神經元的狀態產生影響。在輸出層把現行輸出和期望輸出進行比較,如果現行輸出不等于期望輸出,則進入反向傳播過程。</P>
<P>2.反向傳播</P>
<P>反向傳播時,把誤差信號按原來正向傳播的通路反向傳回,并對每個隱層的各個神經元的權系數進行修改,以望誤差信號趨向最小。</P>
<P>二、BP算法的數學表達</P>
<P>BP算法實質是求取誤差函數的最小值問題。這種算法采用非線性規劃中的最速下降方法,按誤差函數的負梯度方向修改權系數。</P>
<P>為了說明BP算法,首先定義誤差函數e。取期望輸出和實際輸出之差的平方和為誤差函數,則有:</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="79%"><IMG height=40 src="1_2反向傳播BP模型.files/4.2.ht26.gif"
width=176 border=0></TD>
<TD width="21%">(1-34)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=199>
<P>其中:Y<SUB>i</SUB>是輸出單元的期望值;它也在這里用作教師信號;
<P>X<SUB>i</SUB><SUP>m</SUP>是實際輸出;因為第m層是輸出層。</P>
<P>由于BP算法按誤差函數e的負梯度方向修改權系數,故權系數W<SUB>ij</SUB>的修改量Aw<SUB>ij</SUB>,和e</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="79%"><IMG height=48 src="1_2反向傳播BP模型.files/4.2.ht27.gif"
width=138 border=0></TD>
<TD width="21%">(1-35)</TD></TR>
<TR>
<TD width="79%"><FONT size=2>也可寫成</FONT></TD>
<TD width="21%"></TD></TR>
<TR>
<TD width="79%"><IMG height=51 src="1_2反向傳播BP模型.files/4.2.ht28.gif"
width=152 border=0></TD>
<TD width="21%">(1-36)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=521>
<P>其中:<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋體; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">η<SPAN
style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋體; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"></SPAN></SPAN>為學習速率,即步長。
<P>很明顯,根據BP算法原則,求ae/aW<SUB>ij</SUB>最關鍵的。下面求ae/aW<SUB>ij</SUB>;有</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="79%"><IMG height=55 src="1_2反向傳播BP模型.files/4.2.ht30.gif"
width=153 border=0></TD>
<TD width="21%">(1-37)</TD></TR>
<TR>
<TD width="79%"><FONT size=2>由于</FONT></TD>
<TD width="21%"></TD></TR>
<TR>
<TD width="79%"><IMG height=63 src="1_2反向傳播BP模型.files/4.2.ht31.gif"
width=303 border=0></TD>
<TD width="21%">(1-38)</TD></TR>
<TR>
<TD width="79%"><FONT size=2>故而</FONT></TD>
<TD width="21%"></TD></TR>
<TR>
<TD width="79%"><IMG height=49 src="1_2反向傳播BP模型.files/4.2.ht32.gif"
width=159 border=0></TD>
<TD width="21%">(1-39)</TD></TR>
<TR>
<TD width="79%"><FONT size=2>從而有</FONT></TD>
<TD width="21%"></TD></TR>
<TR>
<TD width="79%"><IMG height=100 src="1_2反向傳播BP模型.files/4.2.ht33.gif"
width=206 border=0></TD>
<TD width="21%">(1-40)</TD></TR>
<TR>
<TD width="79%"><FONT size=2>令</FONT></TD>
<TD width="21%"></TD></TR>
<TR>
<TD width="79%"><IMG height=46 src="1_2反向傳播BP模型.files/4.2.ht34.gif"
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -