【强化学习笔记】策略梯度(Policy Gradient)
文章目录
- 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)
由于 Environment
和 Reward 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∑Trt (第一步得到的奖励 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∏Tpθ(at∣st)⋅t=1∏Tp(st+1∣st,at)=p(s1)⋅t=1∏Tpθ(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)相关推荐
- 强化学习(十三) 策略梯度(Policy Gradient)
在前面讲到的DQN系列强化学习算法中,我们主要对价值函数进行了近似表示,基于价值来学习.这种Value Based强化学习方法在很多领域都得到比较好的应用,但是Value Based强化学习方法也有很 ...
- 【深度强化学习】策略梯度 Policy Gradients
文章目录 前言 values 和 policy 策略的表示 策略梯度 REINFORCE method 实例:CartPole 前言 重读<Deep Reinforcemnet Learning ...
- 系统学习深度学习(三十五)--策略梯度(Policy Gradient)
转自:https://www.cnblogs.com/pinard/p/10137696.html 在前面讲到的DQN系列强化学习算法中,我们主要对价值函数进行了近似表示,基于价值来学习.这种Valu ...
- 强化学习笔记: generalized policy iteration with MC
强化学习笔记: MDP - Policy iteration_UQI-LIUWJ的博客-CSDN博客 强化学习笔记:Q-learning_UQI-LIUWJ的博客-CSDN博客 在policy ite ...
- 【7】强化学习之策略梯度(Policy Gradient)
[李宏毅]强化学习笔记(一) 什么是强化学习 监督学习 VS. 强化学习 AlphaGo Chat-bot Outline 1. Policy-based Approach:Learning an A ...
- 【强化学习】策略梯度Policy-Gradient
目录 Value-based 强化学习方法的不足 Policy-based 强化学习方法的引入 策略梯度的优化目标 策略函数的设计 Softmax策略函数 Gauss策略函数 蒙特卡罗策略梯度rein ...
- 强化学习(Reinforcement Learning)之策略梯度(Policy Gradient)的一点点理解以及代码的对应解释
一.策略梯度算法推导以及解释 1.1 背景 设πθ(s)\pi_{\theta }(s)πθ(s)是一个有网络参数θ\thetaθ的actor,然后我们让这个actor和环境(environment ...
- 强化学习(4):策略梯度Policy Gradient算法
本章内容主要参考了UC Berkeley Deep RL Bootcamp的内容,由作者按照自己的理解整理而成 终于到Policy Gradient方法了! 一.引言 reinforcement le ...
- 强化学习PPO从理论到代码详解(1)--- 策略梯度Policy gradient
第0章 闲聊吹水 Proximal Policy Optimization(PPO) 近端策略优化,可以说是目前最稳定,最强的强化学习算法之一了,也是openAI默认的强化学习算法,有多叼不用我说了吧 ...
- 7. 基于策略的强化学习——蒙特卡洛策略梯度REINFORCE算法
前6篇我们都是估计动作值函数Q,从而可以根据估计的Q值选择相应的动作.但是这样的值函数(Value Based)估计方法有着一定的限制.第一,值函数估计方法最后得到的策略是固定策略,不能应对最优策略是 ...
最新文章
- PHP——explode的应用(获取字符串,拆为下拉列表)
- Cassandra 2016/00
- Combinations leetcode java
- Android adb远程调试
- 【DotNetMLLearn】.NET Core 人工智能系列-.NET Interactive环境介绍
- Android开源库
- PHP 每天的总结(1)
- qps多少才算高并发_AGV小车价格多少才算合适?
- python高阶函数心得体会_Python高阶函数总结
- 三星note8android 9.0,三星S9/S9+计划明天推送安卓9.0正式版、S8/S8+、Note8下周推测试版...
- ExoPlayer的监听事件(Kotlin)
- GIS与CAD在村庄规划中的图框位置一致处理
- C语言实现循环缓冲fifo及总结
- EXCEL兼容性检查
- android编译系统分析一:source build/envsetup.sh与lunch
- 国内免费ChatGPT
- unity2D制作一个2D游戏场景Tilemap
- Vue动画出现和隐藏
- oracle中的fms和erp的区别,MRP系统和ERP系统有什么区别?
- Java多线程 解决private对象逸出--返回副本
热门文章
- 关于相关国企央企求职心得
- 专业电源管理 (PMIC)MAX17608ATC+T MAX17608电流限制器
- [附源码]java毕业设计社区养老服务管理系统
- 数据治理第1享:数据资产目录
- K_A08_001 基于 STM32等单片机驱动L298N模块按键控制直流电机启停正反转加减速
- vbnet 操作CAD 之块的制作
- 阿里P8架构师王福强大牛,[Spring boot揭秘]引领程序员成神之路
- 微服务做成镜像部署到容器
- BZOJ4820 [SDOI2017]硬币游戏
- Android_PopUpWindow_相机-相册