【RL】(task2)策略梯度算法

note

一、策略梯度算法

  • 策略梯度(Policy Gradient)算法是一类用于解决强化学习问题的算法,它通过直接对策略进行参数化,并利用梯度上升的方法来优化策略参数,从而最大化期望回报。
  • 策略梯度算法:智能体的行为策略决定了它在环境中的行动,而策略的参数化表示则决定了行为策略的具体形式。智能体的目标是找到一组最优的策略参数,使得在遵循该策略与环境交互时,能够获得最大的累积奖励。
  • 策略通常表示为一个参数化的概率分布,智能体根据这个分布来选择动作。例如,如果我们有一个离散的动作空间(如上下左右移动的动作),策略可以是动作的概率分布;如果动作空间是连续的,策略可以是动作的概率密度函数。
  • 策略梯度算法的关键公式是策略梯度定理,它表达了策略参数对策略性能的影响。策略梯度定理可以表示为:
    ∇ θ J ( θ ) = E τ ∼ p ( τ ; θ ) [ ∑ t = 0 T ∇ θ log ⁡ π θ ( a t ∣ s t ) A π ( s t , a t ) ] \nabla_\theta J(\theta)=\mathbb{E}_{\tau \sim p(\tau ; \theta)}\left[\sum_{t=0}^T \nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right) A^\pi\left(s_t, a_t\right)\right] θJ(θ)=Eτp(τ;θ)[t=0Tθlogπθ(atst)Aπ(st,at)]

其中:

  • J ( θ ) J(\theta) J(θ) 是策略的期望回报, 也称为性能函数。
  • θ \theta θ 是策略的参数。
  • τ \tau τ 表示一个轨迹 (trajectory), 即一个完整的交互序列 s 0 , a 0 , r 1 , s 1 , a 1 , … , s T s_0, a_0, r_1, s_1, a_1, \ldots, s_T s0,a0,r1,s1,a1,,sT
  • p ( τ ; θ ) p(\tau ; \theta) p(τ;θ) 是在策略 π θ \pi_\theta πθ 下生成轨迹的概率。
  • π θ ( a t ∣ s t ) \pi_\theta\left(a_t \mid s_t\right) πθ(atst) 是在状态 s t s_t st 下采取动作 a t a_t at 的概率。
  • A π ( s t , a t ) A^\pi\left(s_t, a_t\right) Aπ(st,at) 是动作值函数 (Advantage Function),它衡量了在状态 s t s_t st 下采取动作 a t a_t at 相对于平均情况的优势。

在实际应用中,我们通常无法直接计算上述期望值,因为环境模型通常是未知的。因此,策略梯度算法通常需要通过采样来估计这个期望值。智能体通过与环境交互来收集经验,然后使用这些经验来估计梯度,并更新策略参数。

二、策略梯度算法的优缺点

策略梯度算法的优点是实现简单,适用于连续动作空间,并且可以处理随机环境。然而,它也存在一些缺点,比如样本效率可能较低,策略更新可能非常不稳定等。为了改进这些缺点,研究者们提出了许多策略梯度的变种算法,如自然策略梯度(Natural Policy Gradient)、信任域策略优化(Trust Region Policy Optimization, TRPO)和近端策略优化(Proximal Policy Optimization, PPO)等。

时间安排

任务 天数 截止时间 注意事项
Task01: 马尔可夫过程、DQN算法 3天 1月15周一-17日周三
Task02: 策略梯度算法 3天 1月18日周四-20周六
Task03: A2C、A3C算法、JoyRL开源文档(关注多进程) 3天 1月21日周日-23日周二
Task04: DDPG、TD3算法 3天 1月24日周三-26日周五
Task05: PPO算法,JoyRL代码实践(选择任一算法任一环境,研究算法不同参数给实验结果带来的影响,也可以用JoyRL上没有跑过的环境尝试) 6天 1月27日周六-2月1号周四

Reference

[1] 开源内容https://linklearner.com/learn/detail/91
[2] https://github.com/datawhalechina/joyrl-book

相关推荐

  1. 【RL】(task2)策略梯度算法

    2024-01-23 07:04:08       38 阅读
  2. 随机梯度下降算法

    2024-01-23 07:04:08       22 阅读
  3. Python梯度下降算法

    2024-01-23 07:04:08       13 阅读

最近更新

  1. PHP String manipulation: A comprehensive guide

    2024-01-23 07:04:08       0 阅读
  2. Qt5 Ubuntu18 QStackedWidget

    2024-01-23 07:04:08       0 阅读
  3. WebKit源代码探秘:深入理解其组织结构与组件

    2024-01-23 07:04:08       1 阅读
  4. 【回溯+双指针算法题记录】回文字符串汇总

    2024-01-23 07:04:08       1 阅读
  5. 2288. 价格减免

    2024-01-23 07:04:08       1 阅读
  6. Quartz 介绍

    2024-01-23 07:04:08       1 阅读
  7. Taro自定义实现本地路径转换为文件

    2024-01-23 07:04:08       1 阅读
  8. Python 类与对象:深入理解与应用

    2024-01-23 07:04:08       0 阅读

热门阅读

  1. 云原生周刊:Meshery v0.70 发布 | 2024.1.22

    2024-01-23 07:04:08       26 阅读
  2. 02-docker下部署seata

    2024-01-23 07:04:08       30 阅读
  3. R基础语法

    2024-01-23 07:04:08       31 阅读
  4. 数据结构-学习笔记

    2024-01-23 07:04:08       27 阅读
  5. 如何发布自己的npm包

    2024-01-23 07:04:08       32 阅读