问题描述
蒙特卡洛方法
利用蒙特卡洛方法其实就是用概率论中的期望理论。比如用蒙特卡洛方法求定积分:
∫
a
b
f
(
x
)
d
x
\int_a^bf(x)dx
∫abf(x)dx。
首先考虑被积函数在积分区间内的平均值的计算表达式。积分区间是
(
a
,
b
)
(a,b)
(a,b),在区间
(
a
,
b
)
(a,b)
(a,b)上进行均匀采样,也就是每个点采到的概率就是
1
b
−
a
\frac{1}{b-a}
b−a1,也就是对应的每个函数值
f
(
x
)
f(x)
f(x)出现的概率为
1
b
−
a
\frac{1}{b-a}
b−a1,所以此时平均值为:
∫
a
b
f
(
x
)
1
b
−
a
d
x
\int_a^bf(x)\frac{1}{b-a}dx
∫abf(x)b−a1dx,与我们求的值
∫
a
b
f
(
x
)
d
x
\int_{a}^{b}f(x)dx
∫abf(x)dx有什么关系呢?可以看出差个
(
b
−
a
)
(b-a)
(b−a)。因此我们可以用平均采样求出的函数期望值乘以区间长度来估计定积分的值。其他高维积分也可以这样考虑。
而对于两个函数乘积形式的:
∫
a
b
f
(
x
)
p
(
x
)
d
x
\int_a^bf(x)p(x)dx
∫abf(x)p(x)dx这种看成均匀采样意义下的
f
(
x
)
p
(
x
)
f(x)p(x)
f(x)p(x)的均值,也可以看成非均匀意义下的采样均值。例如以
p
(
x
)
p(x)
p(x)为采样概率分布进行采样,采到每个函数值的概率为
p
(
x
)
p(x)
p(x),因此这些函数值的期望就是:
∫
a
b
f
(
x
)
p
(
x
)
d
x
\int_a^bf(x)p(x)dx
∫abf(x)p(x)dx,这恰好就是我们要求的值。即
∫
a
b
f
(
x
)
p
(
x
)
d
x
=
f
(
x
)
p
(
x
)
‾
x
∼
U
(
a
,
b
)
×
∫
a
b
d
x
=
f
(
x
)
‾
x
∼
p
(
x
)
\int_a^bf(x)p(x)dx=\overline{f(x)p(x)}_{x\sim{U(a,b)}}\times\int_a^bdx=\overline{f(x)}_{x\sim{p(x)}}
∫abf(x)p(x)dx=f(x)p(x)x∼U(a,b)×∫abdx=f(x)x∼p(x)
注意上式中要求:
∫
a
b
p
(
x
)
d
x
=
1
\int_a^bp(x)dx=1
∫abp(x)dx=1
所以让我们回头看之前计算一个函数的定积分我们可以看到:
∫
a
b
f
(
x
)
d
x
=
f
(
x
)
‾
x
∼
U
(
a
,
b
)
×
∫
a
b
d
x
=
(
b
−
a
)
f
(
x
)
‾
x
∼
U
(
a
,
b
)
\int_a^bf(x)dx=\overline{f(x)}_{x\sim{U(a,b)}}\times\int_a^bdx=(b-a)\overline{f(x)}_{x\sim{U(a,b)}}
∫abf(x)dx=f(x)x∼U(a,b)×∫abdx=(b−a)f(x)x∼U(a,b)
因此蒙特卡洛可以用来求积分,也可以用来求期望。同时也可以用来求期望梯度。