预测下一步要采取的行动以达到最终状态

数据挖掘 机器学习 神经网络 预测建模 时间序列 深度学习
2022-02-05 10:13:57

有谁知道在对时间序列数据进行训练时可用于确定为达到所需状态而采取的下一步行动的算法?

例如,机器人从某个状态开始,然后采取行动进入另一个状态。这在多次迭代中连续发生(想象机器人正在随机探索一个房间)。如果机器人处于特定的起始状态,并且我希望机器人最终处于不同的状态,是否有一种算法可以推荐最佳的下一步操作(或一组下一步操作)以达到最终的期望状态?

我尝试过的一种方法是使用神经网络,将当前状态和下一个状态作为输入,从当前状态到下一个状态的动作作为输出。对于单个状态,网络将知道如何到达下一个所需状态,即一个动作。问题是,如果所需的状态距离许多操作还有很多呢?

3个回答

您描述的问题可以形式化为马尔可夫决策过程,这是强化学习的基础问题概括地说,强化学习关注给定环境(房间)中的代理(机器人)如何采取行动(从一种状态到另一种状态的移动)以最大化某种奖励概念。

形式化您的问题需要定义 MDP 模型的几个部分:

  • 状态集S
  • 一组动作A
  • 奖励函数,定义到达给定状态的奖励。在您的情况下,的简单方案是一种选择。R(s)R(s)=1(s=sgoal)
  • 一个转移函数给出了在状态中从状态采取行动结束的概率。(请注意,您可以通过为单个来模拟确定性转移。 )T(s,a,s)sas1s

如果问题无限持续,您还需要折扣因子γ

在强化学习中,术语最优策略描述了一个函数,它返回从给定状态采取的最佳行动。即,这给出了您正在寻找的建议。

如果您了解上述所有模型组件,或者至少可以推导出与您的问题相匹配的组件,您可以使用各种规划算法来找到最优策略,例如值迭代策略迭代

如果你不知道奖励和转换——例如,机器人正在寻找连接到充电站的传感器,而你不知道它在哪里或封闭房间的大小——你可能需要探索观察动作结果对的算法,并尝试从这些学习片段中学习最优策略。

对这些的完整描述超出了您的问题范围,但一个很好的起点是 Sutton & Barto 的强化学习:简介一个html 版本是免费提供的。另一个资源是佐治亚理工学院制作的RL udacity 课程。

在您的示例中,您可能还想研究基于潜力的奖励函数。非常松散地,一个潜力可能是机器人到目标状态的距离,奖励将基于这个潜在值的变化。(这在 Ng、Harada 和 Russell 的论文以及上述 GA 技术课程的第 6 单元中进行了描述。)

我认为你需要使用 Reinforcement learning Reinforcement learning用于 python 的 Pybrain 库有一个与您的任务机器人探索迷宫类似的示例。

除非您知道整个最佳路径,否则您无法知道下一个最佳步骤。您的任务类似于TSP(旅行推销员问题)。

那么,如何找到最佳路径呢?

可能您可以对每个州添加处罚(未知)。然后你可以将你的目标定义为总惩罚最小的路径。

(对于您示例楼层中的机器人,将受到 0 罚分,而一些障碍物将受到 >0 罚分)。

据我所知,除非您的任务有额外的限制,否则您无法避免通过所有可能的路径进行暴力破解。

您需要使用已有的数据来估算处罚。(因此,惩罚是机器学习任务中的参数)当您估计惩罚时,您可以计算每条路径的总惩罚,因此您可以通过蛮力找到所有路径并找到“最佳”路径。(惩罚最小)