强化学习基础(RL Basics)
强化学习(Reinforcement Learning, RL)是机器学习的一个重要分支,它与监督学习和无监督学习有着本质的区别。在监督学习中,我们有“标准答案”(标签)来指导学习;在无监督学习中,我们寻找数据中的隐藏结构;而在强化学习中,智能体通过与环境交互,根据奖励信号来学习最优行为。本文将系统介绍强化学习的基础知识,为理解后续的后训练技术打下基础。
从一个例子开始
在深入技术细节之前,让我们先理解什么是强化学习。 想象一下你在训练一只小狗完成“坐下”这个动作。当小狗正确坐下时,你给它一块零食作为奖励;当它没有正确执行时,你不给它奖励。经过多次尝试,小狗会学会:做出“坐下”这个动作会带来奖励(零食),于是它会越来越多地执行这个动作。
强化学习的核心思想与此类似:我们有一个“智能体”(agent,可以理解为模型),它在环境中采取“行动”(action),环境会给出“奖励”(reward)作为反馈。智能体的目标是学会采取能够获得最高总奖励的行动序列。
强化学习的核心要素
一个强化学习系统包含四个核心要素:与监督学习不同,强化学习没有“标准答案”,而是通过与环境交互获得奖励信号来学习。
-
策略(Policy),记作 。策略定义了智能体在给定状态下应该采取什么行动。可以把它理解为“在这种情况下,我应该怎么做”的决策规则。
-
奖励函数(Reward Function),记作 。奖励函数告诉智能体一个行动有多“好”。在训练过程中,智能体的目标就是最大化获得的奖励总和。
-
价值函数(Value Function),记作 或 。价值函数估计在给定状态(或状态-行动对)下,未来能够获得的总奖励。价值函数帮助智能体考虑长远的收益,而不仅仅是眼前的奖励。
-
环境模型(Model),描述环境如何运作。有些强化学习方法不需要环境模型(无模型方法),我们即将讨论的PPO和DPO都属于这类。
马尔可夫决策过程(MDP)
强化学习问题通常形式化为马尔可夫决策过程(Markov Decision Process, MDP)。一个 MDP 由五元组 定义:
- :状态空间,表示智能体可能处于的所有状态的集合
- :动作空间,表示智能体可以采取的所有动作的集合
- :转移概率函数,给定状态 和动作 ,下一个状态是 的概率
- :奖励函数,智能体在状态 采取动作 到达状态 时获得的奖励
- :折扣因子,用于权衡即时奖励与未来奖励的重要性
马尔可夫性质的核心假设是:未来的状态只取决于当前的状态和动作,而与过去的历史无关。这使得我们可以使用动态规划方法来求解 RL 问题。
智能体的目标是找到一个最优策略 ,使得从初始状态开始的期望累积奖励最大化:
这里 是智能体与环境交互产生的轨迹(trajectory), 可以是有限的(如游戏回合)或无限的(如持续对话)。
为了分解这个目标,我们引入两个关键函数:
- 状态价值函数 :从状态 开始,按照策略 行事的期望累积奖励
- 动作价值函数 :从状态 采取动作 ,然后按照策略 行事的期望累积奖励
这两个函数满足著名的贝尔曼方程(Bellman Equation):
贝尔曼方程揭示了价值函数的递归性质:当前状态的价值等于即时奖励加上未来状态价值的折扣和。这为我们可以使用动态规划或迭代方法来估计价值函数奠定了基础。
为什么强化学习对语言模型有用?
对于语言模型,我们可以这样理解:生成的过程就是在“选择下一个词”——每一步都是一个行动,而整个生成过程就是一系列行动组成的序列。奖励函数可以衡量生成的文本有多好(比如人类是否喜欢、是否helpful、是否factual)。
传统的语言模型训练使用最大似然估计——让模型学习“给定前文,下一个词应该是什么”。但这种训练目标并不能直接反映这个回复是否是一个好的回复。强化学习提供了一种更灵活的方式来定义和优化“好”的标准:我们只需要能够判断输出好坏(奖励函数),强化学习就能帮我们调整模型参数来产生更好的输出。
强化学习基础:策略梯度
让我们首先形式化问题。假设我们有一个语言模型 ,它可以根据给定的提示生成样本 (这里为了简化,我们考虑单个提示的情况)。
我们定义一个奖励函数 ,该函数为每个生成的样本分配一个标量奖励,奖励越高表示样本越好。现在,我们希望优化模型参数 以最大化期望奖励:
这意味着:我们要找到一组参数 ,使得从模型中采样得到的文本 ,其平均得分 尽可能高。
梯度估计:REINFORCE算法
上述目标函数对 求导并不容易,因为奖励函数 通常是不可微分的——我们无法直接计算 。策略梯度方法(Policy Gradient)提供了解决方案。
这里需要用到机器学习中一个非常有用的技巧:对数导数技巧(log-derivative trick)。 首先,对于概率分布 ,有恒等式:
这个公式的左边是我们想要但无法直接计算的梯度,右边是一个期望形式。利用这个技巧,我们可以把目标函数的梯度写成:
这个式子的直觉解释是:如果某个样本 获得了高奖励 ,我们就增加生成该样本的概率(即增加 );如果获得低奖励,我们就减少其概率。 于是我们可以使用以下更新规则:
小测验
解析:神经网络是强化学习的可选工具(如 DQN),而非核心要素。强化学习的核心要素包括:智能体、环境、状态、动作、奖励。
其中 是学习率, 是采样的样本数量。这就是著名的REINFORCE算法。