极智AI | 解读强化学习中的Q-learning

在 OpenAI o1 的背景下,Q-learning 略显神秘,这里来解读。Q-learning 是一种基于值的强化学习算法,它旨在学习一个策略,使得智能体在环境中采取行动后,能够最大化累积的奖励。它通过估计状态-动作值函数(即 Q 函数)来实现这一目标。
在 OpenAI o1 的背景下,Q-learning 略显神秘,这里来解读。Q-learning 是一种基于值的强化学习算法,它旨在学习一个策略,使得智能体在环境中采取行动后,能够最大化累积的奖励。它通过估计状态-动作值函数(即 Q 函数)来实现这一目标。

马尔可夫决策过程 (MDP)

极智AI | 解读强化学习中的Q-learning

Q函数

极智AI | 解读强化学习中的Q-learning

贝尔曼最优方程

极智AI | 解读强化学习中的Q-learning

Q-learning更新规则

极智AI | 解读强化学习中的Q-learning

Q-learning算法步骤

极智AI | 解读强化学习中的Q-learning

下面以经典的 FrozenLake 环境(一个 4x4 的网格世界)为例,使用 Python 和 OpenAI Gym 库来实现 Q-learning 算法。

import numpy as npimport gym
# 创建FrozenLake环境env = gym.make('FrozenLake-v1', is_slippery=False)
# 初始化参数num_states = env.observation_space.nnum_actions = env.action_space.nQ = np.zeros((num_states, num_actions))num_episodes = 1000max_steps = 100alpha = 0.1 # 学习率gamma = 0.99 # 折扣因子epsilon = 0.1 # 探索率
for episode in range(num_episodes): state = env.reset() for step in range(max_steps): # 选择动作(ε-贪心策略) if np.random.uniform(0, 1) < epsilon: action = env.action_space.sample() else: action = np.argmax(Q[state, :])
# 执行动作,获得下一个状态和奖励 next_state, reward, done, info = env.step(action)
# 更新Q函数 best_next_action = np.argmax(Q[next_state, :]) td_target = reward + gamma * Q[next_state, best_next_action] td_error = td_target - Q[state, action] Q[state, action] += alpha * td_error
# 状态更新 state = next_state
# 回合结束 if done: break
print("训练完成后的Q表:")print(Q)

其中:

  • 环境初始化:使用gym.make('FrozenLake-v1')创建环境;
  • Q表初始化:Q 是一个二维数组,维度为[num_states, num_actions],用于存储每个状态-动作对的价值;
  • 主循环:循环进行多个回合,每个回合代表一次完整的游戏;
  • 动作选择:使用 ε-贪心策略,以概率 ε 随机选择动作,或以概率 1-ε 选择当前 Q 值最大的动作;
  • Q值更新:根据之前提到的 Q-learning 更新公式更新 Q 表;
  • 回合终止条件:如果到达终止状态(成功或者掉入陷阱),则结束当前回合;

为了平衡探索和利用,ε-贪心策略以 ε 的概率进行探索 (随机选择动作),以 1-ε 的概率进行利用(选择当前最优动作)。学习率决定了新获取的信息在多大程度上覆盖旧的信息,较高的学习率意味着对新信息的依赖性更强。折扣因子用于权衡即时奖励和未来奖励的重要性。接近1的折扣因子表示更加看重未来的奖励。在满足一定条件下,如所有状态-动作对被无限次访问、学习率满足罗宾条件等,Q-learning 算法能够保证收敛到最优 Q 函数。Q-learning 是强化学习中最经典和基础的算法之一,它通过学习状态-动作值函数来指导智能体的决策。通过不断地与环境交互和更新 Q 值,智能体最终能够学到一个最优策略,即在每个状态下选择使得长期累积奖励最大的动作。

?

 

来源:极智视界

0赞

好文章,需要你的鼓励

2024

10/22

11:04

分享

点赞

极智视界

研究AI的宝藏博主 | 致力于让技术分享更有质感

最近文章 :