📄 4.htm
字号:
<TD width="79%"><FONT size=2>令</FONT></TD>
<TD width="21%"></TD></TR>
<TR>
<TD width="79%"><IMG height=46 src="4.files/4.2.ht34.gif" width=96
border=0></TD>
<TD width="21%">(1-41)</TD></TR>
<TR>
<TD width="79%"><FONT size=2>则有学习公式:</FONT></TD>
<TD width="21%"></TD></TR>
<TR>
<TD width="79%"><IMG height=29 src="4.files/4.2.ht35.gif" width=199
border=0></TD>
<TD width="21%">(1-42)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=244>
<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>为学习速率,即步长,一般取0-1间的数。
<P>从上面可知,d<SUB>i</SUB><SUP>k</SUP>实际仍末给出明显的算法公式,下面求d<SUB>i</SUB><SUP>k</SUP>的计算公式。</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="79%"><IMG height=111 src="4.files/4.2.ht36.gif" width=137
border=0></TD>
<TD width="21%">(1-43)</TD></TR>
<TR>
<TD width="79%">
<P>从式(1-32)可知在式(1-43)中,有 </P></TD>
<TD width="21%"></TD></TR>
<TR>
<TD width="79%"><IMG height=54 src="4.files/4.2.ht37.gif" width=125
border=0></TD>
<TD width="21%">(1-44)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=603>
<P>为了方便进行求导,取f为连续函数。一般取非线性连续函数,例如Sigmoid函数。当取f为非对称Sigmoid函数时,有:
<P><IMG height=48 src="4.files/4.2.ht38.gif" width=224 border=0></P>
<P>则有:f'(U<SUB>i</SUB><SUP>k</SUP>)=f'(U<SUB>i</SUB><SUP>k</SUP>)(1-f(U<SUB>i</SUB><SUP>k</SUP>))<BR>
=X<SUB>i</SUB><SUP>k</SUP>(1-X<SUB>i</SUB><SUP>k</SUP>)
(1-45)</P>
<P>再考虑式(1—43)中的偏微分项ae/aX<SUB>i</SUB><SUP>k</SUP>,有两种情况需考虑的:</P>
<P>如果k=m,则是输出层,这时有Y<SUB>i</SUB>是输出期望值,它是常数。从式(1-34)有</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="77%"><IMG height=82 src="4.files/4.2.ht39.gif" width=160
border=0></TD>
<TD width="23%">(1-46)</TD></TR>
<TR>
<TD width="77%"><FONT size=2>从而有
d<SUB>i</SUB><SUP>m</SUP>=X<SUB>i</SUB><SUP>m</SUP>(1-X<SUB>i</SUB><SUP>m</SUP>)(X<SUB>i</SUB><SUP>m</SUP>-Y<SUB>i</SUB>)</FONT></TD>
<TD width="23%">(1-47)</TD></TR>
<TR>
<TD width="77%"><FONT
size=2>2.如果k<m,则该层是隐层.这时应考虑上一层对它的作用,故有:</FONT></TD>
<TD width="23%"></TD></TR>
<TR>
<TD width="77%"><IMG height=51 src="4.files/4.2.ht40.gif" width=221
border=0></TD>
<TD width="23%">(1-48)</TD></TR>
<TR>
<TD width="77%"><FONT size=2>从式(1—41)中,可知有:</FONT></TD>
<TD width="23%"></TD></TR>
<TR>
<TD width="77%"><IMG height=45 src="4.files/4.2.ht41.gif" width=127
border=0></TD>
<TD width="23%">(1-49)</TD></TR>
<TR>
<TD width="77%" height=25><FONT size=2>从式(1—33)中,可知有:</FONT></TD>
<TD width="23%" height=25></TD></TR>
<TR>
<TD width="77%"><IMG height=55 src="4.files/4.2.ht42.gif" width=280
border=0></TD>
<TD width="23%">(1-50)</TD></TR>
<TR>
<TD width="77%"><FONT size=2>故而有</FONT></TD>
<TD width="23%"></TD></TR>
<TR>
<TD width="77%"><IMG height=46 src="4.files/4.2.ht43.gif" width=168
border=0></TD>
<TD width="23%">(1-51)</TD></TR>
<TR>
<TD width="77%"><FONT size=2>最后有:</FONT></TD>
<TD width="23%"></TD></TR>
<TR>
<TD width="77%"><IMG height=35 src="4.files/4.2.ht44.gif" width=269
border=0></TD>
<TD width="23%">(1-52)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=231>
<P>从上述过程可知:多层网络的训练方法是把一个样本加到输入层,并根据向前传播的规则:
<P> </P>
<P>X<SUB>i</SUB><SUP>k</SUP>=f(U<SUB>i</SUB><SUP>k</SUP>)</P>
<P>不断一层一层向输出层传递,最终在输出层可以得到输出X<SUB>i</SUB><SUP>m</SUP>。</P>
<P>把Xim和期望输出Yi进行比较.如果两者不等,则产生误差信号e,接着则按下面公式反向传播修改权系数:</P>
<TABLE height=95 cellSpacing=0 cellPadding=0 width="80%" align=center
border=0>
<TBODY>
<TR>
<TD width="77%" height=37><IMG height=31 src="4.files/4.2.ht46.gif"
width=197 border=0><IMG height=36 src="4.files/4.2.ht45.gif"
width=145 border=0></TD>
<TD width="23%" height=37>(1-53)</TD></TR>
<TR>
<TD width="77%" height=17>
<P>其中</P></TD>
<TD width="23%" height=58 rowSpan=3></TD></TR>
<TR>
<TD width="77%"
height=23>d<SUB>i</SUB><SUP>m</SUP>=X<SUB>i</SUB><SUP>m</SUP>(1-X<SUB>i</SUB><SUP>m</SUP>)(X<SUB>i</SUB><SUP>m</SUP>-Y<SUB>i</SUB>)</TD></TR>
<TR>
<TD width="77%" height=18><IMG height=35 src="4.files/4.2.ht47.gif"
width=256 border=0></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=121>
<P>上面公式中,求取本层d<SUB>i</SUB><SUP>k</SUP>时,要用到高一层的d<SUB>i</SUB><SUP>k+1</SUP>;可见,误差函数的求取是从输出层开始,到输入层的反向传播过程。在这个过程中不断进行递归求误差。
<P>通过多个样本的反复训练,同时向误差渐渐减小的方向对权系数进行修正,以达最终消除误差。从上面公式也可以知道,如果网络的层数较多时,所用的计算量就相当可观,故而收敛速度不快。</P>
<P>为了加快收敛速度,一般考虑上一次的权系数,并以它作为本次修正的依据之一,故而有修正公式:</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="77%"><IMG height=28 src="4.files/4.2.ht48.gif" width=355
border=0></TD>
<TD width="23%">(1-54)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=100>
<P>其中:<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>为学习速率,即步长,<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—0.4左右
<P><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.7—0.9左右。</P>
<P>在上面,式(1—53)也称为一般化的Delta法则。对于没有隐层的神经网络,可取</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="77%"><IMG height=29 src="4.files/4.2.ht49.gif" width=195
border=0></TD>
<TD width="23%">(1-55)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=377>
<P>其中:,Y<SUB>i</SUB>为期望输出;
<P>X<SUB>j</SUB>为输出层的实际输出;</P>
<P>X<SUB>i</SUB>为输入层的输入。</P>
<P>这显然是一种十分简单的情况,式(1—55)也称为简单Delta法则。</P>
<P>在实际应用中,只有一般化的Delta法则式(1—53)或式(1—54)才有意义。简单Delta法则式(1—55)只在理论推导上有用。</P>
<P>三、BP算法的执行步骤</P>
<P>在反向传播算法应用于前馈多层网络时,采用Sigmoid为激发面数时,可用下列步骤对网络的权系数W<SUB>ij</SUB>进行递归求取。注意对于每层有n个神经元的时候,即有i=1,2,…,n;j=1,2,…,n。对于第k层的第i个神经元,则有n个权系数W<SUB>i1</SUB>,W<SUB>i2</SUB>,…,W<SUB>in</SUB>,另外取多—个W<SUB>in+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>θ<SUB>i</SUB></FONT></SPAN>;并且在输入样本X时,取x=(X<SUB>1</SUB>,X<SUB>2</SUB>,…,X<SUB>n</SUB>,1)。</P>
<P>算法的执行的步骤如下:</P>
<P>1.对权系数W<SUB>ij</SUB>置初值。</P>
<P>对各层的权系数W<SUB>ij</SUB>置一个较小的非零随机数,但其中W<SUB>i</SUB>,n+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>。</P>
<P>2.输入一个样本X=(x<SUB>l</SUB>,x<SUB>2</SUB>,…,x<SUB>n</SUB>,1),以及对应期望输出Y=(Y<SUB>1</SUB>,Y<SUB>2</SUB>,…,Y<SUB>n</SUB>)。</P>
<P>3.计算各层的输出</P>
<P>对于第k层第i个神经元的输出X<SUB>i</SUB><SUP>k</SUP>,有:</P>
<TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
<TBODY>
<TR>
<TD width="100%"><IMG height=45 src="4.files/4.2.ht50.gif" width=431
border=0></TD></TR>
<TR>
<TD
width="100%">X<SUB>i</SUB><SUP>k</SUP>=f(U<SUB>i</SUB><SUP>k</SUP>)</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width="100%" height=394>
<P>4.求各层的学习误差d<SUB>i</SUB><SUP>k</SUP>
<P>对于输出层有k=m,有</P>
<P>d<SUB>i</SUB><SUP>m</SUP>=X<SUB>i</SUB><SUP>m</SUP>(1-X<SUB>i</SUB><SUP>m</SUP>)(X<SUB>i</SUB><SUP>m</SUP>-Y<SUB>i</SUB>)</P>
<P>对于其他各层,有</P>
<P><IMG height=36 src="4.files/4.2.ht51.gif" width=256 border=0></P>
<P>5.修正权系数Wij和阀值<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><BR>用式(1—53)时有:</P>
<P><IMG height=31 src="4.files/4.2.ht52.gif" width=292 border=0></P>
<P>用式(1—54)时有:</P>
<P><IMG height=26 src="4.files/4.2.ht53.gif" width=397 border=0></P>
<P>其中:</P>
<P><IMG height=57 src="4.files/4.2.ht54.gif" width=366 border=0></P>
<P>6.当求出了各层各个权系数之后,可按给定品质指标判别是否满足要求。如果满足要求,则算法结束;如果未满足要求,则返回(3)执行。
<P>这个学习过程,对于任一给定的样本X<SUB>p</SUB>=(X<SUB>p1</SUB>,X<SUB>p2</SUB>,…X<SUB>pn</SUB>,1)和期望输出Y<SUB>p</SUB>=(Y<SUB>p1</SUB>,Y<SUB>p2</SUB>,…,Y<SUB>pn</SUB>)都要执行,直到满足所有输入输出要求为止。</P></TD></TR>
<TR>
<TD width="100%" height=28>
<P align=right><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></TBODY></TABLE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -