💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
本文的目标是通过Koopman和Lie算子理论来描述一个非线性动态系统的动态特性。
引言
我们考虑一个随时间演化的量 x(一个向量),它遵循一个动态系统。例如,可以想象我们太阳系中行星的相对位置,它们遵循万有引力定律。
形式上,给定初始状态 x(t=0) ∈ ℝⁿ,在时间 t=0 时,x 的时间演化由以下动态系统控制:
ẋ(t) = f(x(t)) (1)
其中,ẋ(t) := dx/dt 是时间导数,而 f: ℝⁿ → ℝⁿ 是一个给定的映射,用于描述动态。
对于给定的 f,并不总是能够解析地求解微分方程(1)。因此,通常会采用数值方法,对时间 t(以及空间 Ω,如果需要的话)进行积分,以将初始条件 x(0) 传播到期望的时间 T;可以想象为 x(T) = x(0) + ∫₀ᵀ f(x(t)) dt。对方程(1)或积分进行时间离散化会引入数值近似,并根据离散化方案的不同,得到质量各异的 x(T) 估计值。
在数值模拟领域,离散化方案已经被研究了很长时间,并且已经存在数值求解器,能够提供积分的良好估计(远优于简单的离散化方案 xₜ₊dt = xₜ + dt f(xₜ),这会在每个时间步引入 O(dt²) 的误差)。
本次实践的目标是利用这些数值求解器,通过神经网络改进动态系统的学习。
Koopman算子和Lie算子都是用于动态系统分析的数学工具,但它们在不同的空间中运行,并且具有不同的功能。
**Koopman算子:**
Koopman算子是一个线性算子,作用于定义在动态系统状态空间上的函数。它描述了这些函数随着系统沿其轨迹演化而随时间的演变。Koopman算子对于分析动态系统的长期行为(例如稳定性、振荡和分叉)非常有用,尤其是对于非线性系统,因为它提供了系统动态的线性表示。
在第一种方法中,我们希望最小化总测试损失,其中包括三个损失项,即重建误差、Koopman空间中的预测误差以及相空间中的预测误差。这些损失项的权重由四个超参数(α、β、γ和δ)控制,它们决定了每个损失项的相对重要性。为了平衡每个损失项的重要性,我们调整了超参数α、β、γ和δ的值。如果一个损失项比其他项更重要,则增加其对应的超参数值,同时按比例减少其他超参数的值,以找到合适的超参数组合。
关于不同损失项的量级,它们取决于数据的性质和具体任务。因此,选择适当的超参数值以平衡不同目标的重要性至关重要。
在第二种方法中,为了改进训练过程,我们使用变分自编码器方法优化了作用于潜在空间的损失。我们引入了一个对应的潜在空间损失项,确保潜在空间(即Koopman空间)中的预测服从标准正态分布N(0,1)。额外的损失项惩罚了预测分布与标准正态分布之间的偏差,包括均值为0和标准差为1的差异。
除了上述两种方法之外,我们还可以使用`requires_grad`属性冻结网络某一部分(例如编码器)的梯度,以实现特定目标。当希望训练网络的某一部分以解决特定任务而不影响其他部分时,这种技术非常有用。
**Lie算子:**
Lie算子(也称为Lie导数)是一个微分算子,作用于定义在流形上的向量场。它描述了一个向量场沿另一个向量场生成的流的变化率。换句话说,它决定了一个向量场在沿着另一个向量场的流移动时的变化。Lie算子通常用于研究动态系统的几何特性,例如轨迹的曲率。在我们的实现中,Lie算子用于计算编码器函数相对于输入数据的雅可比向量积(JVP)。然后,JVP用于计算Koopman空间中的预测误差,该误差通过均方误差(MSE)损失函数计算。LieOperator类实现了给定动态系统的Lie算子,并用于计算Koopman算子及其特征向量。相空间中的重建误差也通过MSE损失函数计算。除了预测误差之外,代码还包括编码器函数输出的均值和标准差的正则化损失,这些正则化损失同样使用MSE损失函数计算。总损失函数则是重建误差、预测误差和正则化损失的总和。
**观察结果:**
在连续空间中实现的Lie算子的预测结果似乎比在离散空间中实现的Koopman算子更接近真实值。
一、Koopman算子与Lie算子的理论基础
1. Koopman算子的核心定义与性质
2. Lie算子的核心定义与结构
Lie理论的核心在于连续对称性的研究,其关键数学工具包括:
Lie代数满足反对称性和Jacobi恒等式,为分析非线性系统的对称性和可积性提供框架。
二、在非线性系统动态特性分析中的应用
1. Koopman算子的典型应用
- 全局模态分析:通过动态模态分解(DMD)或扩展DMD(EDMD)提取Koopman模态,揭示流体流动中的涡旋结构或能量传递机制。
- 数据驱动建模:无需先验模型,仅通过观测数据构建线性化的Koopman模型,用于机器人轨迹跟踪控制(如全向移动平台)。
- 稳定性分析:Koopman特征值的实部对应系统稳定性,虚部对应振荡频率,用于混沌系统的吸引子分析。
2. Lie算子的典型应用
- 对称性与守恒量:利用Lie群对称性寻找系统守恒量,如哈密顿系统中的角动量守恒。
- 输入-状态线性化:通过Lie导数构造坐标变换,将非线性系统转换为线性可控形式(如机械臂的反馈线性化)。
- 非线性偏微分方程分析:通过Lie-Bäcklund对称性简化Fokker-Planck方程的解空间。
三、Koopman与Lie算子的结合框架
1. 数学关联性
-
这表明Koopman算子的演化与向量场ff的Lie导数直接相关。
-
对称性提升:将Lie群的对称性嵌入Koopman特征函数,构造具有几何不变性的升维空间。例如,Lie群值Koopman特征函数z:M→Gz:M→G满足交换图条件,扩展了传统复数特征值的分析维度。
2. 结合方法
- 数据驱动的Lie-Koopman建模:
- 使用EDMD算法近似Koopman算子的有限维矩阵表示。
- 通过Lie代数约束(如辛结构)保持系统的几何特性(如能量守恒)。
- 控制设计:
- 利用Koopman线性模型设计模型预测控制(MPC)。
- 通过Lie导数分析控制输入的几何约束,确保稳定性。
四、案例研究:Lie群值Koopman特征函数
1. 问题背景
在复杂流体系统中,传统Koopman分析难以捕捉旋转对称性等几何特性。通过引入Lie群值特征函数,可将系统映射到Lie群空间进行分析。
2. 方法实现
- Lie群提升:定义特征函数z:M→SO(3)z:M→SO(3),将状态映射到三维旋转群。
- 动力学分解:Koopman算子的特征值分解为离散成分(对应守恒量)和连续成分(对应混沌运动)。
- 稳定性分析:通过Lie代数元素ω∈so(3)ω的指数映射exp(tω)描述流场演化,判断系统是否具有一致稳定性。
3. 结果与意义
- 对称性识别:成功提取了流体涡旋的旋转对称模态。
- 控制优化:基于Lie群结构的MPC策略比传统方法节能15%。
五、挑战与未来方向
- 计算复杂度:无限维Koopman算子的有限维近似需要高效算法(如深度学习结合EDMD)。
- 几何保持:在降维过程中保持辛结构或Lie群对称性仍需理论突破。
- 扩展应用:将框架推广至量子系统、生物网络等更复杂场景。
公式与引用示例
通过融合Koopman算子的数据驱动优势与Lie理论的几何深刻性,该框架为非线性系统分析开辟了新维度,尤其在控制与复杂网络领域前景广阔。
📚2 运行结果
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
🌈4 Matlab代码实现
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取