2. 系统建模基础
做策略训练,第一步不是调算法,而是搞清楚你要控制的对象长什么样。
我见过不少新手,上来就扔一个神经网络进去跑强化学习,结果连系统的基本特性都没摸清楚。说白了,你连对手的底牌都没看,怎么出牌?
这一节,我们就聊聊系统建模的三种基本思路——白箱、灰箱、黑箱。我个人习惯把这三种模型比作「全透明玻璃房」、「半透明毛玻璃」和「全封闭黑匣子」。你想想看,哪种更适合你的场景?
2.1 白箱模型:一切尽在掌握
白箱模型,就是你对系统的物理规律了如指掌。
比如一个直流电机,你知道它的电压、电流、转矩、转速之间满足什么微分方程。你可以用牛顿定律、基尔霍夫定律,把整个系统用数学公式写出来。
我在项目中遇到过这样一个案例:做四旋翼无人机的姿态控制。旋翼的升力公式、陀螺效应、空气阻力,这些物理规律都是已知的。我们直接建立了完整的动力学模型,然后基于这个模型设计PID控制器。效果非常好,因为模型足够精确。
白箱模型的优缺点:
- 优点: 可解释性强,参数调整有方向,泛化能力好。
- 缺点: 建模成本高,复杂系统很难完全用物理公式描述。
2.2 黑箱模型:我不关心你内部怎么转
黑箱模型正好相反。你只关心输入和输出之间的关系,完全不理会内部机理。
说白了,就是「你给什么输入,我就看什么输出」。至于里面是齿轮传动还是电磁感应,我不在乎。
神经网络就是最典型的黑箱模型。你给它一堆历史数据,它自己学习映射关系。我在做工业过程控制时,遇到过一些老旧的化工反应釜,内部化学反应极其复杂,根本没法用公式描述。这时候,黑箱模型就是唯一的选择。
黑箱模型的优缺点:
- 优点: 建模速度快,不需要深入理解系统机理,适合复杂非线性系统。
- 缺点: 数据需求量大,泛化能力差,容易过拟合,可解释性几乎为零。
2.3 灰箱模型:取个折中,刚刚好
灰箱模型,就是你知道系统的大致结构,但具体参数不确定。
比如你知道一个弹簧阻尼系统满足二阶微分方程,但阻尼系数和刚度系数是多少?不知道。这时候你只需要用数据去拟合这几个参数就行。
我个人最喜欢灰箱模型。为什么?因为它结合了白箱的可解释性和黑箱的灵活性。你想想看,你不需要完全搞懂所有物理细节,但你又保留了模型的结构信息,这在实际工程中非常实用。
灰箱模型的优缺点:
- 优点: 数据需求比黑箱少,泛化能力比黑箱强,可解释性适中。
- 缺点: 需要一定的先验知识,结构假设错误会导致模型偏差。
2.4 三种模型的对比与选择
为了让你一目了然,我整理了一个表格:
| 特性 | 白箱模型 | 灰箱模型 | 黑箱模型 |
|---|---|---|---|
| 先验知识需求 | 高 | 中 | 低 |
| 数据需求 | 低 | 中 | 高 |
| 可解释性 | 高 | 中 | 低 |
| 泛化能力 | 强 | 中 | 弱 |
| 建模成本 | 高 | 中 | 低 |
| 典型应用 | 电机、机械臂 | 化工过程、车辆动力学 | 图像识别、语音处理 |
怎么选?我一般遵循这个原则:
- 如果你对系统物理规律非常清楚,且模型简单——用白箱。
- 如果你完全不懂系统内部机理,但有大量数据——用黑箱。
- 如果你知道一些结构,但不确定具体参数——用灰箱。这是大多数工程场景的常态。
2.5 核心逻辑框架图
下面这张图,是我自己总结的模型选择决策流程,你可以参考:
2.6 实际工程中的选择策略
嗯,这里要注意一点:理论上的分类很清晰,但实际工程中往往是混合使用的。
我记得有一次做车辆动力学控制,轮胎的侧偏特性非常复杂。我用了白箱模型描述车体运动,用黑箱模型(一个小型神经网络)来拟合轮胎的非线性特性。这就是典型的灰箱思路——结构已知,局部用数据补全。
最后说一句:模型辨识不是一锤子买卖。你训练出来的策略,最终要在真实系统上跑。如果模型和真实系统差距太大,再好的算法也是白搭。所以,花时间把模型搞准,比调算法参数重要得多。
可可精品资料库