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

相关推荐
青少儿编程课堂31 分钟前
迪杰斯特拉(Dijkstra)算法:单源最短路与赛场路线规划
c++·python·算法·bfs·信息学竞赛
不会就选b40 分钟前
算法日常・每日刷题--<动态规划>19
算法·leetcode·职场和发展
没有钱的钱仔2 小时前
协方差矩阵含义
算法·机器学习·矩阵
垆边人似月.2 小时前
华为机试题 :和为 K 的子数组个数
算法·leetcode·华为
三*一2 小时前
优化修整算法
前端·javascript·算法
达子6663 小时前
RUST 图解 第 3 章:通用编程概念(Common Programming Concepts)
开发语言·算法·rust
夏幻灵3 小时前
每日一题:LeetCode 165:比较版本号
算法·leetcode·职场和发展
道尔柯南3 小时前
C++ 面向对象编程入门:类和对象(上)
开发语言·c++·算法
Navigator_Z3 小时前
LeetCode //C - 1288. Remove Covered Intervals
c语言·算法·leetcode