本发明属于信号处理和系统辨识技术领域,具体涉及一种基于卷积神经网络和数据驱动的非线性动态系统辨识方法。
背景技术:
机器学习和回归技术为发掘数据集和学习潜在行为提供有力的数学工具,掀起了对复杂数据的分析和理解的研究热潮。针对非线性动态系统辨识问题,如何在不需要先验信息的情况下直接从测量数据实现非线性动态系统的辨识成为关键所在。在解决系统中潜在的非线性动力特性探寻问题上,国内外专家已经进行了将近30年的研究。回归分析在数据拟合上具有优势,并广泛的应用于从实验数据发现物理信息,如最小二乘拟合和符号回归等统计分析方法。传统基于回归分析的方法在揭示静态数据的统计关系上极为有效,而在从大量数据提取深层隐含的动态过程的能力上应用有一定局限。卷积神经网络具有强大的大量数据深层信息挖掘能力,广泛的使用在多模态的分类问题上。区别于传统应用,本发明将卷积神经网络应用于深度回归,提出基于卷积神经网络和数据驱动的系统辨识方法,在不需要先验信息的情况下直接从测量数据实现非线性动态系统的辨识。
技术实现要素:
针对上述现有技术存在的问题,本发明的目的在于提供一种基于卷积神经网络和数据驱动的非线性动态系统辨识方法。
为了解决上述存在的技术问题实现发明目的,本发明是通过以下技术方案实现的:
一种基于卷积神经网络和数据驱动的非线性动态系统辨识方法,该方法针对非线性动态系统辨识问题,在不需要先验信息的情况直接从测量数据实现非线性动态系统的辨识;所述方法内容包括以下步骤:
步骤1:获取非线性动态系统的数据及预处理;以lorenz非线性系统生成观测数据,如下式:
由(1)式可以得到lorenz系统中各个状态量x,y,z及各个状态量的微分值x’,y’,z’,并对状态量及其微分值进行归一化处理得到x=(xnorm,ynorm,znorm)的微分值x’=(xnorm’,ynorm’,znorm’);
步骤2:由归一化处理后的状态量x中各列构造候选非线性状态项,以各个候选非线性状态项为列构建非线性状态函数字典θ(x),如下公式:
其中,
步骤3:将非线性状态函数字典θ(x)进行张量化扩展,即将大小为m×144的非线性状态函数字典θ(x)转化为m×12×12的张量并实现方阵化,将方阵化后的非线性状态函数张量进行进一步扩展形成大小为m×24×24的张量;
步骤4:在大小为m×24×24的张量中任意取一半,得到大小为
步骤5:将剩下一半输入数据作为测试数据输入到卷积神经网络中,比较测试数据的卷积神经网络输出的微分值与实际期望输出的微分值,实现非线性动态系统的辨识。
由于采用上述技术方案,本发明与现有技术相比具有这样的有益效果:
本发明针对非线性动态系统辨识问题,提出基于卷积神经网络和数据驱动的系统辨识方法,在不需要先验信息的情况直接从测量数据实现非线性动态系统的辨识。
附图说明
图1是非线性动态系统lorenz及lorenz吸引子;
图2是非线性状态函数字典张量化扩展示意图;
图3是回归分析卷积神经网络结构图;
图4是输入层到卷积层c1计算过程示意图;
图5是卷积层c2到降采样层s2降采样计算过程示意图;
图6是降采样层s2到全连接层f及输出计算过程示意图;
图7是训练数据的输出回归分析结果;
图8是测试数据的输出回归分析结果;
图9是迭代次数与误差曲线;
图10是本发明方法的总体流程图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述:
本发明的一种基于卷积神经网络和数据驱动的非线性动态系统辨识方法,其总体的流程图如图10所示,该方法内容包括以下步骤:
步骤1、非线性动态系统的数据获取及预处理;
步骤1-1、以lorenz非线性动态系统生成观测数据,如下式所示,
由上式(3)可以得到lorenz系统中各个状态量x,y,z及各个状态量的微分值x’,y’,z’即lorenz吸引子如图1所示;在已知信息更少的情况下,如状态量x,y,z可以测量得到,则可以近似估计出各个状态量的微分值,反之亦然;
步骤1-2、对状态量及其微分值进行归一化处理得到x=(xnorm,ynorm,znorm)及其微分值x’=(xnorm’,ynorm’,znorm’);
步骤2、由归一化处理后的状态量x中各列构造候选非线性状态项,以各个候选非线性状态项为列构建非线性状态函数字典θ(x),如下公式:
其中,
步骤3、将非线性状态函数字典θ(x)进行张量化扩展,即将大小为m×144的非线性状态函数字典θ(x),如图2(a)所示,转化为大小为m×12×12的张量,实现截面矩阵方阵化,如图2(b)所示,将方阵化后的非线性状态函数张量进行进一步扩展如图2(c)所示形成大小为m×24×24的张量;
步骤4、在大小为m×24×24的张量中任意取一半,得到大小为
首先初始化卷积神经网络,刚开始的神经网络参数(包括卷积核、偏置项等)并没有确定的值,需要随机赋值,得到一个初始的卷积神经网络后才可以计算得到一个实际输出。给定卷积神经网络的输入和期望输出即张量数据和其所对应的微分值后,对卷积神经网络进行训练,带入到卷积神经网络中进行逐层运算。本发明方法中所构建的卷积神经网络结构如图3所示。其中第一层为输入层,输入矩阵通过和两个(个数可调)可训练的滤波器(即卷积计算),卷积得到第二层c1层(卷积层),c1层经过降采样得到第三层s1层(降采样层),以同样的方法将s1层作为输入得到第四层c2层、第五层s2层,最终,这些数值重新排列连接成一个向量输入到传统的神经网络中得到第六层输出层(全连接层)。
卷积过程以输入层到卷积层c1的过程为例,如图4所示,输入的矩阵经过卷积以后得到的值再加上一个偏置项,通过sigmoid函数得到c1层。类似的,降采样层s1到卷积层c2的计算也是经过5×5卷积核加上偏置项再通过sigmoid函数计算得到。
降采样过程以卷积层c2(6×6)到降采样层s2(3×3)的过程为例,如图5所示,c2层的每相邻4个元素值求和后乘权值,加偏置项,将得到的数值带入到sigmoid函数中最终得到降采样层。类似的计算过程可以实现卷积层c1到降采样层s1的计算。
由降采样层s2到全连接层f再到输出的过程如图6所示,从降采样层两个3×3的矩阵展开成一个18×1的全连接矩阵,全连接矩阵乘以权重与偏置项求和得到3×1的输出。
步骤5、将剩下一半输入数据作为测试数据输入到卷积神经网络中,比较测试数据的卷积神经网络输出的微分值与实际期望输出的微分值,给出非线性动态系统辨识结果。训练数据辨识出的结果如图7所示,测试数据辨识出的结果如图8所示。图9是在训练时的迭代次数与误差曲线,横轴表示修正cnn参数的迭代次数,纵轴表示期望输出微分值与实际输出微分值的误差,从图9中可以看到通过迭代不断修正参数误差也在减少,当误差参数在迭代过程变化小于阈值(0.001)时认为获得了较为理想的输出。
本发明方法针对非线性动态系统辨识问题,提出基于卷积神经网络和数据驱动的系统辨识方法,在不需要先验信息的情况直接从测量数据实现非线性动态系统的辨识。
上面对本发明的实施方式做了详细说明。但是本发明并不限于上述实施方式,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。