Q-Learning 是一种强化学习算法,它通过学习最大化长期奖励来指导智能体做出决策。以下是 Q-Learning 的基本概念和步骤。

基本概念

  • 状态 (State): 智能体所处的环境。
  • 动作 (Action): 智能体可以采取的行动。
  • 奖励 (Reward): 智能体采取某个动作后获得的奖励。
  • Q-值 (Q-Value): 表示在某个状态下采取某个动作的期望奖励。

Q-Learning 步骤

  1. 初始化 Q-值表。
  2. 选择一个动作。
  3. 执行动作,并获取奖励和下一个状态。
  4. 更新 Q-值表。

示例

假设我们有一个简单的环境,智能体可以向上、下、左、右移动。以下是 Q-Learning 的一个简单示例:

  • 状态: (x, y)
  • 动作: 上、下、左、右
  • 奖励: 移动到目标位置获得 +1,否则获得 -1
# 初始化 Q-值表
Q = [[0, 0, 0, 0] for _ in range(5)]

# 迭代更新 Q-值
for episode in range(100):
    state = (0, 0)
    while state != (4, 4):
        action = choose_action(Q, state)
        next_state, reward = step(state, action)
        Q[state[0]][state[1]] = Q[state[0]][state[1]] + 0.1 * (reward + 0.9 * max(Q[next_state[0]][next_state[1]]) - Q[state[0]][state[1]])
        state = next_state

扩展阅读

更多关于 Q-Learning 的内容,请参考以下链接:

图片

Q-Learning 算法流程图