神经网络 非线性系统_神经网络智能控制论3(神经网络控制的学习机制)

efaefe4e4ec0fadd22e1dade4eca12fa.png

上一篇文章讲述了非线性动态系统的神经网络辨识具体方式,传送门如下:

酷酷的橙007:神经网络智能控制论2(非线性动态系统的神经网络辨识)​zhuanlan.zhihu.com
defe96d673a682a35cef89e4923c4bc7.png

今天重点讲讲神经网络在控制过程中的学习机制,也就是说网络连接权值或网络结构是如何更新的。

第三节 神经网络控制的学习机制

神经网络辨识器的期望输出值和系统实际值应该是一致的,因此样本信息是已知的。

神经网络控制器的样本是系统的最佳控制量,是未知的。

神经网络的学习方法就是寻找一种有效的途径进行网络连接权阵或网络结构的修改,从而使得网络控制器输出的控制信号能够保证系统输出跟随系统的期望输出。

神经网络的学习方法大致上可分为两种:

  1. 监督式学习:有导师指导下的控制网络学习。包括离线学习法、在线学习法、反馈误差学习法、多网络学习法。
  2. 增强式学习:无导师指导下的学习模式。通过某一评价函数来对网络的权系数进行学习和更新,最终达到有效控制的目的。(这里不做过多介绍,其实这块跟目前一个很热的研究方向Reinforcement Learning,也就是强化学习有关)

接下来我们依次具体介绍上述几种方法:

离线学习法:

过程:通过一批样本输入输出数据建立一个系统的逆模型

学习目的:要求

equation?tex=u
equation?tex=u_%7Bc%7D的平方误差最小

缺点:不能保证系统最终性能

equation?tex=y_%7Bd%7D-y的平方误差极小(我感觉只要使用逆模型法,都免不了这个缺点。。。)

8f740379689fd3945c20eb499d361e21.png
离线学习法

在线学习法:

目的:找出一个最优控制量

equation?tex=u使得系统输出
equation?tex=y趋于期望输出
equation?tex=y_%7Bd%7D

缺点:一旦系统模型发生变化,且这种变化未知时,会导致控制轨迹偏离期望轨迹。

f133e69246efed2277ce21d7d321dbc1.png
在线学习法

权值调整应该使得

equation?tex=y_%7Bd%7D-y的误差减小的最快。

具体过程如下:

假设非线性系统模型为:

equation?tex=y%3Df%28u%2Ct%29%5C%5C

选用控制器网络为多层感知器神经元网络。取最优性能指标函数为:

equation?tex=E_%7Bp%7D%3D%5Cfrac%7B1%7D%7B2%7D%5By_%7Bd%7D%28k%29-y%28k%29%5D%5E%7B2%7D%5C%5C

则权阵的学习规则可以通过梯度寻优法来求得,即:

equation?tex=%5Cbegin%7Balign%7D+%5Comega_%7Bji%7D%28k%2B1%29%26%3D%5Comega_%7Bji%7D%28k%29-%5Ceta%5Cfrac%7B%5Cpartial+E_%7Bp%7D%7D%7B%5Cpartial+%5Comega_%7Bji%7D%7D%5C%5C+%26%3D%5Comega_%7Bji%7D%28k%29%2B%5Ceta%5By_%7Bd%7D%28k%29-y%28k%29%5D%5Cfrac%7B%5Cpartial+y_%7Bk%7D%7D%7B%5Cpartial+%5Comega_%7Bji%7D%7D%5C%5C+%26%3D%5Comega_%7Bji%7D%28k%29%2B%5Ceta%5By_%7Bd%7D%28k%29-y%28k%29%5D%5Cfrac%7B%5Cpartial+y_%7Bk%7D%7D%7B%5Cpartial+u_%7Bk%7D%7D%5Cfrac%7B%5Cpartial+u_%7Bk%7D%7D%7B%5Cpartial+w_%7Bji%7D%28k%29%7D%5C%5C+%5Cend%7Balign%7D%5C%5C

其中,求y对u的偏导在系统模型已知的情况下可以通过Jacobian矩阵求出,u对w的偏导利用广义Delta规则来计算。(上述数学推导其实看不懂也没关系,因为如果调用神经网络工具包的话,更新过程都是自己完成的,不需要手工推导)

反馈误差学习法:

控制系统的结构由前馈控制器和反馈控制器两部分组成。使神经网络作为一个小的增益环节,在控制器中增加一小部分,能够补足固定增益控制器在适应环境变化的时候出现的问题。

6ea1a50fb612c32d4b7a7ee9d5ec5eb9.png
反馈误差学习结构

缺点:直接使用系统的误差信号去更新控制网络的权矩阵,而忽略了非线性系统本身的动态性能,因此可能导致学习算法的发散现象。(不多说了,还是没把系统跟踪目标考虑进去...)

多网络学习法:

利用神经网络辨识的手段在线识别出未知系统的动态模型,并利用此模型进行神经网络控制的设计和学习,且在学习过程中进一步改善模型的精确性,达到高精度的控制目的。

两种方法:

  1. 建立未知非线性动态系统的前向模型

神经网络辨识器Ni描述非线性系统,将非线性系统输出与神经网络输出的误差喂给Ni,用于调整神经网络参数,训练好之后可以直接替换非线性系统。将非线性系统输出与设定值的误差喂给神经网络控制器Ne,用于调整Ne的网络参数。

24cf97639c15308a5f83afd6ddbef7ac.png
前向建模多网络控制结构图

2. 建立未知非线性动态系统的逆模型

对于上述前向模型可能存在用设定值yd和非线性系统输出y的误差更新网络参数可能不是特别方便,于是引入逆模型法,将非线性系统的输出作为神经网络Ni的输入,将非线性系统的输入作为神经网络Ni的输出。逆模型训练好之后可以用于替换掉非线性系统,同时将控制器Ne的输出与神经网络逆模型Ni的输出之差喂给神经网络控制器Ne,用于调整控制器网络Ne的参数。

0e9c63536a0380c443ec75f092404a94.png
逆模型建模的多网络控制结构图

关于神经网络控制的学习机制先介绍到这,理论性东西可能比较多哈,大家慢慢消化~下篇文章介绍重头戏——神经网络控制器的设计。


版权声明:本文为weixin_39964590原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。