首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >强化学习理论篇

强化学习理论篇

原创
作者头像
liddytang
修改2025-06-25 14:38:24
修改2025-06-25 14:38:24
7440
举报
文章被收录于专栏:AIAI

IT从从业七八年有余,先后经历百度、腾讯大厂,深耕搜索业务五六年,对架构设计、大数据处理、AI均匀涉猎。现从事自动驾驶领域,平时技术管理工作之余,针对前沿技术定期follow up,关注我,分享AI或数据挖掘全维度知识。

本文主要聚焦强化学习背景、常用强化学习算法、应用举例

一、背景

强化学习在DeepSeek-V3发挥了关键作用,现阶段LLM的发展已经离不开 强化学习这一核心技术了,从大模型对齐到推理模型训练再到如今的智能体强化学习(Agentic RL),几乎能AI 的每个领域看到强化学习的身影。

强化学习的核心组成

强化学习的框架主要由以下几个核心组成

  1. 环境(Environment):智能体与之交互的外部世界。
  2. 状态(State):环境在任一时刻的描述。
  3. 动作(Action):智能体可以执行的行为,以改变环境状态。
  4. 奖励(Reward):环境对智能体执行某个动作后给出的即时反馈,用来衡量该动作的好坏。
  5. 策略(Policy):智能体选择行动的规则,即在给定状态下选择动作的方式。

这四个元素共同构成了马尔可夫决策过程(Markov Decision Process, MDP),这是强化学习最核心的数学模型。

在强化学习RL中,奖励Reward是指导智能体Agent行为的关键信号,强化学习的真正目标是让智能体学会一个最大化长期累积奖励(即长期收益,Return)的策略。

奖励(Reward) vs. 长期收益

(Return)

  • 奖励(Reward, rtrt​): 是环境在每一步反馈给智能体的即时信号,表示当前动作的短期效果。
    • 例如:在游戏中,环境是游戏;动作包括向上、向左、向右和向下;奖励包含:吃掉金币得 +1 分,碰到敌人得 -1 分;状态是当前你在的位置;

长期收益(Return, GtGt​): 是从当前时刻开始的长期累积奖励,通常考虑折扣因子(γγ): Gt=rt+γrt+1+γ2rt+2+⋯Gt​=rt​+γrt+1​+γ2rt+2​+⋯

  • γ∈[0,1]γ∈[0,1] 用于平衡即时奖励和未来奖励的重要性。
  • 强化学习的目标是最大化 GtGt,而非单步的 rtrt​。

一个基于CartPole环境的强化学习模型示例

代码语言:txt
复制
import gym
import torch
import torch.nn as nn
import torch.optim as optim
import numpy as np

if not hasattr(np, 'CartPole-v1'):
    np.bool8 = np.bool_

env = gym.make('CartPole-v1')

class PolicyNetwork(nn.Module):
    def __init__(self, input_dim, output_dim):
        super(PolicyNetwork, self).__init__()
        self.fc1 = nn.Linear(input_dim, 64)
        self.fc2 = nn.Linear(64, output_dim)

    def forward(self, state):
        x = torch.relu(self.fc1(state))
        action_probs = torch.softmax(self.fc2(x), dim=-1)
        return action_probs
        
def evaluate_policy(policy_net, env, episodes=10):
    total_rewards = 0
    for i in range(episodes):
        state = env.reset()
        done = False
        episode_reward = 0
        state = state[0]
        while not done:
            state_tensor = torch.FloatTensor(state).unsqueeze(0)
            with torch.no_grad():
                action_probs = policy_net(state_tensor)
            action = torch.argmax(action_probs).item()
            next_state, reward, done, _ = env.step(action)
            episode_reward += reward
            state = next_state
        total_rewards += episode_reward

    average_reward = total_rewards / episodes
    return average_reward

input_dim = env.observation_space.shape[0]  # 状态空间维度
output_dim = env.action_space.n  # 动作空间大小

policy_net = PolicyNetwork(input_dim, output_dim)
optimizer = optim.Adam(policy_net.parameters(), lr=1e-2)
episodes = 10
# 使用上文定义的PolicyNetwork和初始化的env
average_reward = evaluate_policy(policy_net, env, episodes)
print(f"Average reward over {episodes} episodes: {average_reward}")

# 保存模型
torch.save(policy_net.state_dict(), 'policy_net_model.pth')

环境

env = gym.make('CartPole-v1')

状态:

初始状态,state = env.reset()

动作:

action = torch.argmax(action_probs).item()

根据action 迭代状态, next_state, reward, done, _ = env.step(action)

策略:

action_probs = policy_net(state_tensor)

根据状态state执行策略,得到当前步骤的策略结果;

奖励

短期奖励由当前step决定,next_state, reward, done, _ = env.step(action)

长期奖励由每个步骤的episode_reward累积达到,total_rewards += episode_reward

二、常用强化学习算法

在强化学习(Reinforcement Learning, RL)中,Model-FreeModel-Based是两种核心方法,主要区别在于是否依赖对环境的显式建模。以下是它们的详细对比:

1. 核心区别

  • Model-Based(基于模型)
    • 依赖环境模型:需要预先知道或学习环境的动态模型(即状态转移概率 P(s′∣s,a)P(s′∣s,a) 和奖励函数 R(s,a)R(s,a))。
    • 通过模型规划(Planning):利用模型进行模拟或搜索(如动态规划、蒙特卡洛树搜索)来优化策略。
    • 例如:AlphaGo 使用模型预测对手的落子位置,自动驾驶规划控制仿真。
  • Model-Free(无模型)
    • 无需环境模型:直接通过与环境交互(试错)学习策略或价值函数。
    • 依赖经验数据:从实际采样中学习(如TD误差、策略梯度)。
    • 例如:Q-Learning、Policy Gradient 直接优化策略而不建模环境。

特性

Model-Based

Model-Free

是否需要环境模型

是(已知或学习模型)

数据效率

高(可利用模型生成虚拟数据)

低(需大量实际交互)

计算效率

离线规划快,但建模可能复杂

在线学习慢,但无需建模开销

适用场景

环境稳定、可模拟(如棋牌游戏)

环境复杂或不可知(如机器人控制)

典型算法

Dyna、PILCO、MCTS

DQN、PPO、A3C

3. 优缺点

  • Model-Based 的优势
    • 数据高效:通过模型生成数据,减少真实交互成本。
    • 可解释性:模型提供对环境的理解,便于调试。
    • 适合安全关键场景:如自动驾驶,可先模拟再实践。
  • Model-Based 的劣势
    • 模型误差:若模型不准确,会导致策略失效(复合误差问题)。
    • 计算成本:建模复杂环境(如物理仿真)可能代价高昂。
  • Model-Free 的优势
    • 通用性强:适用于任何环境,无需先验知识。
    • 避免模型偏差:直接学习,不受模型误差影响。
  • Model-Free 的劣势
    • 样本效率低:需要大量试错,尤其是稀疏奖励场景。
    • 探索成本高:在现实世界中可能不切实际(如机器人损坏风险)。

4. 混合方法

现代RL常结合两者优势:

  • MBRL(Model-Based RL):先学习环境模型,再用Model-Free方法优化策略(如MBPO)。
  • Imagination-Augmented:用模型生成虚拟轨迹辅助Model-Free学习(如I2A)。

三、DeepSeek中强化学习的应用原理

下面阐述从 RLHF、PPO 到 GRPO 和 RLVR,DeepSeek 开发了 GRPO(组相对策略优化)来训练他们的推理模型。

1. RLHF

RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习) 一种训练框架,利用人类反馈来优化模型(如大语言模型)。将人类偏好融入强化学习,使模型输出更符合人类期望。 ChatGPT 中的👍和👎符号就可以用于 RLHF 过程。

2. PPO

PPO(Proximal Policy Optimization,近端策略优化) ,一种强化学习算法,用于优化策略(Policy)。在 RLHF 中作为核心优化器,调整模型参数以最大化奖励。 没有 PPO,RLHF 仍可用其他算法(如 A2C、SAC);但没有 RLHF,PPO 只是一个通用 RL 算法。

在这种情况下,agent 就是语言模型。事实上,它由三个系统组成:

  • 生成策略(当前被训练模型)
  • 参考策略(原始模型)
  • 价值模型(平均奖励估算器)

我们使用奖励模型来计算当前环境的奖励,而我们的目标就是最大化奖励!

PPO公式图片
PPO公式图片

3. RLHF + PPO技术应用

(1) RLHF 的完整流程
  1. 监督微调(SFT):用高质量数据微调预训练模型。
  2. 奖励建模(RM):训练一个奖励模型(Reward Model)学习人类偏好。
  3. 强化学习优化(RL)使用 PPO 优化模型,使其生成高奖励的输出。
(2) PPO 的作用
  • 在 RLHF 的第三步中,PPO 负责:
    • 生成策略:根据当前策略生成样本(如模型回答)。
    • 参考策略:利用 RM 计算的奖励更新策略。
    • 价值模型:通过策略梯度方法(带约束)最大化期望奖励。

RLHF方法论,PPO 是工具,RLHF = 人类反馈 + 奖励模型 + PPO(或其他 RL 算法),PPO 的稳定性使其成为 RLHF 的首选,但并非唯一选择。

4. GRPO + RLVR

DeepSeek 开发了 GRPO(组相对策略优化)来训练他们的推理模型。它与 PPO 的主要区别在于:

  • 移除了价值模型,取而代之的是多次调用奖励模型的统计数据。
  • 移除了奖励模型,取而代之的是自定义奖励函数,RLVR 可以使用该函数。

GRPO 非常高效。以前 PPO 需要训练多个模型 —— 现在移除了奖励模型和价值模型,便可以节省内存并加快速度。

RLVR(可验证奖励的强化学习)允许我们根据易于验证解答的任务来奖励模型。例如:

  • 数学等式可以轻松验证,如 2+2 = 4。
  • 代码输出可以验证是否正确执行。
  • 设计可验证的奖励函数可能很困难,因此大多数示例都与数学或代码相关。
  • GRPO 的用例不仅限于代码或数学 —— 它的推理过程可以增强电子邮件自动化、数据库检索、法律和医学等任务,并根据数据集和奖励函数显著提高准确性 —— 诀窍在于定义一个规则 —— 即一系列较小的可验证奖励,而不是最终的单一奖励。例如,OpenAI 也在其强化学习微调 (RFT) 中用到了这一点。

为什么使用「组相对」?

GRPO 完全移除了价值模型,但我们仍然需要根据当前状态估算「平均奖励」。

诀窍在于对 LLM 进行采样!然后,我们通过统计多个不同问题的采样过程来计算平均奖励。

例如,对于「What is 2 + 2?」,我们采样 4 次。我们可能得到 4、3、D、C。然后,我们计算每个答案的奖励,计算平均奖励和标准差,最后用 Z 分数进行标准化!

GRPO计算公式
GRPO计算公式

PPO是一种高效、可靠的强化学习算法,属于策略梯度家族的一部分。由于其高效和稳定的性质,PPO算法在各种强化学习任务中都有广泛的应用。GPRO 将策略参数约束在Grassmann流形上,利用几何结构优化。在流形空间内优化策略,保持参数的正交性或子空间结构。 两者可互补:例如用 PPO 做粗调,GRPO 做精调。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、背景
    • 强化学习的核心组成
      • 奖励(Reward) vs. 长期收益
  • 二、常用强化学习算法
    • 1. 核心区别
    • 3. 优缺点
    • 4. 混合方法
  • 三、DeepSeek中强化学习的应用原理
    • 1. RLHF
    • 2. PPO
    • 3. RLHF + PPO技术应用
    • 4. GRPO + RLVR
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档