文章目录

  • 1.基本元素
  • 2.游戏示例
  • 3.基本概念
    • 3.1.回合(episode)
    • 3.2.总奖励(Total Reward)
    • 3.3.轨迹(Trajectory)
    • 3.4.奖励期望(Expected Reward)
    • 3.5.求奖励期望最大值

1.基本元素

  • 智能体(Agent/Actor,后面统一用Agent表示),相当于人;智能体内部有一个用于决策的策略(Policy),相当于人做一件事情的策略(或“方案”)。
  • 环境(Environment)
  • 奖励函数(Reward Function)

由于 EnvironmentReward Function 在游戏开始之前就已经确定好了,所以唯一能做的就是通过调整 Agent(实际是调整内部的 Policy ),得到最大奖励

Agent 中的 Policy 相当于一个函数 A c t i o n = π θ ( O b s e r v a t i o n ) Action = π_\theta(Observation) Action=πθ​(Observation) 。输入是观察的内容,输出是要做出的动作。由于这个函数是未知的,所以参数用 θ \theta θ 表示。 以人下棋为例,Agent相当于是下棋的人,Policy是人下棋的套路(或者说是下棋的策略),Policy相当于一个函数,输入的当前棋的局势,输出是落子的位置。

2.游戏示例

游戏开始图:

游戏结束图:

游戏过程:

  • 首先,Agent观察到游戏当前的状态(Observation)为 s 1 s_1 s1​,Agent做出了动作(Action) a 1 a_1 a1​,得到了奖励(Reward) r 1 r_1 r1​。此时,由于游戏的状态从 s 1 s_1 s1​变成了 s 2 s_2 s2​。
  • 然后,Agent观察到游戏当前的状态(Observation)为 s 2 s_2 s2​,Agent做出了动作(Action) a 2 a_2 a2​,得到了奖励(Reward) r 2 r_2 r2​。此时,由于游戏的状态从 s 2 s_2 s2​变成了 s 3 s_3 s3​。
  • ……
  • 游戏走了 T T T 步以后,游戏结束。

注意事项:
问: Observation和State含义是否相同?
答: 是相同的。Observation是从Agent的角度出发,讲Agent观察(Observation)到环境的内容;而State是从环境的角度出发,讲环境自身的状态(State)。本质是相同的,描述的是同一个东西,只是观察的角度不同而已

3.基本概念

3.1.回合(episode)

从游戏开始到游戏结束,一局游戏称为一个回合(episode)

3.2.总奖励(Total Reward)

总奖励(Total Reward, R)是指:一局游戏从开始到结束累积的奖励,即: R = r 1 + r 2 + … + r T = ∑ t = 1 T r t R = r_1 + r_2 + … + r_T = \sum\limits_{t=1}^T r_{t} R=r1​+r2​+…+rT​=t=1∑T​rt​ (第一步得到的奖励 r 1 r_1 r1​ + 第二步得到的奖励 r 2 r_2 r2​ + …… + 第T步得到的奖励 r T r_T rT​。)

3.3.轨迹(Trajectory)

定义:
在一局游戏中,把Agent观察到的状态 s s s 、Agent采取的动作 a a a 串联起来,组成一个集合,该集合称为轨迹(Trajectory),即: T r a j e c t o r y τ = { s 1 , a 1 , s 2 , a 2 , … , s T , a T } Trajectory \space \tau = \{s_1, a_1, s_2, a_2,…, s_T, a_T \} Trajectory τ={s1​,a1​,s2​,a2​,…,sT​,aT​}。一局游戏对应了一个 τ \tau τ ,玩了 N N N 局游戏就能得到 N N N 个 τ \tau τ 。

某条轨迹发生的概率:
玩了 N N N 局游戏以后,我们可以得到 N N N 个 τ \tau τ,我们可以试图计算某条轨迹 τ \tau τ 出现的概率。我们用 p θ ( τ ) p_\theta(\tau) pθ​(τ) 表示某个轨迹 τ \tau τ 出现的概率。

公式:
p θ ( τ ) = p ( s 1 ) ⋅ p θ ( a 1 ∣ s 1 ) ⋅ p ( s 2 ∣ s 1 , a 1 ) ⋅ p θ ( a 2 ∣ s 2 ) ⋅ p ( s 3 ∣ s 2 , a 2 ) … ⋅ p ( s T + 1 ∣ s T , a T ) p_\theta(\tau) =p(s_1) \cdot p_\theta(a_1|s_1) \cdot p(s_2 | s_1, a_1) \cdot p_\theta(a_2 | s_2) \cdot p(s_3 | s_2, a_2)…\cdot p(s_{T+1} | s_T, a_T) pθ​(τ)=p(s1​)⋅pθ​(a1​∣s1​)⋅p(s2​∣s1​,a1​)⋅pθ​(a2​∣s2​)⋅p(s3​∣s2​,a2​)…⋅p(sT+1​∣sT​,aT​)

公式解读:

  • p ( s 1 ) p(s_1) p(s1​) 是指:游戏环境出现状态 s 1 s_1 s1​的概率。这个概率由游戏控制的,我们无法得知也无法学习。

  • p θ ( a 1 ∣ s 1 ) p_\theta(a_1|s_1) pθ​(a1​∣s1​) 是指:当Agent观察到环境状态为 s 1 s_1 s1​时,做出动作 a 1 a_1 a1​的概率,这部分是Agent自身可以控制的。换句话说,优秀的Agent知道当观察到环境状态为 s 1 s_1 s1​时,采取什么样的动作action得到的奖励 r 1 r_1 r1​最大。如何决策,是可以学习的。我们要学习的就是参数 θ \theta θ。

  • p ( s 2 ∣ s 1 , a 1 ) p(s_2 | s_1, a_1) p(s2​∣s1​,a1​) 是指:在状态 s 1 s_1 s1​下,Agent采取了 a 1 a_1 a1​的动作后,环境跳转到状态 s 2 s_2 s2​的概率。这个概率由游戏控制的,我们无法得知也无法学习。

  • p θ ( a 2 ∣ s 2 ) p_\theta(a_2 | s_2) pθ​(a2​∣s2​) 是指:当Agent观察到环境状态为 s 2 s_2 s2​时,做出动作 a 2 a_2 a2​的概率,这部分是Agent自身可以控制的。如何决策,是可以学习的。我们要学习的就是参数 θ \theta θ。

公式推导:

p θ ( τ ) = p ( s 1 ) ⋅ p θ ( a 1 ∣ s 1 ) ⋅ p ( s 2 ∣ s 1 , a 1 ) ⋅ p θ ( a 2 ∣ s 2 ) ⋅ p ( s 3 ∣ s 2 , a 2 ) ⋯ p ( s T + 1 ∣ s T , a T ) = p ( s 1 ) ⋅ [ p θ ( a 1 ∣ s 1 ) ⋅ p θ ( a 2 ∣ s 2 ) ⋯ p θ ( a T ∣ s T ) ] ⋅ [ p ( s 2 ∣ s 1 , a 1 ) ⋅ p ( s 3 ∣ s 2 , a 2 ) ⋯ p ( s T + 1 ∣ s T , a T ) ] = p ( s 1 ) ⋅ ∏ t = 1 T p θ ( a t ∣ s t ) ⋅ ∏ t = 1 T p ( s t + 1 ∣ s t , a t ) = p ( s 1 ) ⋅ ∏ t = 1 T p θ ( a t ∣ s t ) ⋅ p ( s t + 1 ∣ s t , a t ) \begin{aligned} p_\theta(\tau) &= p(s_1) \cdot p_\theta(a_1|s_1) \cdot p(s_2 | s_1, a_1) \cdot p_\theta(a_2 | s_2) \cdot p(s_3 | s_2, a_2) \cdots p(s_{T+1} | s_T, a_T) \\ &= p(s_1) \cdot [p_\theta(a_1|s_1) \cdot p_\theta(a_2|s_2) \cdots p_\theta(a_T|s_T)]\cdot[p(s_2 | s_1, a_1) \cdot p(s_3 | s_2, a_2) \cdots p(s_{T+1} | s_T, a_T)] \\ &=p(s_1) \cdot \prod\limits_{t=1}^T p_\theta(a_t|s_t) \cdot \prod\limits_{t=1}^T p(s_{t+1}|s_t, a_t) \\ &=p(s_1) \cdot \prod\limits_{t=1}^T p_\theta(a_t|s_t) \cdot p(s_{t+1}|s_t, a_t) \end{aligned} pθ​(τ)​=p(s1​)⋅pθ​(a1​∣s1​)⋅p(s2​∣s1​,a1​)⋅pθ​(a2​∣s2​)⋅p(s3​∣s2​,a2​)⋯p(sT+1​∣sT​,aT​)=p(s1​)⋅[pθ​(a1​∣s1​)⋅pθ​(a2​∣s2​)⋯pθ​(aT​∣sT​)]⋅[p(s2​∣s1​,a1​)⋅p(s3​∣s2​,a2​)⋯p(sT+1​∣sT​,aT​)]=p(s1​)⋅t=1∏T​pθ​(at​∣st​)⋅t=1∏T​p(st+1​∣st​,at​)=p(s1​)⋅t=1∏T​pθ​(at​∣st​)⋅p(st+1​∣st​,at​)​

其中:

  • p ( s 1 ) p(s_1) p(s1​)和 p ( s t + 1 ∣ s t , a t ) p(s_{t+1}|s_t, a_t) p(st+1​∣st​,at​)是游戏环境的参数,与Agent无关,Agent不能控制。
  • p θ ( a t ∣ s t ) p_\theta(a_t|s_t) pθ​(at​∣st​)是在 s t s_t st​状态下采取行动 a t a_t at​的概率,是Agent可以控制的,通过学习可以得到 p θ ( a t ∣ s t ) p_\theta(a_t|s_t) pθ​(at​∣st​)的概率。同时根据学习可以知道面对环境状态 s t s_t st​时,采取哪个 a t a_t at​得到的奖励多,那我们就可以增加这个 a t a_t at​的概率。

3.4.奖励期望(Expected Reward)

通过不断地玩游戏,可以获得游戏的奖励期望(Expected Reward),用 R ‾ θ {\overline{R}_\theta} Rθ​ 表示 。
奖励期望可以理解成:玩游戏获得的平均奖励。玩了N局游戏,得到了N条轨迹。根据全概率公式,计算每条轨迹出现的概率以及对应的奖励,可以获得奖励期望。

R ‾ θ = ∑ τ R ( τ ) ⋅ p θ ( τ ) = E τ ∼ p θ ( τ ) [ R ( τ ) ] {\overline{R}_\theta} = \sum\limits_{\tau} R(\tau) \cdot p_\theta(\tau) = E_{\tau \sim p_{\theta}(\tau)}[R(\tau)] Rθ​=τ∑​R(τ)⋅pθ​(τ)=Eτ∼pθ​(τ)​[R(τ)]

R ( τ ) R(\tau) R(τ) :指的是某条轨迹对应的总的奖励值

p θ ( τ ) p_\theta(\tau) pθ​(τ):指的是某条轨迹出现的概率

对应关系:
1 1 1 个奖励期望对应了 N N N 条游戏轨迹 τ \tau τ。
1 1 1 条游戏轨迹 τ \tau τ 对应了游戏的 T T T 步(骤)。

3.5.求奖励期望最大值

我们的目标是想知道模型Agent什么时候可以得到最大的奖励期望值 R ‾ θ {\overline{R}_\theta} Rθ​。但模型是带有参数 θ \theta θ 的,我们需要通过解方程知道当参数 θ \theta θ 值为多少时,可以获得最大的奖励期望值。(知道 θ \theta θ 的取值,模型就是已知模型了。)在此,我们利用梯度下降的方法进行 θ \theta θ 的求解。

梯度下降法更新公式: θ = θ + η ⋅ ∇ R ‾ θ \theta = \theta + \eta \cdot \nabla{\overline{R}_\theta} θ=θ+η⋅∇Rθ​
其中, η \eta η 是学习率,是人为设置的。 ∇ R ‾ θ \nabla{\overline{R}_\theta} ∇Rθ​ 是对 R ‾ θ {\overline{R}_\theta} Rθ​ 的梯度值,因此需要先对 R ‾ θ {\overline{R}_\theta} Rθ​ 求梯度。

【强化学习笔记】策略梯度(Policy Gradient)相关推荐

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

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

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

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

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

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

  4. 强化学习笔记: generalized policy iteration with MC

    强化学习笔记: MDP - Policy iteration_UQI-LIUWJ的博客-CSDN博客 强化学习笔记:Q-learning_UQI-LIUWJ的博客-CSDN博客 在policy ite ...

  5. 【7】强化学习之策略梯度(Policy Gradient)

    [李宏毅]强化学习笔记(一) 什么是强化学习 监督学习 VS. 强化学习 AlphaGo Chat-bot Outline 1. Policy-based Approach:Learning an A ...

  6. 【强化学习】策略梯度Policy-Gradient

    目录 Value-based 强化学习方法的不足 Policy-based 强化学习方法的引入 策略梯度的优化目标 策略函数的设计 Softmax策略函数 Gauss策略函数 蒙特卡罗策略梯度rein ...

  7. 强化学习(Reinforcement Learning)之策略梯度(Policy Gradient)的一点点理解以及代码的对应解释

    一.策略梯度算法推导以及解释 1.1 背景 设πθ(s)\pi_{\theta }(s)πθ​(s)是一个有网络参数θ\thetaθ的actor,然后我们让这个actor和环境(environment ...

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

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

  9. 强化学习PPO从理论到代码详解(1)--- 策略梯度Policy gradient

    第0章 闲聊吹水 Proximal Policy Optimization(PPO) 近端策略优化,可以说是目前最稳定,最强的强化学习算法之一了,也是openAI默认的强化学习算法,有多叼不用我说了吧 ...

  10. 7. 基于策略的强化学习——蒙特卡洛策略梯度REINFORCE算法

    前6篇我们都是估计动作值函数Q,从而可以根据估计的Q值选择相应的动作.但是这样的值函数(Value Based)估计方法有着一定的限制.第一,值函数估计方法最后得到的策略是固定策略,不能应对最优策略是 ...

最新文章

  1. PHP——explode的应用(获取字符串,拆为下拉列表)
  2. Cassandra 2016/00
  3. Combinations leetcode java
  4. Android adb远程调试
  5. 【DotNetMLLearn】.NET Core 人工智能系列-.NET Interactive环境介绍
  6. Android开源库
  7. PHP 每天的总结(1)
  8. qps多少才算高并发_AGV小车价格多少才算合适?
  9. python高阶函数心得体会_Python高阶函数总结
  10. 三星note8android 9.0,三星S9/S9+计划明天推送安卓9.0正式版、S8/S8+、Note8下周推测试版...
  11. ExoPlayer的监听事件(Kotlin)
  12. GIS与CAD在村庄规划中的图框位置一致处理
  13. C语言实现循环缓冲fifo及总结
  14. EXCEL兼容性检查
  15. android编译系统分析一:source build/envsetup.sh与lunch
  16. 国内免费ChatGPT
  17. unity2D制作一个2D游戏场景Tilemap
  18. Vue动画出现和隐藏
  19. oracle中的fms和erp的区别,MRP系统和ERP系统有什么区别?
  20. Java多线程 解决private对象逸出--返回副本

热门文章

  1. 关于相关国企央企求职心得
  2. 专业电源管理 (PMIC)MAX17608ATC+T MAX17608电流限制器
  3. [附源码]java毕业设计社区养老服务管理系统
  4. 数据治理第1享:数据资产目录
  5. K_A08_001 基于 STM32等单片机驱动L298N模块按键控制直流电机启停正反转加减速
  6. vbnet 操作CAD 之块的制作
  7. 阿里P8架构师王福强大牛,[Spring boot揭秘]引领程序员成神之路
  8. 微服务做成镜像部署到容器
  9. BZOJ4820 [SDOI2017]硬币游戏
  10. Android_PopUpWindow_相机-相册