当前位置: 首页 > news >正文

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.lryc.cn/news/581337.html

相关文章:

  • elementui表格增加搜索功能
  • 供应链管理学习笔记4-供应链网络设计
  • 【MySQL进阶】错误日志,二进制日志,mysql系统库
  • 每日算法刷题Day42 7.5:leetcode前缀和3道题,用时2h
  • Android PNG/JPG图ARGB_8888/RGB_565‌解码形成Bitmap在物理内存占用大小的简单计算
  • WPF学习笔记(25)MVVM框架与项目实例
  • Kali Linux Wifi 伪造热点
  • LLM:位置编码详解与实现
  • 通过 Windows 共享文件夹 + 手机访问(SMB协议)如何实现
  • Git 版本控制完全指南:从入门到精通
  • 2025年3月青少年电子学会等级考试 中小学生python编程等级考试三级真题答案解析(判断题)
  • 如何解决Spring Boot中@Valid对List校验失效问题
  • Kafka消息积压的多维度解决方案:超越简单扩容的完整策略
  • 南山科技园的步行
  • LangChain:向量存储和检索器(入门篇三)
  • 利用已有的 PostgreSQL 和 ZooKeeper 服务,启动dolphinscheduler-standalone-server3.1.9 镜像
  • CppCon 2018 学习:Standard Library Compatibility Guidelines (SD-8)
  • 【Elasticsearch】检索排序 分页
  • 大数据学习1:Hadoop单机版环境搭建
  • 标定系列(三):lidar-gnss标定
  • 自动化Prompt生成平台的研发体系设计
  • pytorch学习-11卷积神经网络(高级篇)
  • VS Code中使用Git的方法:环境配置与Git操作
  • JavaFX:观察者集合(Observable Collections)的监听事件处理
  • 业务快速接入OSS对象存储和文件上传下载SDK对接
  • VMware 17安装Centos8.5虚拟机
  • Bootstrap 5学习教程,从入门到精通,Bootstrap 5 表单验证语法知识点及案例代码(34)
  • 1. 两数之和 (leetcode)
  • Delta、Jackknife、Bootstrap
  • FreeCAD傻瓜教程-拉簧拉力弹簧的画法及草图的附着位置设定和Part工作台中形体构建器的妙用