强化学习3(策略学习)

策略学习

前面已经学习过了策略函数 π ( a ∣ s ) \pi(a|s) π(as),这是一个概率密度函数。只要有了一个好的策略函数,我们就可以根据策略函数自动控制智能体运动,所以下面我们就讨论如何找出一个函数来近似策略函数。

策略网络(policy network)

这里就是利用神经网络 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ)来近似策略函数 π ( a ∣ s ) \pi(a|s) π(as),其中 θ \theta θ是神经网络的参数,我们主要是通过学习来改进 θ \theta θ

策略网络

使用 s o f t m a x softmax softmax激活函数是为了使得输出的概率值和为1(即归一化)。

策略学习

前面我们已经使用神经网络来将近似策略函数 π ( a ∣ s ) \pi(a|s) π(as),下面使用近似的策略函数来表示状态价值函数。
V ( s t ; θ ) = ∑ a π ( a ∣ s t ; θ ) ⋅ Q π ( s t , a ) V(s_t;\theta)= {\textstyle \sum_{a}}\pi(a|s_t;\theta)\cdot Q_{\pi}(s_t,a) V(st;θ)=aπ(ast;θ)Qπ(st,a)

θ \theta θ就是神经网络中的参数。我们通过改进 θ \theta θ的值来使得 V V V的值变大
J ( θ ) = E S [ V ( S ; θ ) ] J(\theta)=\mathbb{E}_S[V(S;\theta)] J(θ)=ES[V(S;θ)]
通过求S的期望,我们可以把S消掉,最后只剩下 θ \theta θ,所以最终目标就是不断改进 θ \theta θ,使得 J ( θ ) J(\theta) J(θ)变大

策略梯度(policy gradient)

首先观测到一个状态 s s s
∂ V ( s ; θ ) ∂ θ = ∂ ∑ a π ( a ∣ s t ; θ ) ⋅ Q π ( s t , a ) ∂ θ = ∑ a ∂ π ( a ∣ s t ; θ ) ⋅ Q π ( s t , a ) ∂ θ \frac{\partial{V(s;\theta)}}{\partial{\theta}}=\frac{\partial{{\textstyle \sum_{a}}\pi(a|s_t;\theta)\cdot Q_{\pi}(s_t,a)}}{\partial{\theta}} \\ ={\textstyle \sum_{a}} \frac{\partial{\pi(a|s_t;\theta)\cdot Q_{\pi}(s_t,a)}}{\partial{\theta}} θV(s;θ)=θaπ(ast;θ)Qπ(st,a)=aθπ(ast;θ)Qπ(st,a)
然后我们假设 Q π Q_{\pi} Qπ不依赖于 θ \theta θ
= ∑ a ∂ π ( a ∣ s t ; θ ) ∂ θ ⋅ Q π ( s t , a ) = ∑ a π ( a ∣ s t ; θ ) ⋅ ∂ l n π ( a ∣ s t ; θ ) ∂ θ ⋅ Q π ( s t , a ) = E A [ ∂ l n π ( a ∣ s t ; θ ) ∂ θ ⋅ Q π ( s t , a ) ] ={\textstyle \sum_{a}} \frac{\partial{\pi(a|s_t;\theta)}}{\partial{\theta}}\cdot Q_{\pi}(s_t,a) \\ ={\textstyle \sum_{a}} \pi(a|s_t;\theta) \cdot \frac{\partial{ln\pi(a|s_t;\theta)}}{\partial{\theta}}\cdot Q_{\pi}(s_t,a) \\ =\mathbb{E}_{A}[ \frac{\partial{ln\pi(a|s_t;\theta)}}{\partial{\theta}}\cdot Q_{\pi}(s_t,a)] =aθπ(ast;θ)Qπ(st,a)=aπ(ast;θ)θl(ast;θ)Qπ(st,a)=EA[θl(ast;θ)Qπ(st,a)]
计算离散的值,如超级玛丽中,动作action只有{“left”,“right”,“up”}这三种状态,我们可以利用上面的公式 ∂ V ( s ; θ ) ∂ θ = ∑ a ∂ π ( a ∣ s t ; θ ) ∂ θ ⋅ Q π ( s t , a ) \frac{\partial{V(s;\theta)}}{\partial{\theta}}={\textstyle \sum_{a}} \frac{\partial{\pi(a|s_t;\theta)}}{\partial{\theta}}\cdot Q_{\pi}(s_t,a) θV(s;θ)=aθπ(ast;θ)Qπ(st,a)来计算 f ( a , θ ) f(a,\theta) f(a,θ),可以得到策略梯度:
∂ V ( s ; θ ) ∂ θ = f ( " l e f t " , θ ) + f ( " r i g h t " , θ ) + f ( " u p " , θ ) \frac{\partial{V(s;\theta)}}{\partial{\theta}}=f("left",\theta)+f("right",\theta)+f("up",\theta) θV(s;θ)=f("left",θ)+f("right",θ)+f("up",θ)

当然如果是连续的动作,例如动作空间是啊0-1之间的连续变量 ∂ V ( s ; θ ) ∂ θ = E A ∼ π ( ⋅ ∣ s ; θ ) [ ∂ l n π ( A ∣ s t ; θ ) ∂ θ ⋅ Q π ( s t , A ) ] \frac{\partial{V(s;\theta)}}{\partial{\theta}}=\mathbb{E}_{A \sim \pi(\cdot | s;\theta)}[ \frac{\partial{ln\pi(A|s_t;\theta)}}{\partial{\theta}}\cdot Q_{\pi}(s_t,A)] θV(s;θ)=EAπ(s;θ)[θl(Ast;θ)Qπ(st,A)]
然后我们进行蒙特卡洛近似从 π ( ⋅ ∣ s ; θ ) \pi(\cdot | s;\theta) π(s;θ)随机抽样 a ^ \hat{a} a^,然后计算 g ( a ^ , θ ) = ∂ l n π ( a ^ ∣ s ; θ ) ∂ θ ⋅ Q π ( s , a ^ ) g(\hat{a},\theta)=\frac{\partial{ln\pi(\hat{a}|s;\theta)}}{\partial{\theta}}\cdot Q_{\pi}(s,\hat{a}) g(a^,θ)=θl(a^s;θ)Qπ(s,a^)。显而易见的,由于是随机抽样的 g ( a ^ , θ ) g(\hat{a},\theta) g(a^,θ) ∂ V ( s ; θ ) ∂ θ \frac{\partial{V(s;\theta)}}{\partial{\theta}} θV(s;θ)的无偏估计。策略梯度求出之后,就可以根据策略梯度更新策略网络, θ t + 1 = θ t + β ⋅ g ( a t , θ t ) \theta_{t+1}=\theta_{t}+\beta \cdot g(a_t,\theta_{t}) θt+1=θt+βg(at,θt)

总结

策略学习就是求出一个策略函数 π \pi π,然后根据策略函数自动控制智能体的运动。然后我们通过神经网路求策略函数,这个神经网络就是策略网络,然后通过策略梯度更新策略网络中的参数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值