PPO
Created|Updated|RL
|Post Views:
前言
PPO是目前最好用的on-policy的算法,之前想学TRPO发现太复杂了,这里开个新坑
替代优势
首先,考虑一个问题,对于策略参数
定义优势函数为:
而替代优势可以写为:
如果引入无限长度的折扣分布,那么上面的式子可以把期望展开成:
由于我们希望这里面两个策略离得非常近,所以使用
重新把这个式子写成期望的形式:
后面那一项被称为替代优势,即:
PPO Penalty
这里面的想法很简单,使用下面这个式子来控制梯度的调整:
这里面的
Author: Eric Li
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles
2024-10-17
TRPO
从动作优势函数说起首先回顾一下动作优势函数,即:这里的优势表示的是在状态 下面选择动作 比选择平均动作的优势 援引一张从知乎文章知乎-TRPO中的图: TRPO起始式的推导TRPO的起点是表达式这里就给出了在策略 的基础上通过采样 来计算 累计回报的优势的计算方法下面来证明这个式子 引入折扣访问频率定义那么 式可以写成:最后一步是交换求和顺序,先对 求和,剩下的就是定义了 Skill oneTRPO的第一个技巧是,每次更新的策略是临近的,换言之 和 的距离是不远的,因此可以直接近似替代,换个写法,那么 式直接可以改写为:
2024-03-20
Gymnasium Environment Configuration
强化学习环境——gymnasium配置注意,现在已经是2024年了,建议使用最新的gymnasium而不是gym 配置正确的python版本现在是2024年的3月20日,目前的gymnasium不支持python3.12,建议使用conda创建一个3.11的环境: 1conda create -n RL python=3.11 然后进入这个环境中: 1conda activate RL 如果使用的是Windows下的powershell,此时你的终端最前面没有显示例如: 1(RL) xxx@xxx.xxx.xxx.xxx:~ 而是: 1xxx@xxx.xxx.xxx.xxx:~ 的话,建议先运行: 1conda init 然后使用 1conda info 查看一下现在的环境是不是激活成功了 安装gymnasium这里有两个坑,第一个是直接安装 gymnasium 只是装了个白板,里面啥也没有,需要安装的是 gymnasium[atari] 和 gymnasium[accept-rom-license]记住,两个都要装 第二个坑是不知道为什么用conda...
2024-03-21
Tmux 使用简介
tmux简介tmux是链接服务器跑服务的神器,可以在取消链接之后继续运行想要运行的程序 使用流程安装tmux使用 1sudo apt install tmux 即可 新建窗口1tmux new -s NAME 即可创建一个名为name的session,然后在里面运行你的指令即可 然后就可以直接关掉这个链接了 退出窗口如果想要退出当前的tmux session 可以先按下 ctrl + B 然后松开(这个时候没有变化是正常的)然后按下 D 就可以在不终止当前任务的情况下退出了。如果想直接终止这个任务,可以按下 ctrl + B + D 即不松手就行了。 关闭session使用命令 1tmux ls 查看当前在运行的session,使用 1tmux kill-sesion -t NAME 关掉session就可以了 恢复session使用命令 1tmux a -t NAME 可以恢复一个session
2024-03-03
Dynamic Programming
递推表达式通过之前的定义可以得到一个递推版本的DP状态转移方程: 这里的 代表的是 步,具体的含义是可以通过 次 action 到达这个状态。所以上面的更新就是从 步的价值函数去更新 步的价值函数这里的并不是Bellman 方程,只是递推表达式,算法要求是到最后接近满足Bellman方程 注意,这里的更新是和策略 有关的,是在策略确定的情况下,通过更新的方式来确定真正的状态价值函数。 具体的算法如图: 在递推的过程中改进策略在迭代的过程中,如果已知策略 的价值函数 希望知道在某个状态 下选择一个不同于 的动作 是否会带来改善,这种策略的价值为:如果上面的式子的值大于目前的状态价值函数 那么就更新此时的策略为 而由于所有的策略的状态价值函数存在偏序关系,也就是说存在 upper bound 那么就可以利用这一点证明,每次取贪心的策略 即$$\pi’ = \mathop{argmax}a q_\pi(s,a) = \mathop{argmax}a \mathbb E[R{t + 1} + \gamma v_\pi (S{t +1}) | S_t...
2024-03-02
Finite Markov Decision
马尔科夫模型中与环境交互的定义Agent做出动作 后,Environment会反馈一个状态 和一个奖励 给到Agent,而Agent的目标还是最大化奖励之和 有限马尔科夫决策过程的规定在有限马尔科夫决策过程中,所有的 states,actions,rewards 的集合都是有限的,而随机变量 和 被定义为仅仅依靠前面一次的state和action 的离散的概率分布,即只有上一次的状态和选择会影响当前的状态和奖励。 转移函数定义转移函数 :转移函数 是一个确定性的函数,即在同一个马尔科夫随机过程中,这个函数是不会发生变化的 该函数有如下的性质: 奖励期望的定义在MDP中,奖励的期望被定义为 如何确定合理的奖励这里的奖励应该设置成为学习的额最终目标,例如如果是训练围棋,那么奖励应该设置为获得胜利,只有获得胜利的时候才会得到1的奖励,不能设置为吃子,这样训练的结果会变成一个以吃子为目标而不是以获胜为目标的算法。 两种不同的任务类型可以分成 episode 的如果 agent 与 environment 的交互可以自然地分成多个 episode...
2024-02-28
Introduction to reinforcement learning
Introduction强化学习的基本思想是从与环境的互动中学习,与其他学习方式最大的两个区别就是: trial-and-error search delayed reward 基本元素 policy reward signal value function a model of environment policy指agent每次在特定的时间下选择action的策略 reward signal指的是整个强化学习的目标,每一次做出决策之后,环境都会给予一个反馈,这里的reward signal是及时反馈 value function这里的value function是长期的反馈,是用于衡量一个决策的长期收益的。 value的定义是指未来获得的奖励(reward)的总和的期望。value是基于reward的,只有有reward才能衡量value Modelmodel是用来模拟环境变化的,是用来做计划的,强化学习算法可以分为model-based和model-free的
Announcement
The blog is now under construction