【强化学习基础知识】KL 散度的蒙特卡洛近似(from John Schulman, the cofounder of OPENAI)

KL 散度的蒙特卡洛近似

Refer to: Blog

KL 散度的定义如下:

K L [ q , p ] = ∑ x q ( x ) log ⁡ q ( x ) p ( x ) = E x ∼ q [ log ⁡ q ( x ) p ( x ) ] KL[q, p] = \sum_x q(x) \log \frac{q(x)}{p(x)} = E_{x \sim q} \left[ \log \frac{q(x)}{p(x)} \right] KL[q,p]=xq(x)logp(x)q(x)=Exq[logp(x)q(x)]

本文介绍了一种近似计算 KL 散度的技巧,即使用 1 2 ( log ⁡ p ( x ) − log ⁡ q ( x ) ) 2 \frac{1}{2} (\log p(x) - \log q(x))^2 21(logp(x)logq(x))2 的样本均值来替代 log ⁡ q ( x ) p ( x ) \log \frac{q(x)}{p(x)} logp(x)q(x),其中 x x x 采样自 q q q。本文将解释为什么这个表达式是一个不错的(尽管有偏差的)KL 估计器,以及如何在保持低方差的同时使其无偏。

计算 KL 的不同方法

我们计算 KL 的方法取决于我们对 p p p q q q 的访问方式。假设我们可以计算 p ( x ) p(x) p(x) q ( x ) q(x) q(x),但无法解析求和。为什么无法解析计算?

  1. 计算精确 KL 需要过多的计算或存储资源。
  2. 没有封闭形式的表达式。
  3. 我们可以仅存储对数概率,而不是整个分布。如果 KL 只是作为一个诊断工具(例如在强化学习中),这是一个合理的选择。

蒙特卡洛估计是最常见的求和或积分的方法。给定样本 x 1 , x 2 , ⋯ ∼ q x_1, x_2, \cdots \sim q x1,x2,q,我们如何构造一个良好的估计?

一个好的估计器应该是无偏的(均值正确)并且方差低。已知一个无偏估计器(在 q q q 的样本下)是:

k 1 = log ⁡ q ( x ) p ( x ) = − log ⁡ r k_1 = \log \frac{q(x)}{p(x)} = -\log r k1=logp(x)q(x)=logr

其中, r = p ( x ) q ( x ) r = \frac{p(x)}{q(x)}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值