?? 1_2反向傳播bp模型.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0044)http://www.jgchina.com/ednns/ednnsbk/4.2.htm -->
<HTML><HEAD><TITLE>1.2反向傳播BP模型</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.3243" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId><LINK
href="1_2反向傳播BP模型.files/style.css" type=text/css rel=stylesheet></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0>
<TABLE height=8523 cellSpacing=0 cellPadding=0 width=778 border=0>
<TBODY>
<TR>
<TD width="100%" height=12>
<P><A
href="http://www.jgchina.com/ednns/ednnsbk/director.htm">回目錄</A>
<A
href="http://www.jgchina.com/ednns/ednnsbk/4.1.2.htm">上一頁</A>
<A href="http://www.jgchina.com/ednns/ednnsbk/4.3.htm">下一頁</A></P></TD></TR>
<TR>
<TD width="100%" height=13>
<P align=center>1.2反向傳播BP模型</P></TD></TR>
<TR>
<TD width="100%" height=507>
<P>學習是神經網絡一種最重要也最令人注目的特點。在神經網絡的發展進程中,學習算法的研究有著十分重要的地位。目前,人們所提出的神經網絡模型都是和學習算法相應的。所以,有時人們并不去祈求對模型和算法進行嚴格的定義或區分。有的模型可以有多種算法.而有的算法可能可用于多種模型。不過,有時人們也稱算法為模型。
<P>自從40年代Hebb提出的學習規則以來,人們相繼提出了各種各樣的學習算法。其中以在1986年Rumelhart等提出的誤差反向傳播法,即BP(error
BackPropagation)法影響最為廣泛。直到今天,BP算法仍然是自動控制上最重要、應用最多的有效算法。</P>
<P>1.2.1 神經網絡的學習機理和機構</P>
<P>在神經網絡中,對外部環境提供的模式樣本進行學習訓練,并能存儲這種模式,則稱為感知器;對外部環境有適應能力,能自動提取外部環境變化特征,則稱為認知器。</P>
<P>神經網絡在學習中,一般分為有教師和無教師學習兩種。感知器采用有教師信號進行學習,而認知器則采用無教師信號學習的。在主要神經網絡如BP網絡,Hopfield網絡,ART網絡和Kohonen網絡中;BP網絡和Hopfield網絡是需要教師信號才能進行學習的;而ART網絡和Kohonen網絡則無需教師信號就可以學習。所謂教師信號,就是在神經網絡學習中由外部提供的模式樣本信號。</P>
<P>一、感知器的學習結構</P>
<P>感知器的學習是神經網絡最典型的學習。</P>
<P>目前,在控制上應用的是多層前饋網絡,這是一種感知器模型,學習算法是BP法,故是有教師學習算法。</P>
<P>一個有教師的學習系統可以用圖1—7表示。這種學習系統分成三個部分:輸入部,訓練部和輸出部。</P>
<P align=center><IMG height=255 src="1_2反向傳播BP模型.files/4.2.ht12.gif"
width=610 border=0></P></TD></TR>
<TR>
<TD width="100%" height=28>
<P align=center>圖1-7 神經網絡學習系統框圖</P></TD></TR>
<TR>
<TD width="100%" height=524>
<P>輸入部接收外來的輸入樣本X,由訓練部進行網絡的權系數W調整,然后由輸出部輸出結果。在這個過程中,期望的輸出信號可以作為教師信號輸入,由該教師信號與實際輸出進行比較,產生的誤差去控制修改權系數W。
<P>學習機構可用圖1—8所示的結構表示。</P>
<P>在圖中,X<SUB>l</SUB>,X<SUB>2</SUB>,…,X<SUB>n</SUB>,是輸入樣本信號,W<SUB>1</SUB>,W<SUB>2</SUB>,…,W<SUB>n</SUB>是權系數。輸入樣本信號X<SUB>i</SUB>可以取離散值“0”或“1”。輸入樣本信號通過權系數作用,在u產生輸出結果
∑W<SUB>i</SUB>X<SUB>i</SUB>,即有:</P>
<P>u=∑W<SUB>i</SUB>X<SUB>i</SUB>=W<SUB>1</SUB>X<SUB>1</SUB>+W<SUB>2</SUB>X<SUB>2</SUB>+</SPAN>…+W<SUB>n</SUB>X<SUB>n</SUB></P>
<P>再把期望輸出信號Y(t)和u進行比較,從而產生誤差信號e。即權值調整機構根據誤差e去對學習系統的權系數進行修改,修改方向應使誤差e變小,不斷進行下去,使到誤差e為零,這時實際輸出值u和期望輸出值Y(t)完全一樣,則學習過程結束。</P>
<P align=center><IMG height=365 src="1_2反向傳播BP模型.files/4.2.ht11.gif"
width=620 border=0></P></TD></TR>
<TR>
<TD width="100%" height=273>
<P>神經網絡的學習一般需要多次重復訓練,使誤差值逐漸向零趨近,最后到達零。則這時才會使輸出與期望一致。故而神經網絡的學習是消耗一定時期的,有的學習過程要重復很多次,甚至達萬次級。原因在于神經網絡的權系數W有很多分量W<SUB>1</SUB>,W<SUB>2</SUB>,----W<SUB>n</SUB>;也即是一個多參數修改系統。系統的參數的調整就必定耗時耗量。目前,提高神經網絡的學習速度,減少學習重復次數是十分重要的研究課題,也是實時控制中的關鍵問題。
<P>二、感知器的學習算法</P>
<P>感知器是有單層計算單元的神經網絡,由線性元件及閥值元件組成。感知器如圖1-9所示。</P>
<P align=center><IMG height=165 src="1_2反向傳播BP模型.files/4.2.ht13.gif"
width=473 border=0></P></TD></TR>
<TR>
<TD width="100%" height=95>
<P align=center>圖1-9 感知器結構</P>
<P>感知器的數學模型:</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="76%"><IMG height=47 src="1_2反向傳播BP模型.files/4.2.ht4.gif"
width=192 border=0></TD>
<TD width="24%">(1-12)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=120>
<P>其中:f[.]是階躍函數,并且有
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="76%"><IMG height=93 src="1_2反向傳播BP模型.files/4.2.ht5.gif"
width=340 border=0></TD>
<TD width="24%">(1-13)</TD></TR></TBODY></TABLE></P></TD></TR>
<TR>
<TD width="100%" height=98>
<P>θ是閥值。
<P>感知器的最大作用就是可以對輸入的樣本分類,故它可作分類器,感知器對輸入信號的分類如下:</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="76%"><IMG height=55 src="1_2反向傳播BP模型.files/4.2.ht6.gif"
width=198 border=0></TD>
<TD width="24%">(1-14)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=67>
<P>即是,當感知器的輸出為1時,輸入樣本稱為A類;輸出為-1時,輸入樣本稱為B類。從上可知感知器的分類邊界是:
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="76%"><IMG height=40 src="1_2反向傳播BP模型.files/4.2.ht7.gif"
width=130 border=0></TD>
<TD width="24%">(1-15)</TD></TR></TBODY></TABLE></P></TD></TR>
<TR>
<TD width="100%" height=67>
<P>在輸入樣本只有兩個分量X1,X2時,則有分類邊界條件:
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="76%"><IMG height=40 src="1_2反向傳播BP模型.files/4.2.ht8.gif"
width=130 border=0></TD>
<TD width="24%">(1-16)</TD></TR></TBODY></TABLE></P></TD></TR>
<TR>
<TD width="100%" height=118>
<P>即
<P>
W<SUB>1</SUB>X<SUB>1</SUB>+W<SUB>2</SUB>X<SUB>2</SUB>-<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>θ=0 (1-17)</FONT></SPAN></P>
<P>也可寫成</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="75%"><IMG height=48 src="1_2反向傳播BP模型.files/4.2.ht9.gif"
width=163 border=0></TD>
<TD width="25%">(1-18)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=164>
<P>這時的分類情況如固1—10所示。
<P>感知器的學習算法目的在于找尋恰當的權系數w=(w1.w2,…,Wn),使系統對一個特
定的樣本x=(xt,x2,…,xn)熊產生期望值d。當x分類為A類時,期望值d=1;X為B類
時,d=-1。為了方便說明感知器學習算法,把閥值<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>并人權系數w中,同時,樣本x也相應增加一 個分量x<SUB>n+1</SUB>。故令:
<P>W<SUB>n+1</SUB>=-<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>θ,X<SUB>n+1</SUB>=1
(1-19)</FONT></SPAN></P>
<P>則感知器的輸出可表示為:</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="75%"><IMG height=41 src="1_2反向傳播BP模型.files/4.2.ht10.gif"
width=130 border=0></TD>
<TD width="25%">(1-20)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=430>
<P>感知器學習算法步驟如下:<BR>1.對權系數w置初值<BR>對權系數w=(W<SUB>1</SUB>.W<SUB>2</SUB>,…,W<SUB>n</SUB>,W<SUB>n+1</SUB>)的各個分量置一個較小的零隨機值,但W<SUB>n+1</SUB>=<BR>—g。并記為W<SUB>l</SUB>(0),W<SUB>2</SUB>(0),…,W<SUB>n</SUB>(0),同時有Wn+1(0)=-<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>。這里W<SUB>i</SUB>(t)為t時刻從第i個<BR>輸入上的權系數,i=1,2,…,n。W<SUB>n+1</SUB>(t)為t時刻時的閥值。
<P align=center><IMG height=335 src="1_2反向傳播BP模型.files/4.2.ht1.gif"
width=484 border=0></P></TD></TR>
<TR>
<TD width="100%" height=1>
<P align=center>圖1-10 感知器的分類例子</P></TD></TR>
<TR>
<TD width="100%" height=456>
<P>2.輸入一樣本X=(X<SUB>1</SUB>,X<SUB>2</SUB>,…,X<SUB>n+1</SUB>)以及它的期望輸出d。
<P>期望輸出值d在樣本的類屬不同時取值不同。如果x是A類,則取d=1,如果x是B類,則取-1。期望輸出d也即是教師信號。</P>
<P>3.計算實際輸出值Y</P>
<P><IMG height=42 src="1_2反向傳播BP模型.files/4.2.ht2.gif" width=185
border=0></P>
<P>4.根據實際輸出求誤差e</P>
<P>e=d—Y(t) (1-21)</P>
<P>5.用誤差e去修改權系數</P>
<P><IMG height=26 src="1_2反向傳播BP模型.files/4.2.ht3.gif" width=241
border=0></P>
<P>i=1,2,…,n,n+1 (1-22)</P>
<P>其中,η稱為權重變化率,0<η≤1</P>
<P>在式(1—22)中,η的取值不能太大.如果1取值太大則會影響w<SUB>i</SUB>(t)的穩定;的取值也不能太小,太小則會使W<SUB>i</SUB>(t)的求取過程收斂速度太慢。</P>
<P>當實際輸出和期望值d相同時有:</P>
<P>W<SUB>i</SUB>(t+1)=W<SUB>i</SUB>(t)</P>
<P>6.轉到第2點,一直執行到一切樣本均穩定為止。</P>
<P>從上面式(1—14)可知,感知器實質是一個分類器,它的這種分類是和二值邏輯相應的。因此,感知器可以用于實現邏輯函數。下面對感知器實現邏輯函數的情況作一些介紹。</P>
<P>例:用感知器實現邏輯函數X<SUB>1</SUB>VX<SUB>2</SUB>的真值:</P>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="10%"> </TD>
<TD width="90%">
<TABLE cellSpacing=0 borderColorDark=#000000 cellPadding=0
width="62%" border=1>
<TBODY>
<TR>
<TD width="12%">X<SUB>1</SUB></TD>
<TD width="88%"><SPAN
style="LETTER-SPACING: 40px">0011</SPAN></TD></TR>
<TR>
<TD width="12%">X<SUB>2</SUB></TD>
<TD width="88%"><SPAN
style="LETTER-SPACING: 40px">0101</SPAN></TD></TR>
<TR>
<TD width="12%">X<SUB>1 </SUB>V X<SUB>2</SUB></TD>
<TD width="88%"><SPAN
style="LETTER-SPACING: 40px">0111</SPAN></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=157>
<P>以X1VX2=1為A類,以X1VX2=0為B類,則有方程組
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="76%"><IMG height=130 src="1_2反向傳播BP模型.files/4.2.ht14.gif"
width=195 border=0></TD>
<TD width="24%">(1-23)</TD></TR></TBODY></TABLE></P></TD></TR>
<TR>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -