强化学习算法是怎么分类的
1️⃣ 考察意图
面试官想看你是否真正理解强化学习(RL)的分类体系,而不是死记硬背“Model-free vs Model-based”这种空壳。考察类型是概念+工程取舍:刁钻点在于,能否把分类标准(如是否依赖模型、On/Off-policy)与具体算法(DQN、PPO、DPO)对应,并联系到LLM对齐中的实际选择。答好了能展示:对RL基础框架的清晰认知、对算法适用场景的工程判断力,以及从传统RL迁移到LLM领域的思维广度。
2️⃣ 标准答
RL算法可以从三个核心维度分类,每个维度对应不同的工程取舍。
维度一:是否依赖环境模型(Model-based vs Model-free)
- Model-based:学习或已知环境转移概率(P(s'|s,a))和奖励函数(R(s,a)),然后利用模型进行规划。典型代表:AlphaGo用的MCTS(蒙特卡洛树搜索)、Dyna-Q。优点:样本效率高,适合模拟成本低的场景(如棋类游戏)。缺点:模型误差会累积,导致策略偏差;构建准确模型本身很难,尤其在复杂环境(如真实机器人控制)。
- Model-free:不显式建模环境,直接从交互数据中学习策略或价值函数。优点:实现简单,通用性强,无需环境先验知识。缺点:样本效率低,需要大量交互。实际落地的坑:在LLM对齐中,人类偏好环境无法建模(无法写出P(s'|s,a)),所以几乎全用Model-free方法。
维度二:学习目标(Value-based vs Policy-based vs Actor-Critic)
- Value-based:学习状态-动作价值函数Q(s,a),策略由Q值隐式导出(如ε-greedy)。代表:DQN及其变体(Double DQN、Dueling DQN)。优点:利用Bellman方程,方差较低。缺点:只能处理离散动作空间;策略是确定性的,难以处理随机策略。
- Policy-based:直接参数化策略π(a|s),通过梯度上升优化累积奖励。代表:REINFORCE(蒙特卡洛策略梯度)。优点:天然支持连续动作空间和随机策略。缺点:高方差,收敛慢。工程取舍:REINFORCE用完整轨迹计算梯度,方差大但无偏;PPO通过裁剪(clip)限制策略更新步长,牺牲无偏性换取稳定性。
- Actor-Critic:结合两者:Actor(策略网络)负责选动作,Critic(价值网络)评估动作好坏。代表:A2C、A3C、PPO、SAC。优点:兼顾低方差(Critic提供基线)和策略灵活性。实际落地的坑:PPO在LLM对齐中,Critic需要和Actor一样大的模型(如7B参数),导致显存翻倍;实践中常用LoRA微调Critic来缓解。
维度三:数据来源(On-policy vs Off-policy)
- On-policy:学习用的数据必须由当前策略生成。代表:PPO、A2C、REINFORCE。优点:策略更新更稳定,因为数据分布与策略一致。缺点:样本效率低,旧数据不能复用。工程取舍:PPO通过重要性采样(importance sampling)和clip机制,允许在同一个batch上多次更新,但更新次数过多仍会导致策略偏移。
- Off-policy:可以用任意策略生成的数据(包括历史数据)。代表:DQN(经验回放)、SAC、DPO。优点:样本效率高,能复用历史数据。缺点:数据分布与策略不一致,可能导致训练不稳定或发散。实际落地的坑:DQN使用经验回放池,但池中旧数据可能过时,需要优先采样(PER)或混合新鲜数据。
在LLM对齐中的具体应用:
- PPO(On-policy, Actor-Critic):ChatGPT/Claude早期版本使用。在线采样,稳定性好,但需要同时维护Actor和Critic,训练成本高(一次对齐需数万GPU小时)。
- DPO(Off-policy, 偏好优化):直接优化偏好概率,无需Critic。离线训练,样本效率高,但依赖高质量偏好数据,且对数据噪声敏感。工程取舍:DPO省去了Critic和在线采样,但收敛性不如PPO有理论保证;实践中常先用DPO做粗调,再用PPO做精调。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从三个核心维度回答:第一,按是否依赖环境模型,分为Model-based(如MCTS)和Model-free(如PPO),LLM对齐中只能用后者。第二,按学习目标,分为Value-based(DQN)、Policy-based(REINFORCE)和Actor-Critic(PPO),后者是主流。第三,按数据来源,分为On-policy(PPO)和Off-policy(DPO),前者稳定但成本高,后者高效但依赖数据质量。总结一句:分类的核心是理解不同维度的工程取舍,LLM对齐中PPO和DPO是两大支柱。”
4️⃣ 高频追问 & 应对
追问 1:PPO和DPO在LLM对齐中,哪个更好?你选哪个?
应对策略:没有绝对好坏,取决于场景。如果计算资源充足且需要高稳定性(如生产环境),选PPO:它在线采样能实时纠正策略偏差,但需要维护Critic和Reward Model,训练成本高。如果数据质量高且资源有限(如学术实验),选DPO:它离线训练,省去Critic,但依赖偏好数据的覆盖度。实际取舍:我见过团队先用DPO做预对齐(快速收敛),再用PPO做微调(提升鲁棒性),两者互补。如果必须二选一,我会选PPO,因为它的理论收敛性更可靠,且能通过Reward Model控制对齐强度。
追问 2:为什么LLM对齐不用Model-based方法?
应对策略:核心原因是人类偏好环境无法建模。Model-based需要知道P(s'|s,a)和R(s,a),但人类偏好是黑箱:你无法写出“用户对这段回复的满意度”的转移概率。即使尝试用奖励模型近似,误差会累积,导致策略崩溃。工程证据:DeepMind的Sparrow实验尝试过Model-based规划,但效果不如PPO。例外:如果环境是模拟器(如游戏),Model-based(如MuZero)可以高效,但LLM场景不适用。
追问 3:On-policy和Off-policy在样本效率上差多少?给个具体数字。
应对策略:在Atari游戏基准上,DQN(Off-policy)通常需要200M帧(约40小时训练)达到人类水平,而PPO(On-policy)需要400M帧(约80小时),样本效率差2倍。但在LLM对齐中,差距更大:PPO需要在线采样,每次生成文本成本高(如GPT-3一次对齐需数万GPU小时);DPO用离线数据,成本降低约50%。取舍点:Off-policy效率高,但数据分布偏移风险大;On-policy稳定,但成本高。实践中,如果数据量充足(如10万+偏好对),DPO更划算;否则PPO更安全。
5️⃣ 避坑 · 常见错误答法
- ❌ 说“RL算法只分Model-based和Model-free两种” → ✅ 正确切入:必须补充Value-based/Policy-based/Actor-Critic和On/Off-policy两个维度,并说明三者正交(如PPO是Model-free、Actor-Critic、On-policy)。
- ❌ 说“PPO是Off-policy,因为它用了重要性采样” → ✅ 正确切入:PPO虽然用重要性采样复用数据,但数据必须由当前策略生成(或近似),本质是On-policy;真正的Off-policy(如DQN)可以复用任意历史数据。
- ❌ 说“LLM对齐只用PPO” → ✅ 正确切入:必须提到DPO、GRPO等离线方法,并说明PPO和DPO的工程取舍(成本 vs 稳定性)。
6️⃣ 简历呼应
- 如果你有RL项目经验(如游戏AI):从“我在CartPole上对比了DQN和PPO的收敛曲线”切入,强调你理解On/Off-policy的样本效率差异,并延伸到LLM对齐中的成本权衡。
- 如果你只做过传统NLP(如文本分类):用“监督学习 vs RL”类比:监督学习是Off-policy(数据固定),RL的On-policy需要在线采样,类似主动学习。强调你理解数据分布偏移的坑。
- 如果你是校招无项目:聚焦“PPO论文复现”:在Gym上实现PPO,对比REINFORCE的方差问题,并说明为什么PPO的clip机制是工程关键。展示你对算法细节的掌握。
- 《Reinforcement Learning: An Introduction》(Sutton & Barto)第1-13章:RL分类体系经典教材
- 《Proximal Policy Optimization Algorithms》(Schulman et al., 2017):PPO论文,理解On-policy和clip机制
- 《Direct Preference Optimization》(Rafailov et al., 2023):DPO论文,理解Off-policy偏好优化
- 《Mastering the Game of Go with Deep Neural Networks and Tree Search》(Silver et al., 2016):Model-based(MCTS)经典案例
- 《Human-level control through deep reinforcement learning》(Mnih et al., 2015):DQN论文,理解Off-policy和Experience Replay