我正在研究一个连续状态/连续动作控制器。它应该通过发出正确的副翼指令来控制飞机的某个侧倾角(在)。
为此,我使用了一个神经网络和 DDPG 算法,经过大约 20 分钟的训练,它显示出有希望的结果。
我将模型的呈现状态剥离为仅滚动角和角速度,这样神经网络就不会被状态输入淹没。
所以它是一个 2 输入/1 输出模型来执行控制任务。
在测试运行中,它看起来大多不错,但有时,控制器开始抖动,即它输出闪烁的命令,就像在一个非常快速的 bangbang-controlm 中导致电梯快速移动一样。
即使这种行为保持了所需的目标值,这种行为也是绝对不可取的。相反,它应该保持输出平滑。到目前为止,我无法检测到任何启动此行为的特殊干扰。然而它却是出乎意料的。
是否有人对如何结合某些元素(可能是培训期间的奖励塑造)有想法或提示(可能是论文参考)以避免这种行为?如何避免执行器的快速运动而有利于平滑运动?
我试图在呈现状态中包含最后一个动作,并在我的奖励中添加一个惩罚组件,但这并没有真正帮助。所以很明显,我做错了什么。