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

📄 10.htm

📁 介绍讲解人工智能神经网络——数字神经网络系统的教程
💻 HTM
📖 第 1 页 / 共 4 页
字号:
  <TR>
    <TD width="100%" height=64>
      <P>假定对象的逆模型存在.那么,应有式(2.19)所示的形式。如果逆模型是准确的.那么,以逆模型构成的神经控制器NC对对象的控制总可以使输出偏差e(k)=r(k)—v(k)趋于无穷小。 
      </P>
      <P>直接适应控制不是先给出逆模型,而是根据输出的偏差e,去对Nc进行训练.令其逼近于逆模型。在直接适应控制结构中,先期已知的条件有两个:</P>
      <P>1.神经网络控制器NC有式(2.19)的结构形式。</P>
      <P>2.输出偏差e(k)=r(k)—y(k)</P>
      <P>为了进行训练,偏差函数J的格式取</P>
      <P>J(k)=0.5[e(k)]<SUP>2</SUP>=0.5[r(k)-y(k)]<SUP>2</SUP>&nbsp;&nbsp;&nbsp; 
      (2.30)</P>
      <P>由于,NC的输出为u(k),而在训练中需要求取偏差函数J对M的导数,则有3</P>
      <TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
        <TBODY>
        <TR>
          <TD width="71%"><IMG height=113 src="10.files/5.2.ht8.gif" width=267 
            border=0></TD>
          <TD width="29%">(2.31)</TD></TR></TBODY></TABLE></TD></TR>
  <TR>
    <TD width="100%" height=105>
      <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">其中:ζ<SUB>k</SUB>是二进制因子,取1或0,它用于说明对输入u(k)的约束。同时避免错误训练NC而无法跟踪给定输入I。</SPAN> 
      </P>
      <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">令</SPAN></P>
      <TABLE cellSpacing=0 cellPadding=0 width="80%" align=center border=0>
        <TBODY>
        <TR>
          <TD width="71%"><IMG height=44 src="10.files/5.2.ht9.gif" width=162 
            border=0></TD>
          <TD width="29%">(2.32)</TD></TR>
        <TR>
          <TD width="71%"><FONT size=2>对于以式(2.15)、(2.16)描述的系统,在k时刻<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">ζ</SPAN>k取值如下</FONT></TD>
          <TD width="29%"></TD></TR>
        <TR>
          <TD width="71%"><IMG height=90 src="10.files/5.2.ht10.gif" width=298 
            border=0></TD>
          <TD width="29%">(2.33)</TD></TR></TBODY></TABLE></TD></TR>
  <TR>
    <TD width="100%" height=297>
      <P>在式(2.31)中加入电等于在Nc输出和对象输入之间存在一个限幅器。当式(2.16)所表示的u(k)产生错误输出而超界时,这时限幅器就会饱和,同时,式(2.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">ζ<SUB>k</SUB></SPAN>=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">ζ<SUB>k</SUB></SPAN>=0;这时就会禁止学习。而当给定输入r可以被跟随时,则学习正常执行。 
      </P>
      <P>三、间接适应控制训练结构</P>
      <P>间接适应控制与直接适应控制不同;神经网络控制器的训练的依据是给定信号r和对象仿真器的偏差e<SUB>E</SUB>=r(k)—y<SUB>E</SUB>(k);而对象仿真器的训练的依据是对象输出y(k)与对象仿真器输出y<SUB>E</SUB>(k)的偏差e<SUB>c</SUB>=y(k)—y<SUB>E</SUB>(k)。间接适应控制训练结构如图2—11所示。</P>
      <P align=center><IMG height=270 src="10.files/5.2.ht11.gif" width=572 
      border=0></P>
      <P align=center>图2-11&nbsp; 间接适应控制训练结构</P></TD></TR>
  <TR>
    <TD width="100%" height=1521>
      <P>在训练时,偏差函数J对NC输出u的导数<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>=-aJ/au,它的算术符号足以指示出J的梯度方向。 
      </P>
      <P>在不少实际情况中,式(2.31)中的导数</P>
      <P><IMG height=45 src="10.files/5.2.ht12.gif" width=55 border=0></P>
      <P>可以容易地用导数的符号,即+1或-1取代;不过,这不带有普遍性。所以,通常需要求导数d<SUB>y</SUB>(k)/d<SUB>u</SUB>(k)的结果;但是,d<SUB>y</SUB>(k)/d<SUB>u</SUB>(k)的结果是相当难求取的。</P>
      <P>在间接适应控制中,对象仿真器PE用于计算偏差函数J对NC输出u的导数6。由于PE是一个多层前向网络。采用BP算法可以容易计算出<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>。这就克服了d<SUB>y</SUB>(k)/d<SUB>u</SUB>(k)在前述的求取困难的问题。</P>
      <P>图2—11所示的结构还有一个特别的优点,这就是当对象的逆模型不能求取时,这种结构特别有用。为了改进控制器的性能,NC和PE可以认为是m维输入单输出的多层神经网络的可变部件和固定部件。对于PE,可以采用对象足够丰富的有关数据进行前期的脱机训练;然后,再把NC、PE进行联机训练。在某种意义上讲,既是执行系统对象辨识的;所以.对于状态变化迅速的系统,考虑到鲁捧性,修改PE的频繁度比修改Nc的频繁度高是合理的。</P>
      <P>2.2.3联机学习方法及算法</P>
      <P>神经网络控制需要良好的控制器,而神经网络控制器的训练收敛速度和时间相当长,这使到在实际控制中执行联机学习几乎不可能。为了使神经网络控制器可以进行实时学习,人们对提高训练收敛速度进行了不少研究。这些研究的主要思想有如下几种:</P>
      <P>1.开发有效的BP算法。</P>
      <P>2.在多层神经网络结构中,对象结构知识具体化。</P>
      <P>3.和控制结构相关的神经网络混合系统。</P>
      <P>4.预学习和有效的初始化过程。</P>
      <P>在控制系统中,如果提高采样频率,显然,每个采样周期Ts执行一次学习,就会减少学习时间。但是,实际控制系统中,往往对采样周期Ts有一定的要求。比如温度,化学反应控制过程等就要求采样周期Ts较长。同时,高速采样也会要求系统有相应的复杂控制结构;从而使代价提高。</P>
      <P>如果在不改变采样频率的条件下提高学习频率;很明显会减少学习时间。这样在联机中学习就成为可能;神经网络控制实时学习就可以实现。</P>
      <P>为了实现实时学习,考虑学习周期TL,由于学习周期TL只是由计算机运算时间决定,所以,一般学习周期TL比采样周期Ts要小得多。显然,只要在一个采样周期Ts中执行多次学习周期TL会大大加快学习过程。</P>
      <P>一、对象仿真器PE训练学习</P>
      <P>假定在k+1时刻对象的输出为y(k+1),而对象先前的p-1+t个输出值存贮在存贮器中,即有y(k),y(k-1),...,y(k-p+1-t)</P>
      <P>同时,对象的输人为u(k+1),而先前的q+t个输入值存在存贮器中,即有</P>
      <P>u(k),u(k-1),...,u(k-q-t)</P>
      <P>很明显可以用X<SUB>E</SUB>(k-i),y(k+1-i)数据对对系统的PE进行训练。当取i=0,1,2,...,t-1时,显然有t对X<SUB>E</SUB>(k-i),y(k+1-i)。并且注意,这是在采样序号k+1时,也即k+1为定值时对PE执行训练。k+1时刻第i个m维输人学习向量为</P>
      <P>X<SUB>E.i</SUB>(k-i)=[y(k-i),y(k-1-i),...,y(k-p+1-i),u(k-i),u(k-1-i),...,u(k-q-i)]<SUP>T</SUP>&nbsp;&nbsp;&nbsp; 
      (2.34)</P>
      <P>则在PE的输出产生输出结果y<SUB>E</SUB>(k+1-i)</P>
      <P>y<SUB>E.i</SUB>(k+1-i)=<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><SUB>E</SUB>[X<SUB>E.i</SUB>(k-1)]&nbsp;&nbsp;&nbsp; 
      (2.35)</P>
      <P>考虑偏差函数J<SUB>E</SUB></P>
      <P><IMG height=42 src="10.files/5.2.ht13.gif" width=352 border=0></P>
      <P>其中:1<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">≥λ<SUB>0</SUB>≥λ<SUB>1</SUB>≥...≥λ<SUB>t-1</SUB></SPAN><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>个权系数序列,它们的作用用于强调最新的数据,减弱旧数据的影响。</P>
      <P>对象仿真器PE训练的结果应使偏差函数J<SUB>E</SUB>最小。</P>
      <P>对象仿真器PE执行训练,为了方便说明训练算法起见,考虑在采样序号为k的时刻的m维输入学习向量X<SUB>Ei</SUB>(k-1-i),根据式(2.34)有</P>
      <P>X<SUB>E.i</SUB>(k-1-i)=[y(k-1-i),...,y(k-p-i),u(k-1-i),...,u(k-q-1-i)]<SUP>T</SUP>&nbsp;&nbsp;&nbsp; 
      (2.36)</P>
      <P>在学习中,BP算法以下式表示</P>
      <P>BP(<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>,X,y,y<SUB>E,i</SUB>)</P>
      <P>其中:BP为四算法名称,为映射,x为输入向量,y为期望输出,yE,i为实际输出。</P>
      <P>PF训练的算法过程如下:</P>
      <P>Step1:READ y(k)</P>
      <P>step2:{仿真器PE训练 }</P>
      <P>i——t-1</P>
      <P>REPEAT</P>
      <P>y<SUB>E</SUB><SUB>,i</SUB>——E(X<SUB>E,i</SUB>)</P>
      <P>BP(<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><SUB>E</SUB>,X<SUB>E,i</SUB>,<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><SUB>i</SUB>y(k-i),y<SUB>E,i</SUB>)</P>
      <P>i——i-1</P>
      <P>UNTIL(i&lt;0)</P>
      <P>Step 3:{产生控制信号u}</P>
      <P>X<SUB>c</SUB>——[r(k+1),y(k),...,y(k-p+1),u(k-1),...,u(k-q)]<SUP>T</SUP> 
      or [r(k+1),r(k),...,r(k-p+1),u(k-1),...,u(k-q)]<SUP>T</SUP></P>
      <P>u(k)——<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><SUB>c</SUB>(X<SUB>c</SUB>)</P>
      <P>Step 4:以u(k)去控制对象,并持续T<SUB>s</SUB>时间。</P>
      <P>Step 5:{数据移动}</P>
      <P>i——t-1</P>
      <P>REPEAT</P>
      <P>X<SUB>E,i</SUB>=X<SUB>E,i-1</SUB></P>
      <P>i——i-1</P>
      <P>UNTIL(i=0);</P>
      <P>Step 6:{产生最新数据向量}</P>
      <P>X<SUB>E,0</SUB>——[y(k),y(k-1),...,y(k-p+1),u(k),...,u(k-q)]<SUP>T</SUP></P>
      <P>Step 7:k——k+1</P>
      <P>Step 8:转向Step 1</P>
      <P>对象仿真器PE训练例子:设k=10,则采样结果有y(10),并且取p=3,q=2,t=3.则在存贮器中存放有(p—1+t)=5个先前输出值y1即</P>
      <P>y(9),y(8),……,y(5)</P>
      <P>同时,有(q+t)=5个先前的控制值u,即</P>
      <P>u(9),u(8),…,u(5)</P>
      <P>则PE的输入学习向量为:</P>
      <P>X<SUB>E,0</SUB>(9)=[y(9),y(8),y(7),u(9),u(8),u(7)]<SUP>T</SUP></P>
      <P>X<SUB>E,1</SUB>(8);[y(8),y(7),y(6),u(8),u(7),u(6)]<SUP>T</SUP></P>
      <P>X<SUB>E,2</SUB>(7)=[y(7),y(6),y(5),u(7),u(6),u(5)]<SUP>T</SUP></P>
      <P>用PE<SUP>k·i</SUP>表示取在采样时刻k时,第i次学习后的状态;用<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><SUB>E</SUB><SUP>k.i</SUP>表示PE<SUP>k·i</SUP>所执行的映射.则有<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">ψ<SUP>10.0</SUP>,ψ<SUP>10.1</SUP>,ψ<SUP>10.2</SUP></SPAN>。</P>
      <P align=center><IMG height=293 src="10.files/5.2.ht14.gif" width=584 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -