基于Pytorch的强化学习(DQN)之策略学习

内容

1. 引言

2. 数学推导

2.1 状态价值函数

2.2 策略梯度

2.3 蒙特卡罗近似

3. 算法

1. 引言

我们上次讲到了价值学习,这次我们来看看基于策略的学习,我们状态价值函数V_{\pi}(s_t)能够描述当前状态下局势的好坏,如果V_{\pi}(s_t)越大那局势不就会越好吗,所以我们得到了策略学习的基本思想:找到最优的action使V_{\pi}(s_t)达到最大。

image-20220213123932214

2. 数学推导

2.1 状态价值函数

我们之前知道状态值函数V_{\pi}(s_t)=E_A[Q_{\pi}(S_t,A)]=\sum_a{\pi}(a|s_t) Q_{\pi}(s_t,a),我们先用神经网络V_{\pi}(s_t,\theta)逼近V_{\pi},其中\theta是神经网络的参数,如果我们认为Q_{\pi}\theta无关,那么V_{\pi}(s_t,\theta)=\sum_a{\pi}(a|s_t,\theta) Q_{\pi}(s_t,a)我们求策略梯度。

2.2 策略梯度

我们称g(a,\theta)=\frac{\partial \,V_{\pi}(s,\theta)}{\partial \,\theta}为策略梯度。由于我们的目标是使V_{\pi}(s_t,\theta)更大,我们使用梯度上升\theta\leftarrow\theta+\beta g(a,\theta)来更新参数\theta,我们从以下公式得出:

g(a,\theta)=\frac{\partial \,V_{\pi}(s_t,\theta)}{\partial \,\theta}=\frac{\partial \,\sum_a{\pi}(a|s;\theta)Q_{\pi}(s,a)}{\partial \,\theta}=\sum_a{\pi}(a|s;\theta)\frac{\partial \,\ln{\pi}(a|s;\theta)}{\partial \,\theta}Q_{\pi}(s,a)=E_A[\frac{\partial \,\ln{\pi}(a|s;\theta)}{\partial \,\theta}Q_{\pi}(s,a)]

第三个方程的修改是利用{\pi}(a|s;\theta)的性质使概率密度函数写成想要的形式

上面是action为离散情况下的表达形式,那么如果是连续情况呢?这就需要使用蒙特卡罗近似了。

2.3 蒙特卡罗近似

蒙特卡洛近似本质上是一种基于统计原理的近似方法,我们抽取多次动作,次数越多近似就越准确,这样将连续问题离散化,我们就仍可以使用上面的公式了,例如我从action中随机抽取了一个a_0,我们便有g(a_0,\theta)=\frac{\partial \,\ln{\pi}(a_0|s;\theta)}{\partial \,\theta}Q_{\pi}(s,a_0),这里的g(a_0,\theta)我们称之为\frac{\partial \,V_{\pi}(s_t,\theta)}{\partial \,\theta}的一个无偏估计。

3. 算法

这里我们还有第三步没有解决:对Q_{\pi}(s_t,a)进行估计,我们知道Q_{\pi}(s_t,a)是return的期望,所以我们可以用期望的计算公式u_t=\sum_{i=0}^{\infty}\gamma^ir_{t+i}来近似Q_{\pi}(s_t,a)或者再用一个神经网络来拟合Q_{\pi}(s_t,a)

基于Pytorch的强化学习(DQN)之策略学习

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2022年3月23日 下午1:31
下一篇 2022年3月23日 下午4:11

相关推荐