基于策略的深度强化学习:理论部分
PPO是基于策略的强化学习,本文开始讲基于策略的强化学习,本文主要是理论部分
1 策略(policy):
策略是智能体的动作模型,它决定了智能体的动作。它其实是一个函数,用于把输入的状态变成动作。智能体会用策略来选取下一步的动作:
策略可以分为两种:
2 策略函数
上一篇文章DQN讲到最优动作价值函数 Q ∗ ( s , a ) Q_∗(s,a) Q∗(s,a)可以用来做控制,显然策略函数 π ( a ∣ s ) \pi(a|s) π(a∣s)也可以用来做控制.
基于价值的深度强化学习:DQN
然后就会有下面的问题:
3 目标函数
策略函数可以作为actor与环境交互,形成轨迹 τ \tau τ
给定策略网络的参数 θ \theta θ,就可以计算某个轨迹 τ \tau τ 发生的概率为:
在交互的过程中还会产生奖励:
对于一条完整的轨迹𝜏的奖励𝑅(𝜏):
显然轨迹 τ \tau τ的分布服从 p θ ( τ ) p_\theta(\tau) pθ(τ),既然 R ( τ ) R(\tau) R(τ)是一个随机变量,那么其期望:
显然,我们希望 R ‾ θ \overline{R}_\theta Rθ越大越好,所以目标函数是:
m a x R ‾ θ max \quad \overline{R}_\theta maxRθ
4 求梯度
需要用到梯度上升来进行参数更新:
接下来的问题就是怎么计算目标函数的梯度的问题:
将前面 p θ ( τ ) p_\theta(\tau) pθ(τ)的公式带入 ∇ l o g p θ ( τ ) \nabla log p_\theta(\tau) ∇logpθ(τ)得到:
从 p θ ( τ ) p_\theta(\tau) pθ(τ)中采样N个轨迹 τ \tau τ(这个过程其实就是基于当前策略网络𝜋(𝑎|𝑠;𝜃)与环境交互,获取N条轨迹):
把前面的串起来就是:
对此进行一个直观解释就是:
5 基于策略的深度强化学习算法1
基于上面的内容,形成初步的基于策略的强化学习算法:
6 优势函数
上面的算法的其中一个问题在于调节粒度太粗了:对于同一条轨迹,肯定有的动作好,有的动作坏。但是如果按照上面的算法,同一条轨迹内的 R ( τ n ) R(\tau^n) R(τn)是一样的,导致不管是好的还是坏的动作都统一增加概率或者减小概率。
所以我们希望 R ( τ n ) R(\tau^n) R(τn)是和状态与动作相关的,而不是整条轨迹,我们把这个可以记作 A ( s t , a t ) A(s_t,a_t) A(st,at),把他称之为优势函数。如果这个优势函数带参数,可以写作 A ω ( s t , a t ) A^\omega (s_t,a_t) Aω(st,at)
优势函数的意义是,假设我们在某一个状态 s t s_t st 执行某一个动作 a t a_t at ,相较于其他可能的动作, a t a_t at 有多好。
7 Reinforce 与AC算法

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)