Policy Gradient【强化学习的数学原理】

目录

policy 与表格方式的区别:

metric to define optimal policies

1. weighted averge

2. the average reward

问题:

梯度计算

如何理解policy-gradient?


policy gradient与表格方式(value based)的区别:

policy 通过参数化的函数来表示:\pi (a|s, \theta)

函数近似与表格方式的区别:

1. 在状态空间很大时,相比表格形式会更高效

1. 对最优策略的定义:

        - 表格形式:能够最大化每个状态值的策略\pi是最优策略;

        - 函数形式:最大化certain scalar metrics的是最优策略;

2. access action的概率:

       - 查表

       - 计算给定参数和函数结构下\pi (a|s, \theta)的值

3. 更新policy:

       - 直接更改表中的值

       - 通过改变参数\theta来更改

metric to define optimal policies

1. weighted averge

\overline{v_{\pi}} = \sum_{s \in S}^{}d(s)v_{\pi}(s).  \sum_{s \in S}^{}d(s) = 1

d(s)是一个概率分布。

\overline{v_{\pi}} = \Xi [v_{\pi}(S)].  where S \sim d

如何选择分布d?

1. d独立与policy \pi: 梯度更容易计算。这种情况下d -> d_0,  \overline{v_{\pi}} as \overline{v}_{\pi}^0

如何选择d_0

- 将所有状态看作同等重要的,d_0(s) = 1/|S|

- 只对特殊状态s_0感兴趣。一些任务总是从相同的状态s_0开始,所有我们只关心从s_0 开始的长期:

d_0(s_0) = 1, d_0(s \neq s_0) = 0

2. d 依赖于policy \pi

d_{\pi}^TP_{\pi} = d_{\pi}^T , 其中P是状态转移矩阵。

如果一个状态经常被访问,那么它会产生更多的权重。相反,则是更少的权重

2. the average reward

weighted average one-step reward 或者average reward:

\overline{r}_{\pi} = \sum_{s \in S}^{}d_{\pi}(s)r_{\pi}(s) = \Xi [r_{\pi}(s) ]

r_{\pi}(s) = \sum_{a \in A}^{}\pi(a|s)r(s,a). 从状态s开始的one-step immediate reward

r(s,a) =\Xi [R|s,a] = \sum_{r}^{}rp(r|s,a)

- 从某个状态出发,跑无穷多步,reward的平均是:

lim_{n\rightarrow \infty}\frac{1}{n}\Xi [R_{t+1} + R_{t+2} + ... + R_{t+n}| S_t=s_0]

=lim_{n\rightarrow \infty}\frac{1}{n}\Xi [\sum_{k=1}^{n}R_{t+k}| S_t=s_0]

=lim_{n\rightarrow \infty}\frac{1}{n}\Xi [\sum_{k=1}^{n}R_{t+k}]

= \sum_{s \in S}^{}d_{\pi}(s)r_{\pi}(s) =\overline{r}_{\pi}

1. basic idea of policy gradient methods:

- 这些metrics都是\pi的函数,\pi是由\theta参数化的,这些metrics是\theta的函数。

- 通过最大化metrics来寻找最优的\theta值;

2. 

- 直觉上,\overline{r}_{\pi} 是短视的(只考虑即时reward),\overline{v}_{\pi}考虑了所有step的总共reward;

- 但是,这两个metrics是彼此相等的(在discounted case中):\overline{r}_{\pi} = (1-\lambda)\overline{v}_{\pi}

问题:

J(\theta) = \Xi [\sum_{t=0}^{\infty}{\lambda}^tR_{t+1}] 这个metric与之前的关系?

clarify and understand this metric:

A_t \sim \pi(s_t) and R_{t+1}, S_{t+1} \sim p(R_{t+1}|s_t, A_t) p(S_{t+1}|s_t, A_t)

J(\theta) = \Xi [\sum_{t=0}^{\infty}{\lambda}^tR_{t+1}] = \sum_{s \in S}^{}d(s)\Xi[\sum_{t=0}^{\infty}\gamma^tR_{t+1}|S_0=s] = \sum_{s \in S}d(s)v_{\pi}(s) = \bar{v}_{\pi}

梯度计算

\bigtriangledown_{\theta} J(\theta) =\sum_{s \in S}^{} \eta (s)\sum_{a \in A}^{}\bigtriangledown_{\theta}\pi(a|s, \theta)q_{\pi}(s,a)

将其转换为期望的形式,就可以通过采样的方式来求解梯度:

=\Xi [\bigtriangledown_{\theta}In\pi(A|S, \theta)q_{\pi}(S,A)]

如何转换得到的?

\bigtriangledown_{\theta}In\pi(a|s, \theta)=\frac{\bigtriangledown_{\theta}\pi(a|s, \theta)}{\pi(a|s, \theta)}

\bigtriangledown_{\theta}\pi(a|s, \theta)=\pi(a|s, \theta)\bigtriangledown_{\theta}In\pi(a|s, \theta)

\bigtriangledown_{\theta} J(\theta) =\sum_{s}^{} d (s)\sum_{a \in A}^{}\bigtriangledown_{\theta}\pi(a|s, \theta)q_{\pi}(s,a)

=\sum_{s}^{} d (s)\sum_{a \in A}^{}\pi(a|s, \theta)\bigtriangledown_{\theta}In\pi(a|s, \theta)q_{\pi}(s,a)

=\Xi _{S \sim d}[\sum_{a \in A}^{}\pi(a|s, \theta)\bigtriangledown_{\theta}In\pi(a|s, \theta)q_{\pi}(s,a)]

=\Xi _{S \sim d, A \sim \pi}[\bigtriangledown_{\theta}In\pi(A|S, \theta)q_{\pi}(S,A)]

=\Xi [\bigtriangledown_{\theta}In\pi(A|S, \theta)q_{\pi}(S,A)]

其中\pi 要求是>0的,所以\pi 采用softmax函数的形式,\sum_a \pi(a|s) =1(对应网络中的激活层);策略是stochastic的且探索性的。

那么如果action是无穷多个怎么办?

gradient-ascent algorithm(REINFORCE)

\theta_{t+1}=\theta_t +\alpha\Xi [\bigtriangledown_{\theta}In\pi(A|S, \theta)q_{\pi}(S,A)]

采样:

\theta_{t+1}=\theta_t +\alpha \bigtriangledown_{\theta}In\pi(a_t|s_t, \theta)q_{\pi}(s_t,a_t)

q_{\pi}(s_t,a_t) 也是未知的,可以通过q_{t}(s_t,a_t)采样来近似(MonteCarlo等)

\theta_{t+1}=\theta_t +\alpha \bigtriangledown_{\theta}In\pi(a_t|s_t, \theta)q_{t}(s_t,a_t)

如何来采样?

\Xi _{S \sim d, A \sim \pi}[\bigtriangledown_{\theta}In\pi(A|S, \theta)q_{\pi}(S,A)] \rightarrow \bigtriangledown_{\theta}In\pi(a|s, \theta)q_{\pi}(s,s)

- how to sample S? S \sim d, distribution d is a long-run hehavior under \pi

- how to sample A ? A \sim \pi(A|S, \theta)a_t  should be sampled following \pi(\theta_t) at s_t

so , policy gradient is on-policy.

REINFORCE是online还是offline的?

如何理解policy-gradient?

\bigtriangledown_{\theta}In\pi(a|s, \theta)=\frac{\bigtriangledown_{\theta}\pi(a|s, \theta)}{\pi(a|s, \theta)}

\theta_{t+1}=\theta_t +\alpha \bigtriangledown_{\theta}In\pi(a_t|s_t, \theta)q_{\pi}(s_t,a_t)

=\theta_t +\alpha (\frac{q_{\pi}(s_t,a_t)}{\pi(a_t|s_t, \theta_t)})\bigtriangledown_{\theta}\pi (a_t|s_t, \theta)

其中\beta_t =\frac{q_{\pi}(s_t,a_t)}{\pi(a_t|s_t, \theta_t)}

- 当\beta_t >0, 选择(s_t, a_t)的概率被加强

\pi (a_t|s_t, \theta_{t+1}) > \pi (a_t|s_t, \theta_{t})

- 当\beta_t <0

\pi (a_t|s_t, \theta_{t+1}) < \pi (a_t|s_t, \theta_{t})

\beta_t 可以很好的平衡exploration and exploitation

正比于分子,算法会倾向于加强有更大值的action

反比于分母,会探索有更小概率被选择的action

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87588.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【深圳大学机器学习】实验一:PCA算法

实验目的 1、实现PCA算法的人脸重构&#xff0c;即用20,40,60,80,...,160个投影来重构图像的效果。 2、实现PCA算法的人脸识别&#xff0c;给出不少于三个人脸数据库上 10,20,30,...,160维的人脸识别识别率&#xff0c;并打印出识别率变化曲线图。 3、用PCA用来进行人脸图像…

编程中的英语

case this are mixed case version case在这里表示大小写&#xff1f;为什么case可以表示大小写的含义&#xff1f; “case”在这里的含义 在句子“This are mixed case version”中&#xff0c;“case”确实表示“大小写”&#xff0c;用于描述字母的形式&#xff08;大写字母…

LabVIEW开发关节轴承试验机

LabVIEW通过NI硬件&#xff08;CompactRIO 实时控制器、FPGA 模块等&#xff09;与模块化软件设计的结合&#xff0c;实现试验参数采集、多工况控制、数据存储的并行处理&#xff0c;体现LabVIEW 在工业自动化中对多任务并发场景的高效支持能力。 ​ 应用场景 关节轴承试验机…

【Linux庖丁解牛】— 动静态库的制作和使用!

1. 什么是库库是写好的现有的&#xff0c;成熟的&#xff0c;可以复⽤的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能 每个⼈的代码都从零开始&#xff0c;因此库的存在意义⾮同寻常。 本质上来说库是⼀种可执⾏代码的⼆进制形式&#xff0c;可以被操作系统…

Hadoop集群启动 (ZooKeeper、HDFS、YARN、Hbase)

一、启动ZooKeeper集群 sh /opt/modules/zookeeper-3.4.14/bin/zkServer.sh start[hadoopcentos01 ~]$ sh /opt/modules/zookeeper-3.4.14/bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /opt/modules/zookeeper-3.4.14/bin/../conf/zoo.cfg Startin…

React Hooks全面解析:从基础到高级的实用指南

React Hooks全面解析&#xff1a;从基础到高级的实用指南 React Hooks自2018年16.8版本引入以来&#xff0c;彻底改变了React组件的开发方式。** Hooks使函数组件获得了与类组件同等的表达能力&#xff0c;同时简化了代码结构&#xff0c;提升了可维护性**。本文将系统介绍Rea…

LINUX75 LAMP

LAMP 环境 yum NetworkManager systemctl status firewalld setenforce 0 Last login: Fri Jul 4 19:21:47 2025 from 192.168.235.1 [rootweb ~]# cd /usr/local/apache2/conf/ [rootweb conf]# ls extra httpd.conf httpd.conf.bak magic mime.types original [root…

cloudflare配合github搭建免费开源影视LibreTV一个独享视频网站 详细教程

一、项目简介 LibreTV 是一个开源的 IPTV/影视聚合前端项目&#xff0c;支持 M3U 播放列表、EPG 电子节目单等。它本身是纯前端项目&#xff0c;非常适合用 GitHub Pages Cloudflare 免费托管。 二、准备工作 GitHub 账号 注册并登录 GitHub Cloudflare 账号 注册并登录 …

Linux/Unix进程概念及基本操作(PID、内存布局、虚拟内存、环境变量、fork、exit、wait、exec、system)

进程 文章目录 进程I 进程基本概念1、进程和程序2、进程号和父进程号3、进程内存布局4、虚拟内存管理&#xff08;1&#xff09;程序的两种局部性&#xff08;2&#xff09;虚拟内存的规划&#xff08;3&#xff09;虚拟内存的优点 5、栈和栈帧6、命令行参数argc和argv7、环境变…

0基础学Python系列【25】 单元测试入门教程

大家好,欢迎来到Python学习的第三站!🎉 这部分会涉及一些Python的进阶技术,虽然不一定是必需的,但学会这些,你会觉得编程更得心应手。 本章要学什么? Python调试器(pdb)装饰器lambda函数代码性能分析单元测试入门 —— 今天讲这里听起来有点多?别担心,我们慢慢来,…

iOS常见内存错误码

一、经典十六进制错误码0xDEADBEEF&#xff08;EXC_BAD_ACCESS&#xff09; 含义&#xff1a;野指针访问&#xff08;访问已释放的内存地址&#xff09;。 记忆点&#xff1a;“DEAD BEEF” 可理解为 “死亡牛肉”&#xff0c;象征指针指向的内存已 “死亡”。 触发场景&#x…

CSS01:CSS的快速入门及优势

CSS快速入门 style 练习格式&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>CSS</title><!-- 规范,<style>可以编写css代码,每一个声明最好用分号结尾语法&#xff1a;…

springsecurity5配置之后启动项目报错:authenticationManager cannot be null

目录 配置代码 报错信息 解决办法 配置代码 下面的配置为响应式的配置方式 //这个配置只是配置springboot admin的一个例子,具体的配置可能比较复杂 @EnableWebFluxSecurity public class SecurityConfig {private final AdminServerProperties adminServer;public Securi…

攻防世界-Rerverse-game

知识点 1.ida逆向 2.函数分析逆向 步骤 用Exeinfo打开&#xff0c;为32位exe文件。 方法一&#xff1a; 玩游戏通关&#xff0c;根据游戏规则&#xff0c;m1&#xff0c;n依次为1到8即可得到flag。 方法二&#xff1a; 用32位IDA打开 ctrlF搜索main&#xff0c;点击_main,…

openEuler 24.03 全流程实战:用 Ansible 5 分钟部署分布式 MinIO 高可用集群

目录 0 | 为什么要写这篇教程&#xff1f; 1 | 准备工作 1.1 控制节点手工下载 MinIO 1.2 SSH 互信&#xff08;可跳过&#xff0c;本教程已有互信&#xff09; 1.3 安装 Ansible & SELinux 依赖 2 | 项目目录 3 | Inventory hosts.ini 4 | 变量文件 group_vars/al…

最左匹配原则

导读&#xff1a; 首先创建一张 test 表&#xff0c;并插入一些数据&#xff1a; CREATE TABLE test ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键, a int(11) NOT NULL, b int(11) NOT NULL, c int(11) NOT NULL, d int(11) NOT NULL, PRIMARY KEY (id), KEY idx_abc …

MySQL 8.0 OCP 1Z0-908 题目解析(17)

题目65 Choose two. Which two are characteristics of snapshot-based backups? □ A) The frozen file system can be cloned to another virtual machine immediately into active service. □ B) There is no need for InnoDB tables to perform its own recovery when re…

Level2_12小球与挡板(移动+反弹)

一、前引 #已经学习完了: #1.数据结构&#xff1a;集合、元组、字典 #2.函数 #3.类和对象 #4.继承与多态 #1.规划编程项目: #&#xff08;1&#xff09;你想做什么什么样功能的项目&#xff1f; # 接小球游戏,碰到挡板时自动反弹 #&#xff08;2&#xff09;功能有哪些&#x…

win11 2025开机禁用微软账号登录,改本地用户登录,品牌预装机福音

今天开箱了品牌商出厂系统一台华为笔记本&#xff0c;开机提示连接wifi并需要登录微软账号&#xff0c;其中过程实在缓慢&#xff0c;而且老是提示自动更新&#xff0c;速度太慢了&#xff0c;等的花都谢了&#xff0c;进到桌面大概得要30-40分钟&#xff0c;还不如本地用户登录…

【嵌入式ARM汇编基础】-ELF文件格式内部结构详解(三)

ELF文件格式内部结构详解(三) 文章目录 ELF文件格式内部结构详解(三)12、动态部分和动态加载13、依赖加载(需要)14、程序重定位14.1 静态重定位14.2 动态重定位14.3 全局偏移表 (GOT)14.4 过程链接表 (PLT)12、动态部分和动态加载 ELF 文件格式中的 .dynamic 部分用于指…