我正在尝试使用循环神经网络为惯性测量单元执行传感器融合。IMU 通常与卡尔曼滤波器 (KF) 结合使用,该滤波器执行加速度计和陀螺仪数据的融合以及“平滑”,从而产生经过过滤的最终方向输出(如果需要,还可以输出位置)。出于好奇,我试图使用包含 LSTM 单元的神经网络来复制此功能:即,让网络计算卡尔曼滤波器使用训练数据估计的隐藏表示。为了让网络复制卡尔曼滤波器融合算法的工作,我的第一步是在原始传感器数据的输入和来自 KF 的输出上对其进行训练。
该网络接受6x10 + 6 = 66输入(来自陀螺仪的 3 个速度,来自当前时刻的加速度计的 3 个加速度以及来自过去 10 个时刻的加速度)并旨在提供 4 个输出(方向的四元数表示)。网络结构是
Input -> LSTM units (128) -> Dense layer (128) -> Dense layer (64) -> Output(4)
我的初始训练数据包括输入中来自陀螺仪和加速度计的噪声传感器数据以及作为输出的平滑 KF 方向数据,我期望网络从中尝试学习传感器和方向之间的非线性映射。然而,尽管我正在训练的输出是干净的,但网络的预测中有很多噪音,即使是在训练数据上也是如此。例如:
卡尔曼滤波器输出(用作训练数据的输出):
来自神经网络的相应预测:
我在预测中看到的噪声并非不自然,因为输入传感器数据也很嘈杂,输出中的噪声量与输入的噪声量相对应:但期望神经网络“学习平滑以及融合?有什么方法可以降低噪音并使网络的性能更接近 KF 的方式吗?

