<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://xuemei-ye.github.io/</id><title>amor sapientiae</title><subtitle>A minimal, responsive and feature-rich Jekyll theme for technical writing.</subtitle> <updated>2025-11-01T10:16:25+00:00</updated> <author> <name>xuemei-ye</name> <uri>https://xuemei-ye.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://xuemei-ye.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://xuemei-ye.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2025 xuemei-ye </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>强化学习基础五：策略梯度数据效率和更新稳定性|TRPO &amp; PPO</title><link href="https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%BA%94-%E7%AD%96%E7%95%A5%E6%A2%AF%E5%BA%A6%E6%95%B0%E6%8D%AE%E6%95%88%E7%8E%87%E5%92%8C%E6%9B%B4%E6%96%B0%E7%A8%B3%E5%AE%9A%E6%80%A7-TRPO-&amp;-PPO/" rel="alternate" type="text/html" title="强化学习基础五：策略梯度数据效率和更新稳定性|TRPO &amp;amp; PPO" /><published>2025-11-01T02:00:00+00:00</published> <updated>2025-11-01T10:15:26+00:00</updated> <id>https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%BA%94-%E7%AD%96%E7%95%A5%E6%A2%AF%E5%BA%A6%E6%95%B0%E6%8D%AE%E6%95%88%E7%8E%87%E5%92%8C%E6%9B%B4%E6%96%B0%E7%A8%B3%E5%AE%9A%E6%80%A7-TRPO-&amp;-PPO/</id> <content type="text/html" src="https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%BA%94-%E7%AD%96%E7%95%A5%E6%A2%AF%E5%BA%A6%E6%95%B0%E6%8D%AE%E6%95%88%E7%8E%87%E5%92%8C%E6%9B%B4%E6%96%B0%E7%A8%B3%E5%AE%9A%E6%80%A7-TRPO-&amp;-PPO/" /> <author> <name>xuemei-ye</name> </author> <category term="强化学习" /> <summary>TRPO 策略梯度公式为： 可以看到，这里是对当前策略求期望，理论上要求每采集一批数据，更新之后，使用新策略跟环境交互，重新采集数据进行更新。但实践中，出于效率和成本考量，通常一个版本策略跑一段时间数据后，才进行采样，在这批数据上进行多次梯度更新。这样采样数据和数据下不断更新的策略有差异。导致分布偏移，数据和目标策略不一致，引入重要性采样只能修正动作分布差异，不能修正状态分布带来的差异，如果新旧策略差异太大，方差增加，训练极不稳定，且会出现更新过程效果断崖式下降的问题。 TRPO（trust region policy optimization） 的设计就是为了解决这个问题，在旧策略的采样数据上优化（保持采样效率），约束新策略不要离旧策略太远（保持分布一致性），这样就能在有限数据上更新多次，且保持性能稳定。 trpo的核心思想是，在约束策略参数更新范围的同时，在这个更新范...</summary> </entry> <entry><title>强化学习基础四：策略梯度|REINFORCE &amp; QAC &amp; A2C &amp; DPG &amp; DDPG</title><link href="https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E5%9B%9B-%E7%AD%96%E7%95%A5%E6%A2%AF%E5%BA%A6-REINFORCE-&amp;-QAC-&amp;-A2C-&amp;-DPG-&amp;-DDPG/" rel="alternate" type="text/html" title="强化学习基础四：策略梯度|REINFORCE &amp;amp; QAC &amp;amp; A2C &amp;amp; DPG &amp;amp; DDPG" /><published>2025-10-16T02:00:00+00:00</published> <updated>2025-10-16T02:00:00+00:00</updated> <id>https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E5%9B%9B-%E7%AD%96%E7%95%A5%E6%A2%AF%E5%BA%A6-REINFORCE-&amp;-QAC-&amp;-A2C-&amp;-DPG-&amp;-DDPG/</id> <content type="text/html" src="https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E5%9B%9B-%E7%AD%96%E7%95%A5%E6%A2%AF%E5%BA%A6-REINFORCE-&amp;-QAC-&amp;-A2C-&amp;-DPG-&amp;-DDPG/" /> <author> <name>xuemei-ye</name> </author> <category term="强化学习" /> <summary>策略梯度原理 前面的方法都是基于贝尔曼方程，贝尔曼方程定义了状态及动作价值，前述算法通过经验数据来估计动作值，或者通过RM算法来求解贝尔曼最优方程，进而发展出时间差分的算法，然后在此基础上，引入神经网络，经验回放的技术，来解决规模更大更复杂的问题。这些方法的本质是通过状态动作值估计和优化，间接的优化策略，进而逼近最优策略。这些方法称作 value-based。 value-based 方法算动作值时需要枚举动作，只适用于离散动作和确定性策略。确定性策略输出具体的动作，而随机策略输出动作的概率分布。 当 state value 发生重叠，也就是不同的 state 由于编码后计算得到相同的价值时，用value-based方法就无法得到最优策略，当只有部分观测，无法满足 markov 性时，或者用的 value approximation function 没有很好的近似真实valu...</summary> </entry> <entry><title>强化学习基础三：基于值函数的策略优化|Sarsa &amp; Q-learning &amp; DQN</title><link href="https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%B8%89-%E5%9F%BA%E4%BA%8E%E5%80%BC%E5%87%BD%E6%95%B0%E7%9A%84%E7%AD%96%E7%95%A5%E4%BC%98%E5%8C%96-Sarsa-&amp;-Q-learning-&amp;-DQN/" rel="alternate" type="text/html" title="强化学习基础三：基于值函数的策略优化|Sarsa &amp;amp; Q-learning &amp;amp; DQN" /><published>2025-10-14T06:00:00+00:00</published> <updated>2025-10-17T14:10:28+00:00</updated> <id>https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%B8%89-%E5%9F%BA%E4%BA%8E%E5%80%BC%E5%87%BD%E6%95%B0%E7%9A%84%E7%AD%96%E7%95%A5%E4%BC%98%E5%8C%96-Sarsa-&amp;-Q-learning-&amp;-DQN/</id> <content type="text/html" src="https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%B8%89-%E5%9F%BA%E4%BA%8E%E5%80%BC%E5%87%BD%E6%95%B0%E7%9A%84%E7%AD%96%E7%95%A5%E4%BC%98%E5%8C%96-Sarsa-&amp;-Q-learning-&amp;-DQN/" /> <author> <name>xuemei-ye</name> </author> <category term="强化学习" /> <summary>Sarsa 时间差分提供了给定策略下，状态价值函数评估的方法，是后续TD算法的基础。由于无模型环境中，并不知道在状态 s 选择动作 a 后转移到不同状态的概率，以及获取奖励的概率，也就无法根据 state-value 来选择动作， 所以估计的状态价值无法直接用于策略提升。需要估计各个状态-动作对的动作价值，拟合动作值函数，然后结合 policy-impovement 方法来进行策略优化。 动作值函数更新公式： 之所以叫 sarsa，是因为使用了 (st; at; rt+1; st+1; at+1) 可以从 RM 算法求解动作值形式的贝尔曼方程中推导得出，也能够从状态值函数的TD算法中推导。 估计出给定策略的动作值之后，结合贪心算法或 epislon-greedy 算法来选择动作，进行策略提升，就是完整的策略优化算法。算法流程： epislon-...</summary> </entry> <entry><title>强化学习基础二：无模型的状态价值估计|MC &amp; TD</title><link href="https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%BA%8C-%E6%97%A0%E6%A8%A1%E5%9E%8B%E7%9A%84%E7%8A%B6%E6%80%81%E4%BB%B7%E5%80%BC%E4%BC%B0%E8%AE%A1/" rel="alternate" type="text/html" title="强化学习基础二：无模型的状态价值估计|MC &amp;amp; TD" /><published>2025-10-05T07:00:00+00:00</published> <updated>2025-11-01T10:15:26+00:00</updated> <id>https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%BA%8C-%E6%97%A0%E6%A8%A1%E5%9E%8B%E7%9A%84%E7%8A%B6%E6%80%81%E4%BB%B7%E5%80%BC%E4%BC%B0%E8%AE%A1/</id> <content type="text/html" src="https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%BA%8C-%E6%97%A0%E6%A8%A1%E5%9E%8B%E7%9A%84%E7%8A%B6%E6%80%81%E4%BB%B7%E5%80%BC%E4%BC%B0%E8%AE%A1/" /> <author> <name>xuemei-ye</name> </author> <category term="强化学习" /> <summary>前文介绍的迭代法中使用到了 p(r\s,a)，这是关于环境的信息，包含了完备的状态转移和动作-奖励的概率分布，是基于模型的算法（model-based），但实际问题中，很多时候并不能拿到完备的概率分布，对于这个问题，发展出两种方式，一种是先用环境相关的数据估计状态-动作和奖励间的概率分布，在基于这个模型来迭代策略，一种是 model-free 的算法，model-free 相对更加实用，蒙特卡洛和时间差分是model-free算法中的两种代表性思路。 蒙特卡洛算法 蒙特卡洛算法（monte-carlon）算法是将迭代法用于无模型的情况中，value-iteration 和 policy-iteration 核心都是求解 q(s,a)，所以接下来的问题是，如何在 model-free 的情况下估计 q(s,a)？ 结合动作值函数的定义和大数定律： 得出用经验数据来估计动...</summary> </entry> <entry><title>强化学习基础一：基于模型的状态价值估计| 迭代法求解贝尔曼方程</title><link href="https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%B8%80-%E5%A6%82%E4%BD%95%E7%94%A8%E8%BF%AD%E4%BB%A3%E6%B3%95%E6%B1%82%E8%A7%A3%E8%B4%9D%E5%B0%94%E6%9B%BC%E6%96%B9%E7%A8%8B/" rel="alternate" type="text/html" title="强化学习基础一：基于模型的状态价值估计| 迭代法求解贝尔曼方程" /><published>2025-10-03T16:00:00+00:00</published> <updated>2025-10-14T06:07:19+00:00</updated> <id>https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%B8%80-%E5%A6%82%E4%BD%95%E7%94%A8%E8%BF%AD%E4%BB%A3%E6%B3%95%E6%B1%82%E8%A7%A3%E8%B4%9D%E5%B0%94%E6%9B%BC%E6%96%B9%E7%A8%8B/</id> <content type="text/html" src="https://xuemei-ye.github.io/posts/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80%E4%B8%80-%E5%A6%82%E4%BD%95%E7%94%A8%E8%BF%AD%E4%BB%A3%E6%B3%95%E6%B1%82%E8%A7%A3%E8%B4%9D%E5%B0%94%E6%9B%BC%E6%96%B9%E7%A8%8B/" /> <author> <name>xuemei-ye</name> </author> <category term="强化学习" /> <summary>强化学习基础系列博客从强化学习最基本的概念说起，梳理强化学习是怎么从最简单的q-table演变到近年来常用的ddpg、ppo等算法，描绘出各个算法之间的脉络和内在关联，展现各个算法面临的问题，以及在基础上延伸出的新算法，希望能让读者看到强化学习面临的问题，算法演进的全貌和动力。这些文章避开强化学习诸多概念定义，只介绍少量必要概念，更多的集中于核心算法的演变思路。 强化学习基本概念 强化学习这个概念来源于行为心理学中的“效果律”（试错法），直观地看，人跟环境交互，某些行为会带来奖励，某些行为带来惩罚，人会加强带来奖励的行为，减弱带来惩罚的行为。强化学习的基本思路也是如此，根据环境的反馈，不断优化行为，使得最终的奖励最大化。 强化学习的核心问题便集中在这个模式之中，比如如何构建模拟环境，能够更真实的模拟现实环境中的状态和反馈，进而训练能够应用到现实环境中；以及如何构建奖励，如何设计...</summary> </entry> </feed>
