Answers:
系统识别是从观测数据构建动力学模型的科学。主要有两种方法:预测错误识别(PEI)和子空间识别(SID)。两者都提供了所谓的参数模型,即固定结构的模型。通常情况下,用户选择底层系统的结构(特别是在PEI方法中)或至少选择系统的顺序(在两种方法中)。即使不是必需的,因为它经常用于控制目的,所以寻求低阶系统(也就是说,基系数的数量相对较小),因此我们必须使其尽可能简单以避免给定一些输入,该模型可用于对系统的未来行为进行预测。
另一方面,机器学习(ML)有两个主要分支,分类和回归算法。后者也用于预测目的。机器学习中最著名的两种方法是支持向量机(SVM)和高斯过程(GP)。与系统识别技术的主要区别在于ML技术正在提供非参数模型。后者意味着根据用于模型的“训练”(学习,识别)的数据点给出对新输入的预测。因此,如果我们使用N = 1000个数据点进行训练,则预测将表示为这些数据点的函数。ML方法更灵活,因为它们不需要用户选择任何结构,但是它们面临其他限制(例如,
直到最近,机器学习和系统识别技术都是独立发展的。但是在随后的几年中,人们为建立共同点付出了巨大的努力(例如,参见Ljung的论文“系统识别的四次相遇”)
上下文:SysID和控制进入ML的人员。
我认为user110686的答案可以很好地解释一些差异。SysID 必然涉及输入/输出数据的动态模型,而ML涵盖了更广泛的问题。但是我看到的最大区别在于(a)内存(参数数量);(b)最终使用“学习的”模型。系统识别在很大程度上是一种考虑频域表示,时频分析等的信号处理方法。一些ML人士将其称为“特征工程”。
(a)记忆:SysID在ML成为研究领域之前很早就变得很重要。因此,统计和信号处理是理论基础的主要基础,而计算却很恐慌。因此,人们使用很少参数的非常简单的模型类别(Bias-Variance权衡)。即使人们清楚地知道问题是非线性的,我们谈论的最多是30-40个参数,大多数是线性模型。但是,现在计算非常便宜,但是SysID尚未从其外壳中脱颖而出。人们应该开始意识到我们现在拥有更好的传感器,可以使用非常丰富的模型集轻松估算出数千个参数。一些研究人员尝试将神经网络用于SysID,但由于理论上的保证并不多,许多研究人员似乎不愿将其作为“主流”。
(b)最终使用学习的模型:这是SysID非常正确的一件事,但是许多ML算法无法捕获。重要的是要认识到,对于目标应用程序,您必须构建可有效用于在线优化的模型。这些模型将用于传播所做出的任何控制决策,并且在将其设置为最佳控制问题时,这些模型将成为约束条件。因此,当使用极其复杂的模型结构时,它会使在线优化变得更加困难。还要注意,这些在线决策是在几秒钟或更短的时间内做出的。提出的另一种选择是以非政策方式直接学习价值函数,以实现最佳控制。这基本上是强化学习,我认为SysID和RL之间具有良好的协同作用。
我想补充一下,还有一些非参数方法可以识别系统。有关详细信息,请参见MATLAB的SysId工具箱或Ljung的书。通常使用非参数方法来首先确定模型类别,以用于以后的参数研究。同样,将估计问题与控制问题分开(考虑OODA循环)也很重要。在识别系统时,通常的目标只是简单地对系统进行特征描述,而无需任何稍后将要设计的特定类型的控制输入(但这并不总是可能的)。最后,我认为认识到系统从数学的角度来看是一个将功能空间映射到功能空间的运算符很有帮助。因此,微分方程通常是所识别的事物的种类,并且这些函数映射到函数。SysID中的功能通常是时间的连续功能,又称连续时间信号。(但是它们也可以是离散时间。)因此,SysID不仅尝试将实数(或向量)映射为实数(或向量),还尝试将实数(或向量)映射为实数(或向量)。它试图找出将输入信号映射到输出信号的最佳算子(LTI,LTV,非线性等)。
机器学习:静态模型和动态模型的建模,系统识别:关注动态模型或动态过程