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

目录

[policy 与表格方式的区别:](#policy 与表格方式的区别:)

[metric to define optimal policies](#metric to define optimal policies)

[1. weighted averge](#1. weighted averge)

[2. the average reward](#2. the average reward)

问题:

梯度计算

如何理解policy-gradient?


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

policy 通过参数化的函数来表示:

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

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

  2. 对最优策略的定义:

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

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

  1. access action的概率:
  • 查表

  • 计算给定参数和函数结构下的值

  1. 更新policy:
  • 直接更改表中的值

  • 通过改变参数来更改

metric to define optimal policies

1. weighted averge

.

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

. where

如何选择分布d?

  1. d独立与policy : 梯度更容易计算。这种情况下d -> , as

如何选择

  • 将所有状态看作同等重要的,

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

  1. d 依赖于policy

, 其中P是状态转移矩阵。

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

2. the average reward

weighted average one-step reward 或者average reward:

. 从状态s开始的one-step immediate reward

  • 从某个状态出发,跑无穷多步,reward的平均是:
  1. basic idea of policy gradient methods:
  • 这些metrics都是的函数,是由参数化的,这些metrics是的函数。

  • 通过最大化metrics来寻找最优的值;

  • 直觉上, 是短视的(只考虑即时reward),考虑了所有step的总共reward;

  • 但是,这两个metrics是彼此相等的(在discounted case中):

问题:

  • 这个metric与之前的关系?

clarify and understand this metric:

and

梯度计算

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

如何转换得到的?

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

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

gradient-ascent algorithm(REINFORCE)

采样:

也是未知的,可以通过采样来近似(MonteCarlo等)

如何来采样?

  • how to sample S? , distribution d is a long-run hehavior under

  • how to sample A ? , should be sampled following at

so , policy gradient is on-policy.

REINFORCE是online还是offline的?

如何理解policy-gradient?

其中

  • , 选择的概率被加强

可以很好的平衡exploration and exploitation

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

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

相关推荐
薛定e的猫咪10 分钟前
【ICML 2025】MODULI:基于扩散模型解锁离线多目标强化学习的偏好泛化
人工智能·学习·算法·机器学习
Brilliantwxx12 分钟前
【C++】priority_queue以及 仿函数 的学习
开发语言·c++·笔记·学习·算法
风味蘑菇干13 分钟前
斗地主案例
java·数据结构·算法
洛水水34 分钟前
【力扣100题】39.二叉树的最近公共祖先
算法·leetcode·职场和发展
无敌昊哥战神44 分钟前
【LeetCode 134】加油站:图解指针跳跃与 O(N) 极简贪心,避开 Python 隐藏坑!
c语言·python·算法·leetcode
人道领域1 小时前
【LeetCode刷题日记】222.极速计算完全二叉树节点数:O(log²n)算法揭秘
java·数据结构·算法·leetcode·深度优先
目黑live +wacyltd1 小时前
算法备案的实操指南(含截图示例)
人工智能·算法·llm·大模型备案·算法备案
小糯米6011 小时前
C语言 指针4
c语言·数据结构·算法
洛水水1 小时前
【力扣100题】36.二叉树展开为链表
算法·leetcode·链表
lwf0061641 小时前
PNN (Product-based Neural Network) 学习日记
算法·机器学习