深度强化学习系列(16): 从DPG到DDPG算法的原理讲解及tensorflow代码实现

1、背景知识

在前文系列博客第二篇中讲解了DQN(深度强化学习DQN原理),可以说它是神经网络在强化学习中取得的重大突破,也为强化学习的发展提供了一个方向和基础,Sliver等人将其应用在Atari游戏中取得了重大突破, 后来大批量的论文均采用了DQN的思想,同时提出了更多的但是该算法有以下缺点:

Atari 游戏所需的动作是离散的,且属于低维(只有少数几个动作),但现实生活中很多问题都是连续的,且维度比较高,比如机器人控制(多个自由度)、汽车方向盘转向角度,油门大小、天气预报推荐指数等。虽然可以对连续性高维度的动作做离散型的处理,但是对于一个经过离散处理的大状态空间,使用DQN训练仍然是仍然是一个比较棘手的问题,因为DQN算法的核心思想是利用随机策略进行探索,对于高维度的来说,第一个问题是:模型很难收敛,第二个问题是需要在探索和利用之间进行协调。

因此用DQN解决高维度连续状态空间的任务变得非常的困难。为了解决该问题,David Sliver在2014年ICML大会论文中提出了确定性策略梯度((Deterministic Policy Gradient Algorithms)), 是的,这就是福音!下面先从DPG算法开始,然后再说Deep DPG(DDPG)

1、确定性策略梯度(Deterministic policy gradient )

首先解决一个强化学习问题,我们想到的就是累计折扣奖励的定义,即状态满足 ρ π \rho^{\pi} ρπ 分布上的累计奖励,如下:
∇ θ J ( π θ ) = ∫ S ρ π ( s ) ∫ A π θ ( a ∣ s ) r ( s , a ) d a d s = E s ∼ ρ π , a ∼ π θ [ r ( s , a ) ] \nabla_{\theta}J(\pi_{\theta}) = \int_{S}\rho^{\pi}(s) \int_{A}\pi_{\theta}(a|s)r(s, a) dads \\ =E_{s\sim \rho^{\pi},a\sim \pi_{\theta}}[r(s, a)] θJ(πθ)=Sρπ(s)Aπθ(as)r(s,a)dads=Esρπ,aπθ[r(s,a)]
那么什么是策略梯度呢?策略梯度就是沿着使目标函数变大的方向调整策略的参数,它被定义为:

∇ θ J ( π θ ) = ∫ S ρ π ( s ) ∫ A ∇ θ π θ ( a ∣ s ) Q π ( s , a ) d a d s = E s ∼ ρ π , a ∼ π θ [ ∇ θ log ⁡ π θ ( a ∣ s ) Q π ( s , a ) ] \nabla_{\theta}J(\pi_{\theta}) = \int_{S}\rho^{\pi}(s) \int_{A}\nabla_{\theta}\pi_{\theta}(a|s)Q^{\pi}(s, a) dads \\ = E_{s\sim \rho^{\pi},a\sim \pi_{\theta}}[\nabla_{\theta} \log \pi_{\theta}(a|s)Q^{\pi}(s, a)] θJ(πθ)=Sρπ(s)Aθπθ(as)Qπ(s,a)dads=Esρπ,aπθ[θlogπθ(as)Qπ(s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@RichardWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值