我正在寻找一个起点,即使用哪种模型或方法。情况如下:
一台机器人有9个输入:
-
-6个传感器提供距离信息
-
-检测碰撞的传感器
- -左侧电机的当前速度
- -右侧电机的当前速度
输出:2个数字(或2个布尔值)来控制2个电机(左前和右前)
现在我在考虑让机器人自己找出避免碰撞的方法。我将6个传感器的数据连同一个“成功/失败”的标志一起输入模型。然后,模型被训练以了解当某个传感器值低于某个数值时,一个电机需要比另一个快以避免碰撞输入。此外,我需要告诉模型避免碰撞标志。
作为平台,我考虑使用树莓派,可能与Azure连接,这样我可以使用任何我想用的模型
但是我需要找哪种模型呢?它需要从连续数据中学习。尝试某事,记录下来,从中学习,然后尝试其他事情。输出可能是多重回归或多重二元的。
输入也是多重的。需要从新的数据点中学习。有没有建议?
回答:
你要找的是强化学习。关于机器人或游戏AI的相关文献有很多。它的工作原理,正如你所说的,是连续的。
它(智能体)有一个环境(传感器、当前速度),它可以执行动作(控制电机),这些动作会导致环境的反应。根据所采取的动作,它会收到一个奖励,比如与物体的距离 < 之前
=> +1,否则-1。你明白我的意思。通过尝试和失败,它会创建自己的策略(它的行为),以最大化奖励。
强化学习中最常用的算法是Q-Learning(其深度学习版本称为DQN)。
这里有一篇可能与你的问题相关的论文:链接