主题
智能体与环境
强化学习问题的基本框架是智能体与环境之间的交互循环。智能体观察环境、做出动作,环境据此改变状态并给出奖励,如此往复。本节把这个循环拆开来讲清楚,并介绍回合(episode)、观测与状态、动作空间、奖励设计等在写代码前必须理解的概念。
交互循环
在每个离散时间步
- 智能体观察到环境的状态
(或观测 ); - 智能体根据策略
选择动作 ; - 环境接收动作,转移到新状态
,并返回奖励 ; - 进入下一个时间步。
由此产生一条轨迹(trajectory):
flowchart LR
Agent[智能体 Agent] -- 动作 A_t --> Env[环境 Environment]
Env -- 状态 S_t+1、奖励 R_t+1 --> Agent
智能体与环境的边界
一个容易混淆的问题是:什么属于智能体,什么属于环境?Sutton 与 Barto 给出的原则是:智能体不能任意改变的东西都属于环境。例如机器人的电机和传感器虽然在物理上属于机器人,但在建模时通常被视为环境的一部分;奖励的计算也被视为在环境中进行,智能体无法直接修改它。
状态与观测
- 状态(state)是对环境完整情况的描述。
- 观测(observation)是智能体实际能感知到的信息,可能只是状态的一部分。
如果观测包含了做决策所需的全部信息,称为完全可观测,可以建模为 MDP;否则称为部分可观测,对应 POMDP(部分可观测马尔可夫决策过程)。例如 Atari 游戏单帧画面无法看出小球的速度方向,DQN 的做法是把最近 4 帧堆叠起来作为输入,以近似恢复马尔可夫性。
动作空间
- 离散动作空间:动作数量有限,例如游戏手柄的上、下、左、右。适合 DQN 等基于价值的方法。
- 连续动作空间:动作是实数向量,例如机械臂各关节的力矩。通常使用策略梯度类方法(PPO、DDPG、SAC 等)。
奖励与奖励设计
奖励
奖励设计时要注意:
- 奖励应描述要达到什么,而不是怎么达到。例如下棋只应在赢棋时给奖励,而不应奖励“吃子”,否则智能体可能学会为了吃子而输掉整盘棋。
- 稀疏奖励(只在成功时给奖励)难以学习,常用奖励塑形(reward shaping)加速,但塑形不当会导致奖励欺骗(reward hacking):智能体找到漏洞刷分,却没有完成真正的任务。
回合制任务与持续性任务
- 回合制任务(episodic):交互会在终止状态结束,例如一局游戏。每个回合从初始状态重新开始。
- 持续性任务(continuing):交互没有自然终点,例如持续运行的温控系统。此时必须使用
来保证回报有限。
在 Gymnasium 中,回合结束分为两种情况:terminated(到达真正的终止状态,如游戏失败)和 truncated(因时间上限等原因被截断)。两者在计算目标值时处理方式不同:真正终止时未来价值为 0,被截断时仍应自举(bootstrap)下一状态的价值。
用代码表达交互循环
下面用 Gymnasium 的接口写出最基本的交互循环(这里智能体随机选择动作):
python
import gymnasium as gym
env = gym.make("CartPole-v1")
obs, info = env.reset(seed=42)
episode_return = 0.0
while True:
action = env.action_space.sample() # 智能体:随机策略
obs, reward, terminated, truncated, info = env.step(action) # 环境响应
episode_return += reward
if terminated or truncated:
break
print(f"本回合回报: {episode_return}")
env.close()1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
小结与下一步
智能体与环境通过“状态—动作—奖励”循环交互,产生轨迹。下一节先看最简单的情形——只有一个状态的 多臂老虎机,专门研究探索与利用;然后用 马尔可夫决策过程(MDP) 这一形式化框架描述完整的强化学习问题。
练习题
- 对于“扫地机器人”任务,设计一个奖励函数,并思考它可能被如何“钻空子”(奖励欺骗)。
- 运行上面的随机策略代码 100 个回合,统计平均回报(参考结果见 Gymnasium 上手,约 24)。
- 判断下列任务是回合制还是持续性的:下象棋、股票交易、空调温控、玩超级马里奥。
- 为什么单帧 Atari 画面不满足马尔可夫性?除了堆叠帧,还有什么办法?(提示:循环神经网络。)
- 一个回合因为达到 500 步上限而结束(
truncated=True),此时 TD 目标应该怎么计算?为什么?
参考文献
- Sutton, R. S., & Barto, A. G. (2018). Reinforcement Learning: An Introduction (2nd ed.), 第 3 章.
- Ng, A. Y., Harada, D., & Russell, S. (1999). Policy invariance under reward transformations: Theory and application to reward shaping. ICML.
- Pardo, F., Tavakoli, A., Levdik, V., & Kormushev, P. (2018). Time limits in reinforcement learning. ICML.