Why Sampling
采样是生活和机器学习算法中都会经常用到的技术,一般来说采样的目的是评估一个函数在某个分布上的期望值:
$$
E_{x\sim P(x)}[f(x)] = \int_Xf(x)P(x)d_x
$$
这就是评估f(x)在PDF(概率密度函数) P(X)这个分布上的期望值
通过Monte Carlo的思想我们可以知道,多次对一个分布进行采样,可以通过均值来作为真实期望的近似。根据中心极限定理可知,当采样次数无限多次的时候,样本的均值就是真实的期望值。(如抛硬币)
部分概率密度函数过于复杂,不像扔硬币,均匀分布那般好采样,所以我们需要通过另外的思想进行采样。
Inverse Sampling
计算概率密度函数的分布函数(cdf)。
$$
F(x) = \int_{-\infty}^xf(a)da
$$
对于分布函数$F(x) \in [0,1]$, 对于这个分布函数在[0,1]区间进行均匀采样,如采样得到t,说明对于该分布来说实际应该采样为x。
$$
F(x) = \int_{-\infty}^xf(a)da = t \Leftrightarrow x = cdf^{-1}(t)
$$
如果能计算出F(x)的话,可以通过二分的思想找到对应的样本,如果无法计算F(x),可以通过将连续的函数切割成多个小段,一段一段当成矩形叠加,知道概率和超过t。
Rejective Sampling
Importance Sampling
$$
x^2 + \frac{1}{2} + \int_{0}^{+\infty} + \sum + \sigma + \lambda + \gamma + \theta
$$