热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

精彩碰撞!神经网络和传统滤波竟有这火花?

作者|凌霄出品|AI大本营(ID:rgznai100)惯性传感器在航空航天系统中主要用于姿态控制和导航。微机电系统的进步促进了微型惯性传感

作者 | 凌霄

出品 | AI大本营(ID:rgznai100)

惯性传感器在航空航天系统中主要用于姿态控制和导航。微机电系统的进步促进了微型惯性传感器的发展,该装置进入了许多新的应用领域,从无人驾驶飞机到人体运动跟踪。在捷联式 IMU 中,角速度、加速度、磁场矢量是在传感器固有的三维坐标系中测量的数据。估计传感器相对于坐标系的方向,速度或位置,需要对相应的传感数据进行捷联式积分和传感数据融合。在传感器融合的研究中,现已提出了许多非线性滤波器方法。但是,当涉及到大范围的不同的动态/静态旋转、平移运动时,由于需要根据情况调整加速度计和陀螺仪融合权重,可达到的精度受到限制。为克服这些局限性,该项研究利用人工神经网络对常规滤波算法的优化和探索。

常规滤波算法的不足

惯性姿态估计的现有解决方案通常基于模型和启发式参数化。研究人员会使用测量误差,三维旋转和重力加速度转换的数学模型,选择合理的协方差矩阵,融合权重或定义权重调整方式等参数。尽管在许多应用领域中使用这种解决方案已经获得了相当高的精度,但是众所周知,对于不同类型的运动和干扰,不同的参数化效果也不同。

姿态估计问题

对测量获取的四元数和预估的四元数之间进行误差计算

给定一个在空间中自由移动的,基于 MEMS 的 IMU 的三维加速度计和陀螺仪读数的采样序列,估算每个采样时刻 IMU 相对于参考坐标系的姿态。利用算法获取四元数估计值????̂(????),估计值与真实四元数q(t)之间应具有最小的累积姿态估计误差。

神经网络模型

A.具有一般最佳实践的神经网络结构

模型架构:模型体系结构由多层组成,这些多层可以通过多种方式连接,从而导致不同的特性。首先,必须选择一种用于对动态系统状态进行建模的方法,最常用的是递归神经网络(RNN)和时间卷积网络(TCN)。RNN 具有多种变体,其中一种是 LSTMs。在当前的工作中,研究人员使用两层 LSTM 模型,每层的隐藏大小为 200,最后一个线性层将隐藏的激活次数减少到四个,用以代表估计的姿态四元数的元素,并生成单位四元数。TCN 可用于对系统动力学建模,与 RNN 相比,TCN 的主要优势在于前馈性质,不依赖顺序,从而可以实现可并行性,可以在硬件上加速训练。在当前的工作中,研究人员使用 10 层 TCN,接收 1024 个样本,每层的隐藏大小为 200。下图显示了该工作中使用的 RNN,TCN 模型的结构。

为了进行训练,会从测量的序列中提取较长的重叠序列,因此神经网络会以不同的状态进行初始化。因为对于每个小批量,只能以有限的时间步长合理地训练 RNN,所以使用了随时间的截短反向传播。这意味着长序列会在用于训练的较短窗口中拆分,从而在每个小批量之间传递 RNN 的隐藏状态。使用相同的平均值和标准偏差值对测量的序列进行标准化,从而提高训练的稳定性。

在训练过程中,研究人员主要对模型进行优化。训练中,使用了基于 Pytorch 构建的Fastai 2 API。优化器的学习率是训练神经网络最重要的超参数之一,研究人员通过学习率启发式算法选择最大学习率,并使用余弦退火来加快收敛速度。学习率启发式算法通过在虚拟训练中以指数方式增加学习速率并找到损失具有最陡峭梯度的点来确定最大学习速率。余弦退火从最大学习速率开始,在给定的时期内保持恒定,然后随着时间呈指数减小。

B.损失函数

模型的输出是一个四元数,它描述了传感器的姿态。在大多数情况下,将获取估计值和参考值之间的均方误差。在当前情况下,四元数的逐元素均方误差不是一个合理的选择,因为不能仅通过加速度计和陀螺仪信号来明确估计方向,还必须使用磁力计。一种解决方案是选择与姿态误差函数????????(????, ????̂)相等的损耗函数,同时为避免梯度爆炸,使用线性项代替arccos(d)反余弦函数,并且可以保持单调性和与姿态的相关性

????????(????, ????̂) = 1 − ????

下图直观显示了两个函数及其梯度之间的差异。

C.数据增强

数据增强是一种通过引入域知识来增加给定数据集大小的方法。这是一种可提高模型通用性的正则化方法,已成功应用于计算机视觉和音频建模等领域。在当前姿态估计任务的情况下,研究人员通过随机生成的单位四元数变换测得的加速度计,陀螺仪和参考姿态数据来虚拟旋转 IMU。从而,将用于传感器测量的方向不变性引入模型,并降低其对过度拟合的敏感性。

D.分组输入通道

处理多元时间序列的默认方法是将所有输入信号放入同一层。一种替代方法是创建彼此交互的信号组,并将它们与不需要交互的信号断开连接,从而减轻神经网络发现信号之间的相互作用。在本研究中,研究人员将加速度计和陀螺仪分别进行分组,加速度计在较大的时间尺度上提供姿态信息,而陀螺仪提供有关方向变化的准确信息,如下图所示。

实验

该研究将提出的神经网络与基于标记的光学运动跟踪系统的姿态估计滤波器的性能进行比较。为了分析不同类型的动作以及不同水平的静态或动态活动的算法性能,研究人员考虑了来自不同实验的大量数据集,这些数据具有以下特征:

1.旋转:IMU 在三维空间中自由旋转,同时保持在空间中的同一点附近。

2.平移:IMU 在三维空间中自由移动,同时保持几乎相同的方向。

3.任意:IMU 在三维空间中自由旋转和平移。

4.慢,中,快:运动速度在三个不同级别之间变化。

5.暂停与不间断:每三十秒暂停一次,并在十秒钟的中断后继续运动,或者在五分钟录制的整个过程中不间断执行。

上述实验数据用于验证和比较以下两种姿态估计算法:

•Baseline:基于四元数的姿态估计滤波器,该算法实现了基于加速度计的校正步骤和自动融合权重自适应。滤波器时间常数和权重自适应增益在数值上进行了优化,从而在所有数据集中产生最佳性能。

•神经网络:在增强数据集的子集上训练的神经网络,并在补充的数据集上进行验证。

在三项研究中分析了将神经网络应用于姿态估计问题的特征。第一个将优化的神经网络与基线过滤器的性能进行比较。第二个是消融实验,量化了优化的效果并比较 RNN 和 TCN 模型的性能。最后一项研究分析了缩放神经网络规模的影响。

A.性能分析

通过将神经网络与 Baseline 滤波算法,另外的两种开源滤波算法进行比较,神经网络的中值误差甚至更小,并且在所有运动中均表现良好,鉴于在整个数据集上对过滤器进行了优化的事实,而神经网络从未见过任何验证数据,这一点就显得尤为突出。

B.消融实验

研究结果如下图所示。其一,如果不进行优化,RNN 和 TCN 模型的表现将达到相似的水平。但是,添加优化之后,RNN 的误差要小得多,因为 TCN 局限于感受野,而 RNN 可以在其隐状态下无限期地跟踪 IMU 运动。其二,所有优化均改善了 RNN 和 TCN。对输入进行分组会始终带来较小的改进,而损失优化和数据增强会对性能产生重大影响。因此,通过消融实验可知,要使性能优于基准滤波器,就必须进行损耗优化和数据增强。

C.模型尺寸分析

为了分析模型尺寸对姿态误差的影响,将性能分析中的 RNN 模型应用于消融实验的 12个训练和 3 个验证记录,对 RNN 每一层的神经元数量从 10 缩放到 200,并比较姿态误差。如图所示,误差随着 Hidden Size 的增加而减小,在较大的神经元数量下梯度减小。减小RNN 的 Hidden Size 有助于减少内存占用和总体计算时间,这对于嵌入式系统很重要。但是,由于其顺序性,它仅在边际上减少了具有高并行化功能的硬件加速器的训练和预测时间。

这项工作表明,神经网络是用于基于 IMU 的实时姿态估计的有效工具。如果针对特定领域能够满足相应的优化要求,那么大型递归神经网络的性能将超过最新的非线性姿态估计滤波器。但是,这些优化不同于常规滤波算法的优化,其不需要实现性能良好的滤波器所需的特定知识。此外,基于神经网络的方案需要有足够丰富的数据集,通过数据增强可以大大减少这种需求。最后,根据参数的数量,使用神经网络进行姿态估计需要更多的计算时间。

更多精彩推荐

  • 再见 VBA!神器工具统一 Excel 和 Python

  • 打破“打工人”魔咒,RPA 来狙击!

  • 腾讯AI足球队夺冠Kaggle竞赛,绝悟强化学习方案迁移至足球队

  • 一男子蒙冤入狱10天,竟是 AI 认错了!

  • 舌尖上的AI:人工智能技术正在被“端上”餐桌



推荐阅读
  • AI 学习路线:从Python开始机器学习
    AI 学习路线:从Python开始机器学习 ... [详细]
  • DNNBrain:北师大团队出品,国内首款用于映射深层神经网络到大脑的统一工具箱...
    导读深度神经网络(DNN)通过端到端的深度学习策略在许多具有挑战性的任务上达到了人类水平的性能。深度学习产生了具有多层抽象层次的数据表示;然而,它没有明确地提供任何关 ... [详细]
  • 跪服!大四学生开发了一整套文言编程
    机器之心报道参与:思、Jamin用文言文写的官方编程教程《文言陰符》,类似pip那样的包管理工具「文淵閣」,还有文言编程开源IDE「文言齋 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 机器学习如何看世界 对抗机器学习诠释人工智能和人类思维的不同
    接近,计算,极限,看,世界,对抗,机器,学习,诠释,人工智能,和, ... [详细]
  • python有什么应用领域[python常见问题]
    python语言可以用来开发游戏,用于大数据的挖掘和处理,开发web,应用在系统运维,云计算,金融理财分析,人工智能等涉及 ... [详细]
  • PyTorch 2.0来了!100%向后兼容,一行代码将训练提速76%!
    点击下方卡片,关注“CVer”公众号AICV重磅干货,第一时间送达点击进入—CV微信技术交流群转载自:机器之心PyTorch官方 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • GTX1070Ti显卡怎么样?GTX1070Ti显卡首发图赏+参数解读与拆解图
    先来简单回顾一下今年的显卡市场,nvidia自从发布了帕斯卡架构新品之后,可以说是一直都主宰着高端游戏显卡市场,虽说amd也憋了一个hbm2的vega64出来,然而即使是最高贵的水 ... [详细]
author-avatar
兰州老头_337
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有