深度强化学习中的好奇心驱动探索(Curiosity-Driven Exploration)算法原理与内在奖励机制
字数 1409 2025-11-11 17:16:22
深度强化学习中的好奇心驱动探索(Curiosity-Driven Exploration)算法原理与内在奖励机制
题目描述
在深度强化学习(如DQN、PPO等)中,智能体在稀疏奖励环境下(如只在完成任务时获得奖励)难以有效探索环境。好奇心驱动探索通过引入"内在奖励"(Intrinsic Reward)激励智能体探索未知状态,提升学习效率。其核心问题是:如何量化"好奇心"?如何设计内在奖励避免智能体陷入无意义探索?
解题过程
-
问题分析
- 稀疏奖励问题:环境反馈稀少(如《超级马里奥》中仅通关时获得奖励),智能体难以通过随机探索找到有效策略。
- 传统解决方案(如ε-贪婪)在复杂环境中效率低下,需引入基于预测误差的内在奖励。
-
核心思想:预测误差作为好奇心
- 假设:智能体对环境的"陌生感"可通过预测下一状态的能力衡量。
- 方法:训练一个动态模型(Dynamic Model)预测当前状态\(s_t\)和动作\(a_t\)下的下一状态\(s_{t+1}\),将预测误差作为内在奖励:
\[ r_t^i = \eta \| \hat{s}_{t+1} - s_{t+1} \|^2 \]
其中$\eta$为缩放系数,$\hat{s}_{t+1}$为预测状态。
- 算法结构:好奇心驱动探索框架
- 智能体策略网络(Policy Network):输出动作\(a_t\),接受总奖励\(r_t = r_t^e + r_t^i\)(\(r_t^e\)为外部奖励)。
- 动态模型(Inverse Dynamics Model):
- 输入:当前状态\(s_t\)和下一状态\(s_{t+1}\)。
- 输出:预测动作\(\hat{a}_t\),通过最小化预测动作与真实动作的误差训练:
\[ \mathcal{L}_{\text{inverse}} = \|\hat{a}_t - a_t\|^2 \]
- 目的:提取状态的特征表示,避免关注无关视觉细节(如移动的云朵)。
-
训练流程
- 步骤1:智能体与环境交互,收集轨迹数据\((s_t, a_t, s_{t+1})\)。
- 步骤2:使用动态模型计算内在奖励\(r_t^i\),更新总奖励。
- 步骤3:用总奖励训练策略网络(如PPO算法),同时用收集的数据训练动态模型。
- 步骤4:定期重置动态模型,防止智能体过度优化内在奖励(如反复撞击墙壁)。
-
关键改进:避免"电视噪音"问题
- 问题:若状态包含随机元素(如电视雪花屏),预测误差始终很高,导致智能体沉迷于无意义状态。
- 解决方案:
- 使用特征提取器(如CNN)将状态编码为抽象特征\(\phi(s_t)\)。
- 动态模型预测特征空间的变化:\(\hat{\phi}(s_{t+1}) = f(\phi(s_t), a_t)\)。
- 内在奖励改为特征预测误差:\(r_t^i = \eta \| \hat{\phi}(s_{t+1}) - \phi(s_{t+1}) \|^2\)。
-
实验效果
- 在《超级马里奥》《蒙特祖玛的复仇》等游戏中,好奇心驱动探索能显著提高通关率。
- 智能体自发学会跳跃、避开障碍等复杂行为,无需外部奖励指导。
总结
好奇心驱动探索通过动态模型的预测误差量化智能体对环境的未知程度,结合内在奖励与外部奖励解决稀疏奖励问题。其核心在于设计鲁棒的特征表示避免无关干扰,实现高效探索。