从零推导贝尔曼方程:强化学习中的价值函数与策略优化
1. 强化学习中的价值函数基础想象你正在玩一个迷宫游戏每走一步都会消耗体力找到出口能获得大奖。这时候你会想**从当前位置出发最终能获得多少奖励这个问题的答案就是价值函数Value Function**的核心思想。在强化学习中价值函数分为两种状态价值函数V(s)衡量从状态s出发的长期收益动作价值函数Q(s,a)衡量在状态s执行动作a后的长期收益举个例子自动驾驶汽车在十字路口状态直接通过路口可能获得即时奖励10但急刹车动作虽然当前奖励-2却避免了可能的事故未来奖励100价值函数会综合评估这些即时和未来收益小提示折扣因子γ0.9是常用值就像未来折扣距离现在越远的奖励越不值钱。这和人脑决策机制惊人地相似——我们更看重眼前的收益。2. 马尔可夫决策过程MDP框架MDP是强化学习的数学基石用五元组(S,A,P,R,γ)描述S所有可能状态的集合比如棋盘的所有布局A所有可用动作的集合上下左右移动P状态转移概率执行动作后进入新状态的概率R奖励函数γ折扣因子关键特性是马尔可夫性下一状态只取决于当前状态和动作与历史无关。就像下棋时下一步棋局只由当前局面和你的走法决定。我曾在机器人路径规划项目中踩过一个坑误认为环境完全确定P1。实际测试时发现地板打滑导致转移概率不确定算法表现骤降。这让我深刻理解了准确建模P的重要性。3. 贝尔曼方程的直观理解贝尔曼方程揭示了价值函数的递归本质——当前价值即时奖励未来价值的折扣。就像公司估值企业价值 今年利润 明年估值的折现用迷宫游戏举例出口相邻格子的价值出口奖励比如100前一个格子的价值步数惩罚-1 γ*相邻格子价值依次类推整个迷宫的价值分布就像价值波从出口向外扩散# 价值迭代伪代码示例 def value_iteration(states, actions, P, R, gamma, theta): V {s: 0 for s in states} # 初始化价值函数 while True: delta 0 for s in states: v V[s] # 贝尔曼更新方程 V[s] max([sum(P[s][a][s1]*(R[s][a][s1]gamma*V[s1]) for s1 in states) for a in actions]) delta max(delta, abs(v - V[s])) if delta theta: # 收敛判断 break return V4. 贝尔曼方程的数学推导我们从状态价值定义出发Vπ(s) E[Gt|Sts] E[Rt1 γGt1|Sts] E[Rt1|Sts] γE[Gt1|Sts]第一项即时奖励期望E[Rt1|Sts] Σa π(a|s)Σr p(r|s,a)r第二项未来奖励期望利用马尔可夫性E[Gt1|Sts] Σs p(s|s)Vπ(s) Σa π(a|s)Σs p(s|s,a)Vπ(s)合并得到完整贝尔曼方程Vπ(s) Σa π(a|s)[Σr p(r|s,a)r γΣs p(s|s,a)Vπ(s)]推导技巧提示善用条件期望的分解E[XY] E[X] E[Y]马尔可夫性允许简化条件概率边际化求和消元是处理概率的利器5. 策略评估与改进策略评估就像给学生评分固定策略π教学方案用贝尔曼方程计算Vπ评估学习效果策略改进则是调整教学方案π(s) argmax_a Qπ(s,a) argmax_a Σs p(s|s,a)[r γVπ(s)]实际应用案例 在电商推荐系统中我们定义状态为用户浏览历史动作为推荐商品奖励为用户点击/购买用策略迭代持续优化推荐策略6. 贝尔曼最优方程当策略π达到最优时贝尔曼方程变为V*(s) max_a Σs p(s|s,a)[r γV*(s)]这就像下棋时的最优策略常规玩家思考我这步棋能得多少分高手思考我这步棋后对手最优应对下最终能得多少分收敛性证明关键点贝尔曼算子是压缩映射根据Banach不动点定理必收敛收敛速度与γ成正比7. 实战中的注意事项维度灾难状态空间大时考虑函数近似用神经网络拟合V/Q状态抽象合并相似状态模型未知当P和R未知时用蒙特卡洛采样替代期望计算时序差分学习TD结合动态规划和蒙特卡洛超参数调优γ越大越远视适合长期规划γ越小越短视适合即时奖励场景我在开发游戏AI时发现γ0.95时AI会为长远胜利牺牲小兵而γ0.8时则更计较局部得失。这需要根据游戏特性仔细调整。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2451216.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!