基于Tensorflow的LSTM时序动作网络

        这边文章利用LSTM网络实现了无人机机动动作数据的时序网络:基于实飞SBG及X-Plane采集得到的数据,利用谷歌开发的Tensorflow架构,设计实现了此功能。

        在设计机动指令生成器时,需要对机动动作选取合理的模型进行描述,其中数据采集技术是记录机动动作的关键。因此需要针对选取的机动动作进行实飞及仿真数据采集,对采集的数据进行分析及处理,在此基础上设计LSTM 时序动作网络。

        在实际的飞行中,不可避免会出现扰动,风场干扰、传感器噪声等都会对飞行数据的采集造成一定的影响。在机动动作的实现过程中,上一段时飞行器的状态不同,飞行器进入机动动作时的状态不同,飞行器下一个时刻应当改变的状态也不相同,这些因素都会影响整个机动动作的完成。另一方面大数据和深度学习在近些年飞速发展,深度的神经网络可以获得深层次的特征表示,免除人工选取特征的繁复冗杂和高维度数据的维度灾难问题,对于存在高维数据的控制系统,引入深度学习具有一定的意义。针对这些问题,提出用LSTM 网络训练机动数据,得出LSTM时序动作网络。

        循环神经网络(recurrent neural network,RNN)源自于1982 年由SarathaSathasivam 提出的霍普菲尔德网络。循环神经网络的主要用途是处理和预测序列数据。在复杂的场景中,有用信息的间隔有大有小、长短不一,循环神经网络的性能也会受到限制。
        LSTM 网络(long short-term memory,LSTM)的设计就是为了解决这个问题,在很多的任务上,采用LSTM 结构的循环神经网络比标准的循环神经网络表现更好。LSTM 结构是一种拥有三个“门”结构的特殊循环体结构。如下图所示,LSTM 网络具有输入门、遗忘门和输出门,门控单元的设计使LSTM 记忆模块可以存储和访问很久以前的信息,从而减轻梯度消失的问题。

        Tensorfolw 是由Jeff Dean 领头的谷歌大脑团队基于谷歌内部第一代深度学习系统DistBelief 改进而来的通用计算架构,于2015 年11 月9 日正式开源。在TensorFlow 中,LSTM 结构可以被很简单地实现。

        这里选取筋斗动作:针对三轴姿态角(俯仰、滚转、偏航)设计了三输入三输出网络,隐藏层设计为128 层。对某段飞行数据进行训练和分析,结果如下:

筋斗动作的LSTM网络效果图

        可以看出,LSTM网络可以较好的实现对机动动作姿态值的估计和预测。图中黑线为真实值(观测值),绿线为估计值,红线为预测值。实际飞行当中,飞行数据的采集精度会反过来影响LSTM网络的训练效果,因此测试扰动下LSTM网络预测效果更具有实际意义。为了测试LSTM网络对扰动的影响,在飞行数据中加入 的随机扰动。如图所示,LSTM网络可以相对平滑的估计预测出各个姿态角的值。可以看出,LSTM网络可以较好的实现对机动动作姿态值的估计和预测。图中黑线为真实值(观测值),绿线为估计值,红线为预测值。实际飞行当中,飞行数据的采集精度会反过来影响LSTM网络的训练效果,因此测试扰动下LSTM网络预测效果更具有实际意义。为了测试LSTM网络对扰动的影响,在飞行数据中加入 的随机扰动。如图所示,LSTM网络可以相对平滑的估计预测出各个姿态角的值。

±5%的随机扰动下的LSTM网络效果图

        在第三次筋斗动作中加入较大干扰,飞行器的俯仰角出现了剧烈的抖动,但LSTM网络依旧得出了较好的估计值和预测值,可见LSTM网络可以较好的应对短时间剧烈飞行扰动对数据采集带来的不精确问题。

局部扰动下的LSTM网络效果图

    相关代码已提交至Github:https://github.com/nudt-new/Time-Series-Regressor

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛仔很忙^

雪中送炭者,定当铭记在心!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值