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

note

文章目录

  • note
  • 一、策略梯度算法
  • 二、策略梯度算法的优缺点
  • 时间安排
  • Reference

    一、策略梯度算法

    • 策略梯度(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=0∑T​∇θ​logπθ​(at​∣st​)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) πθ​(at​∣st​) 是在状态 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