首页 > 编程语言 >Deep Deterministic Policy Gradient(DDPG)算法讲解笔记

Deep Deterministic Policy Gradient(DDPG)算法讲解笔记

时间:2024-04-11 13:58:36浏览次数:18  
标签:actor Gradient Deterministic Actor Critic Deep action DQN DDPG

DDPG

Deep Deterministic Policy Gradient,基于actor-critic模型提出了一个有效的value based连续型空间的RL算法,引入了一些帮助训练稳定的技术。

基础:DQN,Batchnormm,Discretize,微积分

  • background

    DQN改进的推广

    Policy based方法(TRPO)已经在action space取得突破

    传统discretize action space无法拓展到高维空间,阻碍了value based在连续型空间发展

    Ornstein-Uhhlenbeck process(OUN),是一种回归均值的随机过程

    Untitled

    η(t)是白噪声white noise

  • 核心

    推广了DQN到连续action space

    使用同样的网络结构和超参数,这个agent能robust的学习解决20多个环境

    该算法学习到的策略接近甚至超过知道物理模型的planing算法

  • DDPG and DQN

    • DDPG:replay buffer,critic Q网络(s,a|θ^Q) and actor μ(s|θ^μ) 参数: θ^Q and θ^μ、目标Q网络

      DQN:replay buffer 、Q function with random weights θ、目标Q网络

    • DDPG:在连续性action space上均匀抽样,初始化一个随机过程N,收到初始观察状态S1

      DQN:初始化序列s1和过程序列

    • action根据current policy和exploration noise,而不是Epsilon greedy(Qsa)

    • 先将下一个state带入actor得到At+1的估计,在带入Q网络得到估计,即选择action

    • DDPG:求导增长Qsi,μsi的值:调整actor,使critic给出更高评分,直接朝高reward的actor移动

      DQN:增加reward更高的action的概率

    • soft updata 目标Q网络

    如果把 μ(s|θ^μ)看成action,DQN和DDPG基本相似

    1. 都可以认为有一个Actor和一个Critic
    2. 更新Critic(Q-value)时,计算target value都用到了Actor
    3. 都有replay buiffer,target network

    主要区别

    1. 可处理连续action空间
    2. 有一个显示的Actor,而不是直接greedy原则选择action
    3. 有一个显示的Exploration Noise 而不是ε-greedy
    4. 有一个显示更新Actor的过程
  • 网络结构

    在不同环境下,观察可能有不同的physical units,使得网络有效学习和在不同状态价值的scale下发现超参数十分困难。可能在不同环境下需要调整参数才能使训练稳定进行。

    解决:batch normalization。可以控制某一层输出在某种尺寸,不同scale的输入得到相同scale的输出。

  • 核心思想

    假如Qsa已得到一定训练,调整actor参数,使Qsa达到greedy

    Untitled

  • 细节

    1. Exploration Noise使用OSN:探索和学习算法相互独立,可以选择在noise process N采样的noise
    2. Actor和Critic都有target network,都用了soft update
    3. Agent的每个动作实际重复执行了三次
    4. 图像输入也有预处理
    5. 对ACtor和和Critic不同的学习率,不同weights decay
    6. 全连接层特殊的初始化方法
    7. 过去的valuebased方法主要集中discrete的action apace,所以本文没有比较其他DRL算法,二十选取了一个planning的baseline,理解为用物理方法去“估计”一个最好的行动来作为策略,并与其在大量环境种比较,来衡量算法表现。
  • 网络结构

    Actor

    BarchNorm应该在全连接层之后,activation之前。

    每一层应该有对应自己的batchNorm,不能一个BatchNorm作用在多个地方

    Critic

    torch.cat连接action和上一层的输出。

  • BatchNorm

    数学公式

    Untitled

    实际使用有train()和eval()俩种模式的区别。

    softupadata( actor , critic ,1)当tau=1时,俩个网络结构应当输出完全一样;然而实际上有细微的差别,原因:barchNorm层有不是Rarameter但是对结构有影响的量running_mean和running_var,在train()mode中,running_mean和running_var不参与计算,只会进行更新,而eval() mode中,这俩个量会参与计算。→在俩个网络中,running_mean和running_var并不相同,所以结果不同。

    修改soft_updata(),使这些参数也能拷贝过去即可。

  • Updata Critic AND Actor

    Update Critic

    Untitled

    value method算法中,离散型action看见的Q函数更新:

    使用target network计算出需要的action;将target network得到的action带入target network得到next state-action value;计算local network的更新目标,并使用MSE loss更新。

    连续型action的应用步骤思想与此相同。

    Update Actor

    标准公式及其化简

    Untitled

    Actor的更新,就是选择Critic中state-action value更好的action

    和policy methonds 不同,不是计算action的acvantage如何决定增大或减少其概率来改变分布,而是直接寻找最好的action。

    具体寻找方法是:将Actor得到的action直接带入Critic,通过优化Critic的输出值,得到action的导数,然后进一步使用这个导数更新Actor的参数

  • 代码

    DDPG_Agent

    actor学习率,critic学习率,softupdate参数, 每step更新一次,每个action作learning_time次更新,hidden为神经网络hidden liner宽度

    后期逐渐降低noise的影响,使训练更平稳

标签:actor,Gradient,Deterministic,Actor,Critic,Deep,action,DQN,DDPG
From: https://blog.csdn.net/comekeywords/article/details/137636382

相关文章

  • 一种提升深度多视角行人检测的泛化性能的方法 Bringing Generalization to Deep Mult
    一种提升深度多视角行人检测的泛化性能的方法BringingGeneralizationtoDeepMulti-ViewPedestrianDetection论文url:https://openaccess.thecvf.com/content/WACV2023W/RWS/html/Vora_Bringing_Generalization_to_Deep_Multi-View_Pedestrian_Detection_WACVW_2023_paper.......
  • Deep Learning with Differential Privacy
    差分隐私深度学习(CCS16'(CCFA))时隔半年重读这篇论文,终于懂了个七七八八,现在来做一下总结。摘要基于神经网络的机器学习技术在众多领域都取得了令人瞩目的成果。通常,模型的训练需要大量具有代表性的数据集,这些数据集可能是众包的,包含敏感信息。模型不应暴露这些数据集中的隐......
  • C. Deep Down Below
    原题链接题解每一个任务都有一个最小起点能力值,和通过任务后获得的能力值,我们从最小起点开始遍历,如果遍历到某一点累加的能力值+最小起点能力值够不到当前任务的最小能力值,我们把最小起点向右移动直至够到当前任务的最小能力值。code#include<bits/stdc++.h>usingnamespace......
  • 实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking
    实时3D深度多摄像头跟踪Real-time3DDeepMulti-CameraTracking论文urlhttps://arxiv.org/abs/2003.11753论文简述:提出了一个名为DeepMulti-CameraTracking(DMCT)的实时3D多摄像机跟踪系统。该系统旨在解决使用多个RGB摄像机进行3D人群跟踪的挑战性任务。总体框架图......
  • 深度解读RAGFlow的深度文档理解DeepDoc
    4月1日,Infinity宣布端到端RAG解决方案RAGFlow开源,仅一天收获上千颗星,到底有何魅力?我们来安装体验并从代码层面来分析看看。安装体验服务器需要有docker,或者直接访问官方提供的demo:https://demo.ragflow.io/docker-compose安装需要确保vm.max_map_count不小于2621......
  • 深度探索:机器学习Deep Belief Networks(DBN)算法原理及其应用
    目录1.引言与背景2.定理3.算法原理4.算法实现5.优缺点分析优点:缺点:6.案例应用7.对比与其他算法8.结论与展望1.引言与背景深度学习在近年来取得了显著进展,其在图像识别、语音识别、自然语言处理等多个领域的成功应用引发了广泛的关注。其中,DeepBeliefNetworks......
  • 论文阅读《Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image De
    BeyondaGaussianDenoiser:ResidualLearningofDeepCNNforImageDenoising发表于IEEETRANSACTIONSONIMAGEPROCESSING,VOL.26,NO.7,JULY2017Paper和CodeAbstract:提出前馈去噪卷积神经网络(DnCNNs),将超深层次结构、学习算法和正则化方法的进展纳入图像去噪......
  • deepin20.9控制中心改造
    1.概述deepin20.9不再维护,但是控制中心有一些细节问题还没有修复。本篇博客记录修复deepin20.9控制中心UI细节问题的过程2.实践过程放开源码源:$cat/etc/apt/sources.list##Generatedbydeepin-installerdebhttps://community-packages.deepin.com/deepin/apricot......
  • Ubuntu20.04安装DeepStream6.1
    https://blog.csdn.net/m0_73702795/article/details/127940733    目录   前言   1.更新显卡驱动   2.下载CUDA   3.下载CUDNN   4.安装TensorRT   5.安装librdkafka   6.安装GStreamer   7.正式安装DeepStream前言本人亲自安装了十多遍......
  • ubuntu20.04 deepstream 6.3安装
    https://blog.csdn.net/zhoutianyou/article/details/135528185?spm=1001.2101.3001.6650.13&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-13-135528185-blog-127940733.235%5Ev43%5Epc_blog_bottom_relevance_base7&depth_1-utm......