强化学习(三)—— 策略学习(Policy-Based)及策略梯度(Policy Gradient)

  • 1. 策略学习
  • 2. 策略梯度
  • 3. 案例

1. 策略学习

Policy Network

  • 通过策略网络近似策略函数
    π(a∣st)≈π(a∣st;θ)π(a|s_t)≈π(a|s_t;\theta) π(a∣st​)≈π(a∣st​;θ)
  • 状态价值函数及其近似
    Vπ(st)=∑aπ(a∣st)Qπ(st,a)V_π(s_t)=\sum_aπ(a|s_t)Q_π(s_t,a) Vπ​(st​)=a∑​π(a∣st​)Qπ​(st​,a)
    V(st;θ)=∑aπ(a∣st;θ)⋅Qπ(st,a)V(s_t;\theta)=\sum_aπ(a|s_t;\theta)·Q_π(s_t,a) V(st​;θ)=a∑​π(a∣st​;θ)⋅Qπ​(st​,a)
  • 策略学习最大化的目标函数
    J(θ)=ES[V(S;θ)]J(\theta)=E_S[V(S;\theta)] J(θ)=ES​[V(S;θ)]
  • 依据策略梯度上升进行
    θ←θ+β⋅∂V(s;θ)∂θ\theta\gets\theta+\beta·\frac{\partial V(s;\theta)}{\partial \theta} θ←θ+β⋅∂θ∂V(s;θ)​

2. 策略梯度

Policy Gradient

∂V(s;θ)θ=∑aQπ(s,a)∂π(a∣s;θ)∂θ=∫aQπ(s,a)∂π(a∣s;θ)∂θ=∑aπ(a∣s;θ)⋅Qπ(s,a)∂ln[π(a∣s;θ)]∂θ=EA∼π(a∣s;θ)[Qπ(s,A)∂ln[π(A∣s;θ)]∂θ]≈Qπ(st,at)∂ln[π(at∣st;θ)]∂θ\frac{\partial V(s;\theta)}{\theta}=\sum_a{Q_\pi(s,a)\frac{\partial\pi(a|s;\theta)}{\partial\theta}}\\=\int_a{Q_\pi(s,a)\frac{\partial\pi(a|s;\theta)}{\partial\theta}}\\=\sum_a{\pi(a|s;\theta)·Q_\pi(s,a)\frac{\partial ln[\pi(a|s;\theta)]}{\partial\theta}}\\=E_{A\sim\pi(a|s;\theta)}[Q_\pi(s,A)\frac{\partial ln[\pi(A|s;\theta)]}{\partial\theta}]\\≈Q_\pi(s_t,a_t)\frac{\partial ln[\pi(a_t|s_t;\theta)]}{\partial\theta} θ∂V(s;θ)​=a∑​Qπ​(s,a)∂θ∂π(a∣s;θ)​=∫a​Qπ​(s,a)∂θ∂π(a∣s;θ)​=a∑​π(a∣s;θ)⋅Qπ​(s,a)∂θ∂ln[π(a∣s;θ)]​=EA∼π(a∣s;θ)​[Qπ​(s,A)∂θ∂ln[π(A∣s;θ)]​]≈Qπ​(st​,at​)∂θ∂ln[π(at​∣st​;θ)]​

  • 观测得到状态
    sts_t st​
  • 依据策略函数随机采样动作
    at=π(at∣st;θ)a_t = \pi(a_t|s_t;\theta) at​=π(at​∣st​;θ)
  • 计算价值函数
    qt=Qπ(st,at)q_t = Q_\pi(s_t,a_t) qt​=Qπ​(st​,at​)
  • 求取策略网络的梯度
    dθ,t=∂ln[π(at∣st;θ)]∂θ∣θ=θtd_{\theta,t}=\frac{\partial ln[\pi(a_t|s_t;\theta)]}{\partial\theta}|\theta=\theta_t dθ,t​=∂θ∂ln[π(at​∣st​;θ)]​∣θ=θt​
  • 计算近似的策略梯度
    g(at,θt)=qt⋅dθ,tg(a_t,\theta _t)=q_t·d_{\theta,t} g(at​,θt​)=qt​⋅dθ,t​
  • 更新策略网络
    θt+1=θt+β⋅g(at,θt)\theta_{t+1}=\theta_t+\beta·g(a_t,\theta_t) θt+1​=θt​+β⋅g(at​,θt​)

3. 案例

目前没有好的方法近似动作价值函数,则未撰写案例。

by CyrusMay 2022 03 29

强化学习(三)—— 策略学习(Policy-Based)及策略梯度(Policy Gradient)相关推荐

  1. 推荐系统遇上深度学习(三十九)-推荐系统中召回策略演进!

    推荐系统中的核心是从海量的商品库挑选合适商品最终展示给用户.由于商品库数量巨大,因此常见的推荐系统一般分为两个阶段,即召回阶段和排序阶段.召回阶段主要是从全量的商品库中得到用户可能感兴趣的一小部分候选 ...

  2. 强化学习(十三) 策略梯度(Policy Gradient)

    在前面讲到的DQN系列强化学习算法中,我们主要对价值函数进行了近似表示,基于价值来学习.这种Value Based强化学习方法在很多领域都得到比较好的应用,但是Value Based强化学习方法也有很 ...

  3. 系统学习深度学习(三十五)--策略梯度(Policy Gradient)

    转自:https://www.cnblogs.com/pinard/p/10137696.html 在前面讲到的DQN系列强化学习算法中,我们主要对价值函数进行了近似表示,基于价值来学习.这种Valu ...

  4. 【深度强化学习】策略梯度 Policy Gradients

    文章目录 前言 values 和 policy 策略的表示 策略梯度 REINFORCE method 实例:CartPole 前言 重读<Deep Reinforcemnet Learning ...

  5. 强化学习(4):策略梯度Policy Gradient算法

    本章内容主要参考了UC Berkeley Deep RL Bootcamp的内容,由作者按照自己的理解整理而成 终于到Policy Gradient方法了! 一.引言 reinforcement le ...

  6. 论文学习:Decoupling Value and Policy for Generalization in Reinforcement Learning(强化学习中泛化的解耦价值和策略)

    摘要: Standard deep reinforcement learning algorithms use a shared representation for the policy and v ...

  7. 强化学习:(三)策略学习

    目录 一.策略学习 二.参考资料 一.策略学习 思路:用policy network来近似策略函数 π \pi π​ ,用policy gradient算法来训练这个网络 函数近似的一般方法:线性函数 ...

  8. 离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)

    论文原文:[Yifan Wu, George Tucker, Ofir Nachum: "Behavior Regularized Offline Reinforcement Learnin ...

  9. 强化学习蘑菇书Easy RL第二、三章学习(马尔可夫决策过程、表格型方法)

    马尔可夫决策过程概述 Markov Process(MP)通常来说是未来状态的条件概率分布仅依赖于当前的状态.在离散随机过程里,我们需要把随机变量所有可能取值的集合放到一个状态空间里,在强化学习里,我 ...

最新文章

  1. 微信确认出Bug,目前已全部恢复
  2. Spring事务传播
  3. SAP云平台上的Mendix服务 - 如何注册帐号
  4. java学习笔记④MySql数据库--03/04 DQL查询
  5. OpenJDK源码研究笔记(六)--观察者模式工具类(Observer和Observable)和应用示例
  6. Go 语言本身提供的包管理机制
  7. freemarker处理嵌套属性是否为空的判断
  8. MySQL中的主键约束和外键约束
  9. Atitit selenium3 新特性
  10. es 吗 查询必须有sort_elasticsearch使用小结(ES使用小结)
  11. Matplotlib:直方图示例(2):正态分布。
  12. Android的界面1080,安卓1080P界面设计规范解读
  13. I.Algorithm Choosing Mushrooms
  14. 龙芯芯片CPU的产品路线说明
  15. JAVA之线程子类秒表(静态)
  16. U盘图标不显示(转)
  17. java第一部分学习笔记
  18. (数字IC)低功耗设计入门(二)——功耗的分析+Comments
  19. react中render重绘时,constructor是否执行问题
  20. 智能家居项目(八)之树莓派+摄像头进行人脸识别

热门文章

  1. Cookie或将被替换!Chrome工程师提议新型HTTP状态管理协议
  2. Java线程详解(6)-线程的交互
  3. Java线程详解(3)-线程栈模型与线程的变量
  4. SpringBoot常用配置简介
  5. spring 学习—spring 的ioc底层原理(03)
  6. mysql获取日期的月日_MySQL获取月,日的日期列表
  7. 如何面对边缘计算10个痛点?
  8. 谷歌数据中心采用机器人销毁硬盘驱动器
  9. Python编程语言学习:判断变量是否为NONE或False的几种常见写法(if not用法教程)
  10. Ubuntu之Pycharm:Ubuntu系统内Pycharm安装的图文教程