强化学习入门:代理、环境与奖赏

FreeGuideOnline 最新 2026-06-17

强化学习:让机器在试错中学会决策

强化学习是机器学习的一个重要分支,它关注的是智能体(Agent)如何在与环境的交互中,通过尝试不同的行为并观察得到的奖励或惩罚,来学习能最大化累积奖励的策略。与监督学习依赖标注数据不同,强化学习中的智能体没有标准答案,它必须自己在环境中探索、试错,从零开始建立对世界的认知。

核心三角:代理、环境与奖赏

任何强化学习问题都可以抽象为三个基本元素的循环交互。

1. 代理(Agent)

代理是学习和做出决策的主体。它可以是一个机器人、一个游戏AI、一个推荐系统算法,甚至是一个交易策略。代理有两个核心组成:

  • 策略(Policy):代理在某个状态下决定采取什么动作的规则。策略可以是确定性的(状态s下必定选动作a),也可以是随机的(以一定概率选择动作)。
  • 学习算法:代理用来改进策略的机制,让它根据获得的奖励不断变得“更聪明”。

2. 环境(Environment)

环境是代理所存在和交互的一切外部事物。它定义了世界的规则、状态的转移方式以及奖励的发放逻辑。对于代理而言,环境就是一个黑箱:代理只能观察到环境给出的状态(State),施加动作,然后环境返回下一个状态和即时奖励。环境可以是模拟器、物理世界或游戏引擎。

3. 奖赏(Reward)

奖赏是一个标量数值信号,用来告诉代理刚才做的动作是“好”还是“坏”。这是驱动学习的唯一反馈。强化学习的目标并不是最大化眼前的即时奖赏,而是最大化长期累积奖赏(Return)。因此,代理必须学会舍弃短视行为——一个当前奖励很低但能打开未来高回报局面的动作,比一个马上给出一小额奖励的动作更有价值。

交互循环:从状态到动作

在每一个离散的时间步 t 中,交互遵循以下流程:

  1. 智能体从环境接收到状态 $S_t$。
  2. 基于当前策略,智能体选择一个动作 $A_t$ 并执行。
  3. 环境根据其内部动力学,转换到一个新的状态 $S_{t+1}$,并返回一个即时奖励 $R_{t+1}$。

这个循环不断重复,形成一条轨迹: $S_0, A_0, R_1, S_1, A_1, R_2, \dots$ 。智能体的全部经验就来自于这些轨迹。

关键概念延伸

在理解了基本三角后,我们还需要掌握几个支撑性的概念。

状态(State)与观察(Observation)

有时我们区分环境的完整内部状态和代理能感知到的部分观察。在完全可观测环境中,状态就是观察;在部分可观测环境中,代理只能得到有限的传感器读数,必须结合历史信息来做决策。初学阶段通常从完全可观测环境入手。

价值函数(Value Function)

为了衡量长期收益,我们定义两个函数:

  • 状态价值函数 $V(s)$:从状态s开始,之后按照某一策略行动所能获得的期望累积奖励。
  • 动作价值函数 $Q(s,a)$:在状态s下采取动作a,之后按照某一策略行动所能获得的期望累积奖励。

价值函数是策略评估和改进的数学基础。许多算法(如Q-learning)直接学习最优的动作价值函数,然后从中推导出最优策略。

探索与利用的权衡

代理面临着一个核心困境:

  • 利用(Exploitation):选择当前已知能带来最高奖励的动作。
  • 探索(Exploration):尝试其他可能不是最优的动作,以发现潜在的更优策略。

只利用不探索会陷入局部最优;只探索不利用则无法获得实际收益。简单的平衡方法如ε-贪婪策略:以概率ε随机选择动作,以1-ε选择当前最优动作。

一个直观示例:格子世界

想象一个 4×4 的网格世界,代理初始在左上角,目标是到达右下角的宝藏格。每次移动可获得 -1 的奖励(用于鼓励走最短路径),到达宝藏奖励 +10,踏入陷阱格奖励 -10 并终止本局。

  • 状态:代理所在的格子坐标。
  • 动作:上、下、左、右四个移动方向。
  • 环境:负责执行移动规则(撞墙则停留在原地)、判定是否终止,并返回奖励。
  • 代理:一开始随机游走,通过收集到的 (状态, 动作, 奖励, 下一状态) 经验,逐渐学到一条安全且快速的路径。

经过足够多次的试错后,价值函数 $Q(s,a)$ 会反映出每个格子-动作对的期望回报,最终代理的策略将始终选择向宝藏方向移动并避开陷阱。

强化学习的主要算法流派

根据学习方式的不同,可以将强化学习方法分为以下几类:

  • 基于价值的方法:学习最优动作价值函数 $Q^*(s,a)$,策略直接从Q值中导出(如Q-learning、Deep Q-Network)。适合离散动作空间。
  • 基于策略的方法:直接参数化策略并优化其性能指标,可以自然地处理连续动作空间(如REINFORCE、PPO)。
  • 演员-评论家方法:结合前两者,演员(策略)负责选择动作,评论家(价值函数)评价动作的好坏,二者协同学习(如A2C、DDPG)。
  • 无模型 vs 基于模型:无模型方法直接从交互经验中学习,不对环境建模;基于模型的方法先学习环境模型(状态转移和奖励函数),再通过规划得到策略。

入门实践建议

  1. 从经典环境开始:使用OpenAI Gym(或其后继Gymnasium)中的CartPole、MountainCar等简单环境,亲身体现代理从随机到精通的过程。
  2. 手动实现Q-learning:在网格世界或FrozenLake环境上,用表格型Q-learning理解算法核心更新公式: $$ Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha \left[ R_{t+1} + \gamma \max_a Q(S_{t+1}, a) - Q(S_t, A_t) \right] $$
  3. 理解折扣因子 $\gamma$:它控制未来奖励的重要性,位于0到1之间。$\gamma$ 接近0让代理变得短视,接近1则重视长期收益。
  4. 可视化奖励曲线:绘制每个回合总奖励的变化,这是评估学习进展的最直观指标。

强化学习的魅力在于它的通用性——只要问题能被建模为代理、环境、奖赏的交互,就有机会使用强化学习找到优秀甚至超人的解决方案。掌握这些基础概念后,你便拿到了通往自动驾驶、游戏AI、机器人控制等前沿领域的第一把钥匙。