作为作业的一部分,我需要实现一种学习方法,使扫雷机器人能够避免与地雷碰撞。我可以选择使用监督学习、无监督学习或强化学习算法。
我记得在一次讲座中,讲师提到了ALVIN。他当时在讲授人工神经网络的课程。
由于我所期望的行为与ALVINN的相似,我想实现一个ANN。我之前曾为解决3位奇偶校验XOR问题实现过一个ANN,这是我的解决方案。我一直不太理解ANN背后的直觉。
我想知道,我的ANN的输入可以是什么?在3位奇偶校验XOR问题中,输入是显而易见的。
回答:
在选择ANN框架时,每个人都有自己的偏好。我最近使用了Encog框架来实现一个图像处理项目,发现它非常易于实现。
现在,回到你的问题陈述,“一种使扫雷机器人避免与地雷碰撞的学习方法”是一个非常广泛的范围。你的ANN的输入到底会是什么?你需要根据是实施在真实机器人上还是在模拟环境中来决定你的输入。
可以清楚地推断,如果你试图实现类似ALVIN的东西,无监督学习可以被排除在外。
在模拟环境中,最好的选择是,如果你能以某种方式基于模拟的传感器数据形成环境的网格地图。然后,机器人周围的占用网格可以作为机器人ANN的良好输入。
如果你无法形成网格地图(如果数据不足),那么你应该尝试将所有可用且相关的传感器数据输入到ANN中。然而,根据你的模拟环境中给出的模拟传感器噪声,它们可能需要进行预处理。如果你有摄像头输入(如ALVIN模型),那么你可以直接效仿他们的做法,相应地训练你的ANN。
如果这是真实的机器人,那么选择会因所需的鲁棒性和准确性要求而大不相同。我真心希望你不是想单枪匹马地建造一个坚固且实用的扫雷机器人。:) 对于一个小型、可控的环境,你的选择将与模拟环境非常相似,但传感器噪声会更棘手,你需要在任务规划中考虑各种特殊情况。尽管如此,建议将其他一些传感器(如激光雷达、超声波等)与视觉传感器融合,并将其作为规划器的输入。如果没有其他可用选项,只需复制粘贴ALVIN系统,仅使用前置摄像头输入即可。
ANN的训练方法将是相似的(如果仅使用视觉)。输出将是向右/向左/直行等。首先尝试使用5-7个隐藏层节点,因为这是ALVIN使用的。最多增加到8-10个,应该会有效。正确使用激活函数。