AI机器学习实战の电磁导航智能车中神经网络应用的问题与思考-交流向-本科生竞赛——本文略长,可能需要十分钟到半小时的阅读时间
前言
在机器学习与人工智能告诉发展的大背景下,本科生竞赛也在逐渐朝这方面靠拢。全国大学生智能车竞赛也在今年(2020年)的比赛类别中加入了一组需要用到神经网络模型来控制车模运行的组别——AI电磁组
,因为大一到大三年级走过来之后,也算对这个比赛有些感情,恰好新组别的内容也与笔者现在研究的内容有些交集,于是想与各位同学和前辈探讨一下关于这个新组别的一些问题和思路。当然笔者现在也只是堪堪入门,并非巨腕大鳄,文章难免有错误和纰漏,正因如此,希望能跟大家交流,以弥补自己学习中的不足。如有需要,可以在评论区留言
或通过以下途径
与我联系:
E-mail: zhouhaonan@mail.sdu.edu.cn
QQ: 2733979004
WeChat: muyexiaoxiao_
首先申明,笔者博客写作完全处于兴趣和交流需要,若有引用也会尽可能的标注,不会从事任何商业商业活动,若有侵权或者引用不全不当之处,烦请指出,但不一定改(手动滑稽
)。
赛题背景简介
本组别的比赛任务为:在由直道、弯道、十字和环岛等元素组成的赛道上,中央铺设有一根通有20kHz交流电的电磁引导线,比赛赛车需要通过电磁传感器——如工字电感——感知电磁信号沿赛道行驶一周,用时最少者获胜。由于我们的控制系统在时域上都存在一定的滞后,因此我们在确定控制器输出的时候往往需要一些超前的信息来抵消这一段滞后的信息,也就是我们通俗所说的“前瞻”。但由于新的组别中限制了前瞻的长度——不能超过车轮五厘米——限制了我们通过加长前瞻来获取超前信息的途径,人们的思路就自然而然的想到了时下正火的“人工智能算法”
来解决这个问题。当然,按照笔者的理解,此处的“人工智能算法”
还是要加个引号。
(图源水印)
来自卓晴老师公众号的解决方案——The Strategy From TsinghuaJoking
前几天,一位学弟给我发送了这篇介绍在该竞赛组别中可以使用的神经网络策略(一下简称本策略
)的文章。原文链接
原文链接: AI机器学习实战の电磁智能车篇.
这篇文章给出的思路大致可以描述为,通过长前瞻的经典控制方法采集数据并将经典的控制算法中的控制器输出作为数据集的标签,并且通过这些训练数据将该问题转换为一个从车模近处的电感值映射到舵机控制输出的回归问题。或许是为了保持比赛的竞争性,这篇文章中只是给出了简单的模型和做法,对可能存在的一些问题以及其中存在的原理并没有多做说明。当然本文也只是处于共同交流和学习的目的,并没有破坏竞赛公平性的想法,也不打算敝帚自珍,只是根据其中存在的一些问题发表一下自己的看法。为防止气氛过于沉重,下面给出一张自己阳光的笑容。
为什么这个问题可以使用神经网络回归来解决
实际上我们所有的控制问题,都可以采用抽象成数学函数
或者说映射
的方法来思考,就本文中所提到的竞赛问题来说,若设向量 V 为所有电磁传感器的采样值,其维数为电磁传感器的数量;向量 P 为我们控制器输出的值,此处可以理解为输出的PWM值,其维数可能为1,即舵机转向角度
,再更高级的策略中其维数也可能为3,即舵机转向角度
与左右轮的速度
。此时我们将这个函数表示为:
P = f ( V ) . P = f(V)\,. P=f(V).
或许已经有同学已经感觉简单到惊讶了,实际上本来这也并不是一个复杂的问题,但是此时 函数 f 的形式对我们来说仍然是未知,这可能根据系统前瞻的不同,电感感值放大倍数,机械摩擦与采取的控制器(如PID)策略有所不同。如果已知函数的具体形式,我们可以通过最小二乘法或牛顿法等方法完成函数的回归与拟合,但是目前来说,该函数的形式是未知
的。
然而,幸运的是,神经网络有一个很重要的特点就是:一个足够复杂的神经网络,拥有逼近任何函数形式的能力。