Jupyter AI

5 Markov决策过程之状态、动作和奖励

📅 发表日期: 2024年8月15日

分类: 🤖强化学习入门

👁️阅读: --

在本篇教程中,我们将深入探讨Markov决策过程(MDP)的核心组成部分:状态动作奖励。这些元素是理解MDP的基础,也是强化学习中智能体决策的支柱。

一、状态(State)

在MDP中,状态是环境在某一时刻的描述。它应该能够提供足够的信息,以便智能体做出合理的决策。一个状态可以是任何对环境的表征,可能包括某个游戏中的棋盘状况、机器人在地图上的位置等。

案例:迷宫问题

假设我们有一个简单的迷宫,迷宫的不同位置可以表示为不同的状态。例如,迷宫由一个3×33 \times 3的网格构成,每个格子表示一个状态:

(0, 0) (0, 1) (0, 2)
(1, 0) (1, 1) (1, 2)
(2, 0) (2, 1) (2, 2)

在这个迷宫中,智能体的位置就是当前状态。

二、动作(Action)

动作是智能体可以在特定状态下采取的选择。在某一状态下,智能体可以执行一个或多个可用的动作,来改变其状态。每个动作都有可能导致智能体转移到另一个状态。

动作的选择

在迷宫的例子中,如果智能体在状态(1,1)(1, 1),它可以选择的动作可能是上(Up)下(Down)左(Left)右(Right)。每个动作都会导致状态的变化。例如:

  • 执行动作(1,1)(1, 1)(0,1)(0, 1)
  • 执行动作(1,1)(1, 1)(2,1)(2, 1)
  • 执行动作(1,1)(1, 1)(1,0)(1, 0)
  • 执行动作(1,1)(1, 1)(1,2)(1, 2)

可以使用一个字典来表示这些动作及其对应的状态转移,如下所示:

action_transition = {
    (1, 1): {
        'Up': (0, 1),
        'Down': (2, 1),
        'Left': (1, 0),
        'Right': (1, 2)
    }
}

三、奖励(Reward)

在MDP中,奖励是环境给予智能体的反馈,用于评估特定状态与动作的组合。奖励可以是正值、负值或零,反映了智能体在某个状态下执行某个动作的好坏。通过奖励,智能体能够学习哪些行为是有益的,哪些是有害的。

奖励的设计

在迷宫中,假设智能体到达出口会获得奖励+10,而走入死胡同会获得奖励-5,其他状态的奖励都是0。我们可以使用一个奖励函数来定义这一过程:

rewards = {
    (0, 0): 0,
    (0, 1): 0,
    (0, 2): 0,
    (1, 0): 0,
    (1, 1): 0,
    (1, 2): 0,
    (2, 0): -5,
    (2, 1): 0,
    (2, 2): 10
}

总结

本篇教程中,我们详细介绍了Markov决策过程的三个关键要素:状态动作奖励。通过迷宫问题的示例,我们展示了这些要素是如何相互作用的。智能体在不同的状态下,通过执行不同的动作获取相应的奖励,从而学习到最优策略,为下一步的学习打下了基础。

在接下来的上一篇教程中,我们将讨论折扣因子与价值函数,进一步探讨如何评估和优化智能体的决策过程。