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

📄 1_2反向传播bp模型.htm

📁 企业数字神经网络功能开发文章
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<!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.2800.1106" 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>&nbsp;&nbsp;&nbsp;&nbsp; 
      <A 
      href="http://www.jgchina.com/ednns/ednnsbk/4.1.2.htm">上一页</A>&nbsp;&nbsp;&nbsp;&nbsp; 
      <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&nbsp; 神经网络学习系统框图</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&nbsp;&nbsp; 感知器结构</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>&nbsp;&nbsp;&nbsp;&nbsp; 
      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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      (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)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1-22)</P>
      <P>其中,η称为权重变化率,0&lt;η≤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%">&nbsp;</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 + -