DDPG(Deep Deterministic Policy Gradient)
Hi,这是第二篇算法简介呀
论文链接:“Continuous control with deep reinforcement learning.” ,2016
文章概述
这篇文章在确定性策略的基础上,结合Actor-Critic,提出了一种model-free的算法。直接输入原始像素,端到端(end-to-end)学习策略,输出确定动作。
2000年提出PG(Policy Gradient)算法,通过改变动作的出现概率来优化策略,使得total reward最大化, L ( θ ) = − ∑ log π ( a ∣ s , θ ) f ( s , a ) L(\theta)=-\sum \log \pi(a | s, \theta) f(s, a) L(θ)=−∑logπ(a∣s,θ)f(s,a)(损失函数通常需要最小化,所以加一个负号)。其中, f ( s , a ) f(s,a) f(s,a)为评价指标(reward或 Q Q Q或 A A A,或使用TD)。
2013年提出DQN(Deep Q-Network)算法。
2014年提出DPG(Deterministic Policy Gradient)算法。PG算法无法解决连续控制的问题,因为PG算法学习得到了随机策略之后,在每一步行为时还需要对得到的最优策略概率分布进行采样,才能获得action的具体值;而action通常是高维的向量,需要耗费大量计算。DPG算法直接对轨迹的价值函数求导,即 ∇ θ v μ θ ( s ) = ∇ θ [ Q μ ( s , μ θ ( s ) ) ] \nabla_{\theta} v_{\mu_{\theta}}(s)=\nabla_{\theta}\left[Q_{\mu}\left(s, \mu_{\theta}(s)\right)\right] ∇θvμθ(s)=∇θ[Qμ(s,μθ(s))](链式求导可得, ∇ θ v μ ( s ) = ∇ μ θ ( s ) [ Q μ ( s , μ θ ( s ) ) ] ∇ θ μ θ ( s ) \nabla_{\theta} v_{\mu}(s)=\nabla_{\mu_{\theta}(s)}\left[Q_{\mu}\left(s, \mu_{\theta}(s)\right)\right] \nabla_{\theta} \mu_{\theta}(s) ∇θvμ(s)=∇μθ(s)[Qμ(s,μθ(s))]∇θμθ(s)),因此它不用完成最优动作选取的过程,每一步的动作通过函数 μ μ μ直接获得确定的值。DPG值函数评估采用的是Q-learning的方法,使用TD(0)估计动作值函数并忽略重要性权重,利用replay buffer中随机抽取的数据集对策略进行训练。
2016年提出DDPG(Deep Deterministic Policy Gradient)算法,是Actor-Critic和DQN的结合,同时加入了BatchNormalization对输入进行预处理。Actor网络对应DPG算法,将特定state映射到特定action,Critic网络则对应Q-learning,使用价值函数对动作进行评估。Target网络的参数使用软更新,而不是直接复制Policy网络的参数,虽然使得学习变化放缓,但是增强了学习的稳定性。为了可以不断地探索空间,在探索策略 μ ′ \mu' μ′通过OU(Ornstein-Uhlenbeck)过程添加噪声样本。
公式理解
- 未来折扣回报
R t = ∑ i = t T γ ( i − t ) r ( s i , a i ) R_{t}=\sum_{i=t}^{T} \gamma^{(i-t)} r\left(s_{i}, a_{i}\right) Rt=i=t∑Tγ(i−t)r(si,ai) - 动作值函数
Q π ( s t , a t ) = E r i ≥ t , s i > t ∼ E , a i > t ∼ π [ R t ∣ s t , a t ] Q^{\pi}\left(s_{t}, a_{t}\right)=\mathbb{E}_{r_{i \geq t}, s_{i>t} \sim E, a_{i>t} \sim \pi}\left[R_{t} | s_{t}, a_{t}\right] Qπ(st,at)=Eri≥t,si>t∼E,ai>t∼π[Rt∣st,at] - Bellman方程
Q π ( s t , a t ) = E r t , s t + 1 ∼ E [ r ( s t , a t ) + γ E a t + 1 ∼ π [ Q π ( s t + 1 , a t + 1 ) ] ] Q^{\pi}\left(s_{t}, a_{t}\right)=\mathbb{E}_{r_{t}, s_{t+1} \sim E}\left[r\left(s_{t}, a_{t}\right)+\gamma \mathbb{E}_{a_{t+1} \sim \pi}\left[Q^{\pi}\left(s_{t+1}, a_{t+1}\right)\right]\right] Qπ(st,at)=Ert,st+1∼E[r(st,at)+γEat+1∼π[Qπ(st+1,at+1)]] - 确定性策略 μ \mu μ
Q μ ( s t , a t ) = E r t , s t + 1 ∼ E [ r ( s t , a t ) + γ Q μ ( s t + 1 , μ ( s t + 1 ) ) ] Q^{\mu}\left(s_{t}, a_{t}\right)=\mathbb{E}_{r_{t}, s_{t+1} \sim E}\left[r\left(s_{t}, a_{t}\right)+\gamma Q^{\mu}\left(s_{t+1}, \mu\left(s_{t+1}\right)\right)\right] Qμ(st,at)=Ert,st+1∼E[r(st,at)+γQμ(st+1,μ(st+1))] - 函数逼近器(Critic更新目标)
L ( θ Q ) = E s t ∼ ρ β , a t ∼ β , r t ∼ E [ ( Q ( s t , a t ∣ θ Q ) − y t ) 2 ] L\left(\theta^{Q}\right)=\mathbb{E}_{s_{t} \sim \rho^{\beta}, a_{t} \sim \beta, r_{t} \sim E}\left[\left(Q\left(s_{t}, a_{t} | \theta^{Q}\right)-y_{t}\right)^{2}\right] L(θQ)=Est∼ρβ,at∼β,rt∼E[(Q(st,at∣θQ)−yt)2]其中, y t = r ( s t , a t ) + γ Q ( s t + 1 , μ ( s t + 1 ) ∣ θ Q ) y_{t}=r\left(s_{t}, a_{t}\right)+\gamma Q\left(s_{t+1}, \mu\left(s_{t+1}\right) | \theta^{Q}\right) yt=r(st,at)+γQ(st+1,μ(st+1)∣θQ)。 - Actor更新目标
∇ θ μ J ≈ E s t ∼ ρ β [ ∇ θ μ Q ( s , a ∣ θ Q ) ∣ s = s t , a = μ ( s t ∣ θ μ ) ] = E s t ∼ ρ β [ ∇ a Q ( s , a ∣ θ Q ) ∣ s = s t , a = μ ( s t ) ∇ θ μ μ ( s ∣ θ μ ) ∣ s = s t ] \nabla_{\theta^{\mu}} J \approx \mathbb{E}_{s_{t} \sim \rho^{\beta}}[\left.\nabla_{\theta^{\mu}} Q\left(s, a | \theta^{Q}\right)\right|_{s=s_{t}, a=\mu\left(s_{t} | \theta^{\mu}\right)}]=\mathbb{E}_{s_{t} \sim \rho^{\beta}}[\left.\left.\nabla_{a} Q\left(s, a | \theta^{Q}\right)\right|_{s=s_{t}, a=\mu\left(s_{t}\right)} \nabla_{\theta_{\mu}} \mu\left(s | \theta^{\mu}\right)\right|_{s=s_{t}}] ∇θμJ≈Est∼ρβ[∇θμQ(s,a∣θQ)∣∣s=st,a=μ(st∣θμ)]=Est∼ρβ[∇aQ(s,a∣θQ)∣∣s=st,a=μ(st)∇θμμ(s∣θμ)∣∣∣s=st] - Target网络参数软更新
θ ′ ← τ θ + ( 1 − τ ) θ ′ \theta^{\prime} \leftarrow \tau \theta+(1-\tau) \theta^{\prime} θ′←τθ+(1−τ)θ′ - 探索过程中增加噪声
μ ′ ( s t ) = μ ( s t ∣ θ t μ ) + N \mu^{\prime}\left(s_{t}\right)=\mu\left(s_{t} | \theta_{t}^{\mu}\right)+\mathcal{N} μ′(st)=μ(st∣θtμ)+N
伪代码分析
试验结果分析
代码实现
github传送门:https://github.com/floodsung/DDPG
DDPG(Deep Deterministic Policy Gradient)相关推荐
- 深度增强学习DDPG(Deep Deterministic Policy Gradient)算法源码走读
原文链接:https://blog.csdn.net/jinzhuojun/article/details/82556127 本文是基于OpenAI推出deep reinforcement learn ...
- 【强化学习】DDPG(Deep Deterministic Policy Gradient)算法详解
http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html 引用莫凡老师的素材 https://morvanzhou.github.io/tut ...
- 【强化学习】Deep Deterministic Policy Gradient(DDPG)算法详解
1 DDPG简介 DDPG吸收了Actor-Critic让Policy Gradient 单步更新的精华,而且还吸收让计算机学会玩游戏的DQN的精华,合并成了一种新算法,叫做Deep Deterini ...
- 强化学习笔记 DDPG (Deep Deterministic Policy Gradient)
1 总述 总体来讲,和actor-critic 差不多,只不过这里用了target network 和experience relay 强化学习笔记 experience replay 经验回放_UQ ...
- 强化学习(三)—— 策略学习(Policy-Based)及策略梯度(Policy Gradient)
强化学习(三)-- 策略学习(Policy-Based)及策略梯度(Policy Gradient) 1. 策略学习 2. 策略梯度 3. 案例 1. 策略学习 Policy Network 通过策略 ...
- 【机器学习网络】神经网络与深度学习-6 深度神经网络(deep neural Networks DNN)
目录 深度神经网络(deep neural Networks DNN) DNN的底层原理 深度学习网络的问题: 案例1:书写数字识别(梯度下降法详解) 男女头发长短区分案例(为什么隐藏层追求深度): ...
- 机器学习与高维信息检索 - Note 5 - (深度)前馈神经网络((Deep) Feedforward Neural Networks)及基于CVXOPT的相关实例
Note 5 - (深度)前馈神经网络((Deep) Feedforward Neural Networks)及相关实例 5.1 FNN的定义和动机 粗略地说,前馈神经网络(FNN)是一种特殊的函数类 ...
- 梯度直方图(HOG,Histogram of Gradient)
1.介绍 HOG(Histogram of Oriented Gradient)是2005年CVPR会议上,法国国家计算机科学及自动控制研究所的Dalal等人提出的一种解决人体目标检测的图像描述子,该 ...
- 推荐系统(十二)阿里深度兴趣网络(二):DIEN模型(Deep Interest Evolution Network)
推荐系统(十二)阿里深度兴趣网络(二):DIEN模型(Deep Interest Evolution Network) 推荐系统系列博客: 推荐系统(一)推荐系统整体概览 推荐系统(二)GBDT+LR ...
最新文章
- 15、url反向解析和别名及命名空间
- Linux基础命令---znew
- HDOJ---1257 最少拦截系统[线性DP]+NYOJ---拦截导弹[输出最长单调子序列的长度]
- mini2440 裸机编程 -led
- C++操作SQLite数据库
- HDU 3336 KMP
- 算术运算符、数学函数Math、数据类型转换、自增自减运算符、关系逻辑运算符、位运算符、括号及运算符级别
- 转:ibatis动态sql
- c#将list集合转换为datatable的简单办法
- 6张图为你分析Kafka Producer 消息缓存模型
- java字符相似_JAVA 获取两个字符串的相似度
- js中普通函数与函数对象
- 微信公号“架构师之路”学习笔记(六)-互联网一致性架构设计(session一致性,主从一致性,双主一致性,缓存一致性,冗余一致性,消息时序一致性,分布式事务一致性,数据扣减一致性等)
- DFT与DTFT的区别?
- php网站微博帐号登录代码,微博登录按钮
- 什么是网站被黑?网站被黑具体症状表现、网站被黑了怎么办
- 计算机网络技术文档心得,计算机网络技术学习心得体会.docx
- 个人日记——用来激励自己
- 《咸鱼分享》DNS反向解析
- MN梦奈宝塔主机系统V1.5版本发布