重要性采样

news/2024/5/18 23:51:23 标签: 强化学习, Off Policy

重要性采样

前言

离散型随机变量 X X X,我们可以通过以下方法求取其期望:

  1. 直接计算法,需要知道概率分布:
    E ( X ) = ∑ x ∈ X [ p ( x ) ⋅ x ] \mathbb{E}(X)=\sum_{x\in X}\left[p(x)\cdot x\right] E(X)=xX[p(x)x]

  2. 采样计算,这时即使 X X X概率分布未知,依据大数定律,当采样次数够大时,仍然可以求取期望
    E ( X ) = 1 n lim ⁡ n → + ∞ ∑ i = 0 n − 1 x i \mathbb{E}(X)=\frac{1}{n}\lim_{n\to +\infty}\sum_{i=0}^{n-1} x_i E(X)=n1n+limi=0n1xi

连续型随机变量 X X X

  1. 直接计算,需要 f f f表达式

E ( X ) = ∫ x x ⋅ f ( x ) d x \mathbb{E}(X)=\int_x x\cdot f(x)dx E(X)=xxf(x)dx

  1. 抽样(蒙特卡洛积分估计),这里不多做介绍

重要性采样

思想:如果已知随机变量 X ∼ p 0 X\sim p_0 Xp0,在 p 0 p_0 p0下随机采样了一批数据 { x i } ∼ p 0 \{x_i\}\sim p_0 {xi}p0,现在要求随机变量 X ∼ p 1 X\sim p_1 Xp1下的期望,则:
E X ∼ p 1 [ X ] = ∑ x p 1 ( x ) ⋅ x = ∑ x p 0 ( x ) p 1 ( x ) p 0 ( x ) ⋅ x = E X ∼ p 0 [ f ( X ) ] \mathbb{E}_{X\sim p_1}[X]=\sum_x p_1(x)\cdot x=\sum_x p_0(x) \frac{p_1(x)}{p_0(x)}\cdot x=\mathbb{E}_{X\sim p_0}[f(X)] EXp1[X]=xp1(x)x=xp0(x)p0(x)p1(x)x=EXp0[f(X)]
那么就有如下几个问题:

  1. 对于离散型随机变量,为什么 p 1 ( x ) p_1(x) p1(x)已知,不直接计算期望呢?

    • 因为有时候我们已经根据 p 0 p_0 p0采样了一些数据,再用 p 1 p_1 p1重新采样计算一遍,会增加很多计算量。
    • 因为有些时候不方便对 p 1 p_1 p1采样
    • 强化学习中,我们根据一个策略采样,通过重要性采样可以求出另一个策略的期望,是一种On Policy向Off Policy转换的思想。
  2. 对于连续型随机变量,为什么 p 1 ( x ) p_1(x) p1(x)已知,不直接计算期望呢?

    理论上不可能完全求出概率密度函数,所以无法从理论上计算期望,只能估计。

    例如,如果我们通过神经网络来表示 f f f,那么对任意的输入 x x x,我们都可以求出 f ( x ) f(x) f(x),但是这并不代表我们求出 f f f的函数表达式,更无法进一步求积分。我们只是能从数值上计算出 f ( x ) f(x) f(x),神经网络本身就是一个黑盒。

综上所述,重要性采样使得我们能够从behavior policy采样,然后去估计target policy的期望,从而使得On Policy的算法转换为Off Policy


http://www.niftyadmin.cn/n/5010748.html

相关文章

批量上传图片添加水印

思路&#xff1a; 1、循环图片列表&#xff0c;批量添加水印。 2、与之对应的html页面也要魂环并添加水印。 代码实现&#xff1a; <view style"width: 0;height: 0;overflow: hidden;position:fixed;left: 200%;"><canvas v-for"(item,index) in …

concurrentHashMap jdk1.8

文章目录 属性&#xff1a;内部类&#xff1a;Node链表节点&#xff1a;ForwardingNode节点&#xff1a;TreeNode节点&#xff1a;TreeBin节点&#xff1a; put方法treeifyBin方法&#xff1a;tryPresize方法&#xff1a;addCount方法helpTransfer方法&#xff1a;transfer方法…

G. Replace With Product Codeforces Round 895 (Div. 3)

Problem - G - Codeforces 题目大意&#xff1a;有一个长度为n的数组a&#xff0c;要求选出一个区间[l,r]&#xff0c;将这个区间内的所有数删掉&#xff0c;替换成这些数的乘积&#xff0c;要求令操作后的整个数组和最大&#xff0c;求操作的区间 1<n<2e5;1<a[i]&l…

Java版企业电子招标采购系统源码—企业战略布局下的采购寻源

功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外部供…

QCefView 的 编译

CEF QCefView编译 学习QT加载网页时了解到CEF与QCefView, QCefView是一个与Chromium Embedded Framework集成的Qt第三方开源库&#xff0c;LGPL许可&#xff0c;可以在项目中免费使用&#xff0c;功能类似CEF、QWebEngineView&#xff0c;提供C和web交互的能力。 官方网址&a…

制作周变化日程组件

要实现的样子 实现的功能&#xff1a; 上面年月左右切换至改变月份&#xff0c;改变后显示月份的1号在的一周从周天开始 下面周历左右切换周&#xff0c;当存在1号的时候月份变为1号的月份和年份。 点击日程时间下面的日程变化&#xff08;日程上的点代表有日程信息&#xff09…

JAR will be empty - no content was marked for inclusion!

现象 在对自建pom依赖组件打包时&#xff0c;出现JAR will be empty - no content was marked for inclusion!错误。 方案 在pom中怎么加packaging标签内容为pom&#xff0c;标识只打包pom文件 <?xml version"1.0" encoding"UTF-8"?> ...<grou…

索尼 toio™应用创意开发征文|一步两步三步模拟浇花系统

目录 1.toio™介绍 2、创意分析 2.1 创意设计 2.2 创意落地 3、创意实现 3.1 环境安装 3.2 核心玩法 总结 1.toio™介绍 索尼的toio™是一款启发创意的机器人产品&#xff0c;旨在通过与真实世界的互动&#xff0c;为各年龄段的用户提供娱乐体验。这款产品具有高度的灵…