在拒绝采样中,我们用以下公式表示给定 Y Y Y 的条件下的接受率:
P ( a c c e p t ∣ Y ) = P ( U < f ( Y ) c g ( Y ) ∣ Y ) = f ( Y ) c g ( Y ) P(accept|Y)=P(U< \frac{f(Y)}{cg(Y)}|Y ) = \frac{f(Y)}{cg(Y)} P(accept∣Y)=P(U<cg(Y)f(Y)∣Y)=cg(Y)f(Y)
接受率的作用
那么,这个接受率有什么用呢?简单来说,如果 P ( a c c e p t ∣ Y ) P(accept|Y) P(accept∣Y) 的值较高,这意味着更多的样本会被接受,而拒绝采样的效率也会相应提高。相反,如果这个概率很低,那么很多样本会被拒绝,这会降低采样的效率。
总结有以下四点作用:
-
保证正确的分布:当我们从建议分布 g ( Y ) g(Y) g(Y) 中取样时,我们并不直接取得来自 f ( Y ) f(Y) f(Y) 的样本。通过拒绝策略,我们可以纠正这个偏差。 P ( a c c e p t ∣ Y ) P(accept|Y) P(accept∣Y)允许我们对每个样本进行校准,确保最终的样本集遵循 f ( Y ) f(Y) f(Y)。
-
效率评估:理想情况下,我们希望拒绝的样本尽可能少,这样采样过程就会更高效。如果 P ( a c c e p t ∣ Y ) P(accept|Y) P(accept∣Y)很低,这意味着我们经常拒绝样本,可能需要考虑选择更好的提议分布 g ( Y ) g(Y) g(Y)。
-
理解权重:考虑到 f ( Y ) c g ( Y ) \frac{f(Y)}{cg(Y)} cg(Y)f(Y),我们实际上是在比较目标分布和提议分布在特定值 Y Y Y处的权重。这有助于我们理解两者之间的关系,以及我们需要多大的调整才能从 g ( Y ) g(Y) g(Y)获得 f ( Y ) f(Y) f(Y)的样本。
-
优化常数 c c c:为了使拒绝采样方法有效,我们选择 c c c使得 c × g ( Y ) c \times g(Y) c×g(Y)总是大于或等于 f ( Y ) f(Y) f(Y)。理想情况下,我们希望 c c c越小越好,以减少拒绝的可能性。知道 P ( a c c e p t ∣ Y ) P(accept|Y) P(accept∣Y) 可以帮助我们调整 c c c 的值。
公式解析
采用拒绝采样(Rejection Sampling)时,我们的目的是从一个复杂的分布 f ( Y ) f(Y) f(Y)中抽样,但直接从 f ( Y ) f(Y) f(Y)中抽样可能是困难的或计算量太大。为了解决这个问题,我们使用一个简单的提议分布 g ( Y ) g(Y) g(Y) 来辅助采样,其中 g ( Y ) g(Y) g(Y)是我们容易抽样的分布。
然而,我们不能直接从 g ( Y ) g(Y) g(Y)中取样然后假设它是从 f ( Y ) f(Y) f(Y)中取得的。为了确保最后的样本遵循 f ( Y ) f(Y) f(Y)的分布,我们使用了拒绝策略。具体步骤如下:
- 选择一个常数 c c c,使得 c × g ( Y ) c \times g(Y) c×g(Y)在所有 Y Y Y上都大于等于 f ( Y ) f(Y) f(Y)。
- 从 g ( Y ) g(Y) g(Y)中抽取一个样本 y y y。
- 从均匀分布 U ( 0 , 1 ) U(0,1) U(0,1)中生成一个随机数 U U U。
- 如果 U < f ( y ) c × g ( y ) U < \frac{f(y)}{c \times g(y)} U<c×g(y)f(y),则接受样本 y y y;否则,拒绝 y y y并回到步骤2。
现在,来解释给定的公式:
P
(
a
c
c
e
p
t
∣
Y
)
=
P
(
U
<
f
(
Y
)
c
g
(
Y
)
∣
Y
)
=
f
(
Y
)
c
g
(
Y
)
P(accept|Y)=P(U< \frac{f(Y)}{cg(Y)}|Y ) = \frac{f(Y)}{cg(Y)}
P(accept∣Y)=P(U<cg(Y)f(Y)∣Y)=cg(Y)f(Y)
这个公式描述了给定一个样本 Y Y Y的情况下,它被接受的概率。
1. P ( a c c e p t ∣ Y ) P(accept|Y) P(accept∣Y):这是给定样本 Y Y Y的情况下,它被接受的概率。
2. P ( U < f ( Y ) c g ( Y ) ∣ Y ) P(U< \frac{f(Y)}{cg(Y)}|Y ) P(U<cg(Y)f(Y)∣Y):这表示,给定样本 Y Y Y的情况下,随机数 U U U小于 f ( Y ) c g ( Y ) \frac{f(Y)}{cg(Y)} cg(Y)f(Y)的概率。
3. f ( Y ) c g ( Y ) \frac{f(Y)}{cg(Y)} cg(Y)f(Y):这是接受 Y Y Y的实际概率。直观地说,这比较了我们真正感兴趣的目标分布 f ( Y ) f(Y) f(Y)和调整后的提议分布 c × g ( Y ) c \times g(Y) c×g(Y)之间的关系。如果 f ( Y ) f(Y) f(Y)在某个点 Y Y Y的值很高,而 g ( Y ) g(Y) g(Y)的值相对较低,那么这个比率就会接近1,这意味着在这个点上几乎总是接受样本。
简而言之,该公式描述了在拒绝采样过程中,给定一个样本 Y Y Y时接受它的概率。
更直观的解释
拒绝采样的基本步骤:
- 从易于采样的分布 g ( Y ) g(Y) g(Y)中取样。
- 使用均匀分布 U ∼ U ( 0 , 1 ) U \sim U(0,1) U∼U(0,1)生成一个随机数 U U U。
- 如果 U < f ( Y ) c g ( Y ) U < \frac{f(Y)}{cg(Y)} U<cg(Y)f(Y),接受样本 Y Y Y,否则拒绝。
在上面的步骤中,我们实际上是通过比较 U U U 和 f ( Y ) c g ( Y ) \frac{f(Y)}{cg(Y)} cg(Y)f(Y) 来决定是否接受样本 Y Y Y。
现在,让我们看看给定 Y Y Y 时 U U U 小于 f ( Y ) c g ( Y ) \frac{f(Y)}{cg(Y)} cg(Y)f(Y)的概率是多少?
因为
U
U
U是从均匀分布
U
(
0
,
1
)
U(0,1)
U(0,1)中取的,所以:
P
(
U
<
x
)
=
x
P(U < x) = x
P(U<x)=x 其中
0
≤
x
≤
1
0 \leq x \leq 1
0≤x≤1。(这里看不懂的话,见下一节【均匀分布的基本属性】)
在我们的情境下,我们想知道
U
U
U小于
f
(
Y
)
c
g
(
Y
)
\frac{f(Y)}{cg(Y)}
cg(Y)f(Y)的概率,所以:
P
(
U
<
f
(
Y
)
c
g
(
Y
)
∣
Y
)
=
f
(
Y
)
c
g
(
Y
)
P(U < \frac{f(Y)}{cg(Y)}|Y) = \frac{f(Y)}{cg(Y)}
P(U<cg(Y)f(Y)∣Y)=cg(Y)f(Y)
这个公式实际上就告诉我们,给定
Y
Y
Y,接受样本的概率是多少。而这恰好等于
f
(
Y
)
c
g
(
Y
)
\frac{f(Y)}{cg(Y)}
cg(Y)f(Y),因此:
P
(
a
c
c
e
p
t
∣
Y
)
=
f
(
Y
)
c
g
(
Y
)
P(accept|Y) = \frac{f(Y)}{cg(Y)}
P(accept∣Y)=cg(Y)f(Y)
更直观地,可以想象成你正在尝试从一个小山丘( f ( Y ) f(Y) f(Y))上采样,但你只有一个大山丘的工具( c g ( Y ) cg(Y) cg(Y))。为了确保你的样本仍然来自小山丘,你会按照小山丘与大山丘的比例接受或拒绝样本。如果你在小山丘的高点,那么你更有可能接受那个点,而如果你在低点,你就更有可能拒绝。
总之,给定 Y Y Y时,接受样本的概率恰好是 f ( Y ) c g ( Y ) \frac{f(Y)}{cg(Y)} cg(Y)f(Y)。
均匀分布的基本属性
首先,我们必须记住, U U U是从均匀分布 U ( 0 , 1 ) U(0,1) U(0,1)中采样的。这意味着,对于这个分布中的任何值 x x x,随机变量 U U U落在区间 [ 0 , x ] [0, x] [0,x]的概率就是 x x x。简单来说, P ( U < x ) = x P(U < x) = x P(U<x)=x。
例如:
- P ( U < 0.5 ) = 0.5 P(U < 0.5) = 0.5 P(U<0.5)=0.5
- P ( U < 0.1 ) = 0.1 P(U < 0.1) = 0.1 P(U<0.1)=0.1
- P ( U < 0.9 ) = 0.9 P(U < 0.9) = 0.9 P(U<0.9)=0.9
这是均匀分布的基本属性。因为在区间 [ 0 , 1 ] [0,1] [0,1]内,每一个小区间(如[0.1, 0.2],[0.3, 0.4]等)的长度都是均匀分布中的值落入这个小区间的概率。
所以,当我们说 P ( U < f ( Y ) c g ( Y ) ∣ Y ) P(U < \frac{f(Y)}{cg(Y)}|Y) P(U<cg(Y)f(Y)∣Y),我们实际上是在说:在已知 Y Y Y的条件下, U U U落在区间 [ 0 , f ( Y ) c g ( Y ) ] [0, \frac{f(Y)}{cg(Y)}] [0,cg(Y)f(Y)]的概率。
由于 U U U是均匀分布的,这个概率直接等于 f ( Y ) c g ( Y ) \frac{f(Y)}{cg(Y)} cg(Y)f(Y)。这就是为什么
P ( U < f ( Y ) c g ( Y ) ∣ Y ) = f ( Y ) c g ( Y ) P(U < \frac{f(Y)}{cg(Y)}|Y) = \frac{f(Y)}{cg(Y)} P(U<cg(Y)f(Y)∣Y)=cg(Y)f(Y)。
整体的接受概率
P ( a c c e p t ∣ Y ) = P ( U < f ( Y ) c g ( Y ) ∣ Y ) = f ( Y ) c g ( Y ) P(accept|Y)=P(U< \frac{f(Y)}{cg(Y)}|Y ) = \frac{f(Y)}{cg(Y)} P(accept∣Y)=P(U<cg(Y)f(Y)∣Y)=cg(Y)f(Y)
根据上面得到的公式,应用全概率公式:
P ( a c c e p t ∣ Y ) = P ( U < f ( Y ) c g ( Y ) ∣ Y ) = f ( Y ) c g ( Y ) P(accept|Y)=P(U< \frac{f(Y)}{cg(Y)}|Y ) = \frac{f(Y)}{cg(Y)} P(accept∣Y)=P(U<cg(Y)f(Y)∣Y)=cg(Y)f(Y)
我们又可以推导出:
P ( a c c e p t ) = ∑ y P ( a c c e p t ∣ Y ) P ( Y = y ) P(accept)=\sum_{y} P(accept|Y) P(Y=y) P(accept)=∑yP(accept∣Y)P(Y=y)
这是整体的接受概率。
由于 P ( a c c e p t ∣ Y ) = f ( y ) c g ( y ) P(accept|Y)=\frac{f(y)}{cg(y)} P(accept∣Y)=cg(y)f(y),我们得到:
∑ y P ( a c c e p t ∣ Y ) P ( Y = y ) = ∑ y f ( y ) c g ( y ) g ( y ) = 1 c \sum_{y} P(accept|Y) P(Y=y) = \sum_{y}\frac{f(y)}{cg(y)} g(y) = \frac{1}{c} ∑yP(accept∣Y)P(Y=y)=∑ycg(y)f(y)g(y)=c1