⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4.htm

📁 介绍讲解人工智能神经网络——数字神经网络系统的教程
💻 HTM
📖 第 1 页 / 共 3 页
字号:
          <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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      =X<SUB>i</SUB><SUP>k</SUP>(1-X<SUB>i</SUB><SUP>k</SUP>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      (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>从而有&nbsp;&nbsp; 
            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&lt;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>&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <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 + -