目录
确定策略梯度(Deterministic Policy Gradient,DPG)
考虑如下的连续控制问题:
动作空间A是一个二维空间,且动作A是一个二维连续的向量。DPG其实也是一种A2C算法,网络结构如下:
当状态s与价值网络Value Network确定后,唯一可以影响输出价值q(s,a;w)的参数就是策略网络中的θ,因此可以对输出的状态价值函数q(s,a;w)对θ求梯度。
最后对θ使用梯度上升 即可。在实际应用中,直接使用上述的网络结构往往会有缺陷,下面介绍几种改进。
改进:使用Target Network
即在前篇介绍Bootstrapping问题时,使用另一个神经网络来计算价值网络的方法。
使用Target Network对t+1时刻进行预测,网络结构一致,但参数不同:
改进后的计算流程:
- 策略网络做出一个决定:a = π(s;θ)
- 使用DPG更新策略网络(梯度上升)
- 计算价值网络qt=q(s,a;w)
- 使用Target Network的策略函数与价值函数π(s;θ-)与q(s,a;w-),计算qt+1
- 使用TD更新价值网络:
- 此外,还要更新Target Network ,具体方法是设置一个超参数τ∈(0,1),并进行加权平均:
可以看到在θ-与w-的更新过程中,仍然使用到了原网络中的w与θ,因此Target Network无法完全避免Bootstrapping现象
随机策略与确定策略网络对比
输出: 随机策略输出的是一个有限维度的确定的向量,描述的是在整个有限维度的动作空间中执行某个动作的概率,是一个向量,而确定策略网路输出的直接是一个明确的动作a
对Agent的控制: 随机策略从输出的离散概率中随机抽取一个动作,而确定策略网路直接采取Output的结果控制Agent
应用: 随机策略网常用于离散控制,确定策略网络常用于连续控制(连续控制的动作集维度是无限的)。
使用随机策略进行连续控制
知识回顾:
- 价值函数:
- 策略梯度(定义式):
- 随机策略梯度(蒙特卡洛的近似思想):
策略网络搭建
基本思想:
使用正态分布(或其他确定的概率密度函数模型)来进行连续动作值的输出,而使用网络来逐步优化概率密度函数模型中的其他参数(如正态分布中的μ与σ²):
进一步的,对于多个自由度的动作集空间,相应的便有多个维度的正态分布表达,其中d为自由度数目:
这样,只需要使用神经网络来近似概率密度函数中的μ与σ等即可,考虑到实际应用,可以按照如下近似模型:
最终就可以得到如下的神经网络结构:
这样,在连续控制时,只需要从对应自由度维度的正态分布中随机抽取一个动作a来执行即可:
策略网路的训练
构建辅助网络来计算策略梯度(Auxiliary Network for Policy Gradient)
因为随机策略梯度的表达式为:
而策略网络π表达式为:
则对π取自然对数:
进一步表示为神经网路参数ρ与μ的函数,并使用θ来表示θμ与θρ,也即:
将连加部分定义为辅助神经网络(Auxiliary Network):
则加入了辅助函数的网络模型为:
可以发现,辅助函数f主要依赖于dense1与dense2的参数,在网络中做前向传播,就可以的得到分关于全连接层与卷积层的梯度:
策略梯度计算:
结合函数f(s,a;θ)的表达式与前文随机策略梯度g(a)的表达式,可以得到:
策略梯度方法——Reinforce与A-C
Reinforce是一种蒙特卡洛方法,使用ut来近似Qπ,则使用Reinforce方法时,
而使用A-C算法则所使用价值网路来近似动作价值函数,则梯度上升的表达式为:
同时注意,价值网络的参数w也需要更新,可以使用TD Learning