[ML] Pytorch自学实战项目其4:基于学习(RNN)算法的车辆状态估计,展示归纳总结当前结果,以及展望下一步

写在前面

  • 之前一直有一个不太合理的错误,我的推理结果应该只有自车速度和Yawrate是合理的。计划但忘记了将比如加速度等量移出参考label。
    其中纵向速度认为和加速度yawrate和之前的速度有关
    yawrate认为和轮速度差、总线横向加速度、总线yawrate、方向盘转角、车速相关。

  • 其次就是对于RNN结构我们不应该使用BN层作处理,这里最好使用LN在sample的feature的特征维度上做归一化,因为我没有在训练前做数据的特征缩放所以在训练时在特征维度上要消除数量级的差异以便使用MSE函数

  • 同时调整了模型使用顺序

本节展示结果已经作出部分对应修改。还差部分feature和更多工况的数据收集,下一次完成整理

当前的sample features 和labels为
[ML] Pytorch自学实战项目其4:基于学习(RNN)算法的车辆状态估计,展示归纳总结当前结果,以及展望下一步_第1张图片我的模型当前修改为
[ML] Pytorch自学实战项目其4:基于学习(RNN)算法的车辆状态估计,展示归纳总结当前结果,以及展望下一步_第2张图片

目前完成了的文章

  • 普通全连接网络

    • 初步建立和结构分析
  • 部分优化以及修改为循环网络结构

    • RNN加入和结构优化
  • 调整模型结构和超级参数优化及其可视化

    • 初步调整超级参数
    • TB应用到模型中改正了BN层为LN层调整features
  • 相关知识整理

    • LN与BN层
    • TensorBoard学习
    • RNN部分笔记

当前状态

  • 训练用数据整理成dataset 模型使用了dropout LN adam 动态学习率 正态初始化参数 tensorboard观察 等技术
  • 模型可以合理正常训练和对超级参数调整进行了一系列的工作 基于同一台车的不同数据training9万条 validation 3万条
  • evaluation 1万条 搭建了训练 test 推理模型,分析了loss情况并打印了结果作为对比

本节将基于当前效果做一个暂时的总结和计划后续的调整。

结果数据分析

上一节中实现了循环打印结果调节超级参数(数据还有调整空间,暂时没有使用Hyperopt),修改了feature和label内容
[ML] Pytorch自学实战项目其4:基于学习(RNN)算法的车辆状态估计,展示归纳总结当前结果,以及展望下一步_第3张图片作出了很多测试,在最终修改label合理和调整BN层为LN层之后

基于超级参数当前最后确定的一版效果如下:

[ML] Pytorch自学实战项目其4:基于学习(RNN)算法的车辆状态估计,展示归纳总结当前结果,以及展望下一步_第4张图片test集合的每一个epoch的平均loss在1e-3的数量级上。

验证集合

我在推理模型中使用关闭了随机batch,以便使数据按照时间排序可以画图对比。

下方是验证集的结果基本在0.001-0.01间。
[ML] Pytorch自学实战项目其4:基于学习(RNN)算法的车辆状态估计,展示归纳总结当前结果,以及展望下一步_第5张图片使用脚本打印出来和原数据对比
[ML] Pytorch自学实战项目其4:基于学习(RNN)算法的车辆状态估计,展示归纳总结当前结果,以及展望下一步_第6张图片
并且plot

[ML] Pytorch自学实战项目其4:基于学习(RNN)算法的车辆状态估计,展示归纳总结当前结果,以及展望下一步_第7张图片
发现车速估计的狠准,但是yawrate效果不太好。

下一步计划

数据整理

一个特征准一个不准可能是我开头所讲,学习车速所需要的条件基本满足,学习用yawrate的feature我还需要整理填充一下,并且我在ros打印的时候简单的锁住了不同回调函数打印的前后关系还需要商榷。 下一次也需要记录更多training场景。

使用Hyperpt

部署

写在本文最后

请教了一个同事,在实际使用相关知识的时候一般都是要参考论文的模型,如果不是搞科研和训练,实用为主的话,还是要基于别人的模型做一些工作,尽量不要自己从头开始搭建模型。

你可能感兴趣的:(ML学习系列,Autonomous,Driving,Algorithm,pytorch,学习,rnn)