深度学习和强化学习(刘)深度强化学习.PolicyBased

这时我们对策略进行近似表示。此时策略π可以被被描述为一个包含参数θ的函数,即:


将策略表示成一个连续的函数后,我们就可以用连续函数的优化方法来寻找最优的策略了。而最常用的方法就是梯度上升法

要用梯度上升来寻找最优的梯度,首先就要找到一个可以优化的函数目标


优化目标:

最简单的优化目标就是初始状态收获的期望,即优化目标为


有的问题是没有明确的初始状态的,那么我们的优化目标可以定义平均价值


或者定义为每一时间步的平均奖励

最终对θ求导的梯度都可以表示为


策略函数设计:

最常用的策略函数就是softmax策略函数了,它主要应用于离散空间中,softmax策略使用描述状态和行为的特征ϕ(s,a) 与参数θ的线性组合来权衡一个行为发生的几率


通过求导很容易求出对应的分值函数


另一种高斯策略则是应用于连续行为空间的一种常用策略。该策略对应的行为从高斯分布产生。高斯策略对应的分值函数求导可以得到为:



蒙特卡罗策略梯度reinforce算法:


蒙特卡罗策略梯度reinforce算法却并不完美。由于是蒙特卡罗法,我们需要完全的序列样本才能做算法迭代,同时蒙特卡罗法使用收获的期望来计算状态价值,会导致行为有较多的变异性,我们的参数更新的方向很可能不是策略梯度的最优方向。


Actor-Critic算法:

Actor-Critic从名字上看包括两部分,演员(Actor)和评价者(Critic)。其中Actor使用我们上一节讲到的策略函数,负责生成动作(Action)并和环境交互。而Critic使用我们之前讲到了的价值函数,负责评估Actor的表现,并指导Actor下一阶段的动作。

策略函数就是我们的Actor,但是那里是没有Critic的,我们当时使用了蒙特卡罗法来计算每一步的价值部分替代了Critic的功能,但是场景比较受限。因此现在我们使用类似DQN中用的价值函数来替代蒙特卡罗法,作为一个比较通用的Critic。

也就是说在Actor-Critic算法中,我们需要做两组近似,第一组是策略函数的近似:


第二组是价值函数的近似,对于状态价值和动作价值函数分别是

在蒙特卡罗策略梯度reinforce算法中,我们的策略的参数更新公式是


梯度更新部分中, 分值函数,不用动,要变成Actor的话改动的是vt,这块不能再使用蒙特卡罗法来得到,而应该从Critic得到。


对于Critic评估的点选择是和上一篇策略梯度一样的状态价值vt,实际上,我们还可以选择很多其他的指标来做为Critic的评估点。而目前可以使用的Actor-Critic评估点主要有:

基本版的Actor-Critic算法虽然思路很好,但是由于难收敛的原因,还需要做改进,

目前改进的比较好的有两个经典算法,一个是DDPG算法,使用了双Actor神经网络和双Critic神经网络的方法来改善收敛性。这个方法我们在从DQN到Nature DQN的过程中已经用过一次了。另一个是A3C算法,使用了多线程的方式,一个主线程负责更新Actor和Critic的参数,多个辅线程负责分别和环境交互,得到梯度更新值,汇总更新主线程的参数。而所有的辅线程会定期从主线程更新网络参数。这些辅线程起到了类似DQN中经验回放的作用,但是效果更好。


A3C:

利用多线程的方法,同时在多个线程里面分别和环境进行交互学习,每个线程都把学习的成果汇总起来,整理保存在一个公共的地方。并且,定期从公共的地方把大家的齐心学习的成果拿回来,指导自己和环境后面的学习交互。

相比Actor-Critic,A3C的优化主要有3点,分别是异步训练框架,网络结构优化,Critic评估点的优化。其中异步训练框架是最大的优化。

异步训练框架:


Global Network就是上一节说的共享的公共部分,主要是一个公共的神经网络模型,这个神经网络包括Actor网络和Critic网络两部分的功能。下面有n个worker线程,每个线程里有和公共的神经网络一样的网络结构,每个线程会独立的和环境进行交互得到经验数据,这些线程之间互不干扰,独立运行。每个线程和环境交互到一定量的数据后,就计算在自己线程里的神经网络损失函数的梯度,但是这些梯度却并不更新自己线程里的神经网络,而是去更新公共的神经网络。也就是n个线程会独立的使用累积的梯度分别更新公共部分的神经网络模型参数。每隔一段时间,线程会将自己的神经网络的参数更新为公共神经网络的参数,进而指导后面的环境交互。

Actor-Critic中,我们使用了两个不同的网络Actor和Critic。在A3C这里,我们把两个网络放到了一起,即输入状态S,可以输入状态价值V,和对应的策略π, 当然,我们仍然可以把Actor和Critic看做独立的两块,分别处理,如下图所示:

你可能感兴趣的:(深度学习和强化学习(刘)深度强化学习.PolicyBased)