强化学习基础:从MDP到DQN的智能决策实践 1. 强化学习入门从零开始理解智能决策第一次接触强化学习是在2016年AlphaGo战胜李世石的时候当时就被这种通过试错学习的机制深深吸引。强化学习不同于我们熟悉的监督学习它更像是一个不断探索环境、通过反馈调整策略的学习过程。想象一下教小孩学走路不需要告诉他具体怎么迈腿而是在他成功迈出一步时给予鼓励跌倒时给予提醒——这就是强化学习的核心思想。在实际工业应用中强化学习已经渗透到许多领域从游戏AI如Dota2的OpenAI Five到推荐系统优化从机器人控制到金融交易策略。我曾在电商平台用强化学习优化过促销策略相比传统A/B测试它能更快找到最优方案并动态调整。不过强化学习也有其复杂性需要理解马尔可夫决策过程、价值函数、策略优化等概念这正是本系列笔记要系统梳理的内容。2. 强化学习基础框架解析2.1 马尔可夫决策过程(MDP)核心要素强化学习的数学基础是马尔可夫决策过程包含五个关键要素(S,A,P,R,γ)状态空间(State Space)S比如围棋的棋盘布局动作空间(Action Space)A比如棋子的可落子位置状态转移概率P(s|s,a)执行动作a后从状态s转移到s的概率奖励函数R(s,a,s)比如围棋中获胜得1分失败得-1分折扣因子γ∈[0,1]平衡即时奖励和长期收益实际经验在电商推荐场景中状态可以是用户最近10次点击记录动作是推荐某个商品奖励是用户是否购买。设置合理的奖励函数是关键——我曾把点击率作为奖励结果模型学会了推荐标题党商品后来改为点击且浏览超过30秒才得到真正有价值的结果。2.2 值函数与贝尔曼方程值函数分为状态值函数V(s)和动作值函数Q(s,a)表示从某状态/状态-动作对开始能获得的期望回报。它们满足贝尔曼方程V(s) Σ π(a|s) * Σ P(s|s,a)[R(s,a,s) γV(s)]这个递归关系是动态规划和时序差分算法的基础。在实际编程时我常用表格存储离散状态的V值但对于像自动驾驶这种连续状态空间就必须用神经网络近似值函数即DQN。3. 经典算法实现与调参心得3.1 Q-Learning实战示例import numpy as np # 初始化Q表 q_table np.zeros((state_size, action_size)) # 超参数 alpha 0.1 # 学习率 gamma 0.9 # 折扣因子 epsilon 0.1 # 探索率 for episode in range(1000): state env.reset() done False while not done: # ε-greedy策略 if np.random.random() epsilon: action env.action_space.sample() else: action np.argmax(q_table[state]) next_state, reward, done, _ env.step(action) # Q值更新 q_table[state, action] (1 - alpha) * q_table[state, action] \ alpha * (reward gamma * np.max(q_table[next_state])) state next_state调参经验alpha太大容易震荡太小收敛慢gamma接近1时模型更远视。我在机器人路径规划项目中发现gamma0.9时既能避免撞墙短期回报又能找到最短路径长期回报。3.2 Policy Gradient的实战技巧与值函数方法不同策略梯度直接优化策略π(a|s)。其梯度公式为∇J(θ) E[Σ ∇logπ(a|s) * Q(s,a)]实现时要注意使用基线如状态值函数减少方差适合连续动作空间问题如机械臂控制建议配合Adam优化器学习率设为3e-4我曾用PPO算法训练游戏AI发现以下trick很有效将reward缩放到[-1,1]区间使用多个环境并行采集样本每隔10个episode测试一次模型4. 深度强化学习进阶4.1 DQN及其变种比较DQN通过经验回放和固定目标网络解决神经网络训练不稳定的问题。其关键改进包括算法核心创新适用场景我的使用体验DQN经验回放, 目标网络离散动作空间训练Atari游戏时波动较大Double DQN解耦动作选择和值评估高估问题严重时在股票交易中效果提升15%Dueling DQN分离状态值和优势函数某些动作影响小时无人机导航效果显著Rainbow整合多种改进复杂环境需要大量算力但性能最好4.2 Actor-Critic框架解析结合值函数和策略梯度的优势典型代表是A3C和SACA3C异步优势Actor-Critic多个worker并行采集经验使用优势函数AQ-V减少方差我在广告竞价系统中使用训练速度提升8倍SACSoft Actor-Critic最大化期望回报同时最大化熵自动调节温度参数非常适合机械臂这类需要探索的任务5. 工程实践中的挑战与解决方案5.1 奖励函数设计陷阱常见问题及解决方案稀疏奖励问题解决方案分层强化学习、好奇心驱动探索案例在迷宫导航中我给靠近目标设计中间奖励奖励劫持(Reward Hacking)现象模型找到漏洞获取高奖励预防设计多维度奖励函数案例我设计的电商推荐系统曾因过度促销被扣款奖励尺度问题最佳实践使用reward scaling或normalization经验值单个step的reward绝对值建议在0.1-10之间5.2 训练不稳定问题排查清单遇到训练发散时我通常会检查数据方面是否出现了NaN/Inf加入数值检查奖励是否没有合理缩放观察reward幅度模型方面梯度是否爆炸加入梯度裁剪网络是否太深先尝试浅层网络算法方面学习率是否过高尝试减小10倍批次大小是否合适从256开始尝试6. 前沿方向与个人实践最近在尝试的两大方向多智能体强化学习(MARL)应用在交通信号灯协同控制项目使用MADDPG算法需要处理非平稳性问题元强化学习(Meta-RL)让模型学会快速适应新任务在机器人抓取不同物体时效果显著需要大量多样化训练环境一个有趣的发现在模拟环境中表现完美的策略部署到真实世界时常会失败。我现在会预留30%的预算用于sim-to-real的适配工作包括添加随机域随机化在策略输入中加入噪声设计渐进式的迁移方案

本月热点