Deep Learning 圣经
三. 深度研究
这一部分介绍了当时比较前沿的主题和一些其它技术。在致敬Hinton的深度信念网络之后,推销自己的生成对抗模型,后来果然大火。
1. 蒙特卡洛方法(Monte Carlo)
Las Vegas和Monte Carlo这两个词本身是两座著名赌城,因为赌博中体现了许多随机算法,所以借过来命名。
- Las Vegas 总是精确地返回一个正确答案,但不保证能找到。假如有一把锁,给我100把钥匙,只有1把是对的。于是我每次随机拿1把钥匙去试,打不开就再换1把。我试的次数越多,打开(最优解)的机会就越大,但在打开之前,那些错的钥匙都是没有用的。这个试钥匙的算法,就是Las Vegas
- Monte Carlo 采样越多,越有机会找到最优解。假如筐里有100个苹果,让我每次闭眼拿1个,挑出最大的。于是我随机拿1个,再随机拿1个跟它比,留下大的,再随机拿1个……我每拿一次,留下的苹果都至少不比上次的小。拿的次数越多,挑出的苹果就越大,但我除非拿100次,否则无法肯定挑出了最大的。这个挑苹果的算法,就属于Monte Carlo,尽量找好的,但不保证是最好的。
蒙特卡罗方法始于20世纪40年代,和原子弹制造的曼哈顿计划密切相关,当时的几个大牛,包括乌拉姆、冯.诺依曼、费米、费曼、Nicholas Metropolis,在美国洛斯阿拉莫斯国家实验室研究裂变物质的中子连锁反应的时候,开始使用统计模拟的方法,并在最早的计算机上进行编程实现。
有一个重要的过渡问题就是给定一个概率分布
p
(
x
)
p(\boldsymbol{x})
p(x),如何在计算机中生成它的样本(如何采样)?
2. 采样
-
Why Sampling ?
- Provides a flexible way to approximate many sums and integrals at reduced cost.
- To approximate an intractable sum or integral.
- Need to sample from the training distribution.
-
大数定理 (Law of large number)
lim n → ∞ P ( ∣ X ‾ − μ ∣ < ε ) = 1 \lim_{n\to\infty}P(|\overline{X}-\mu|<\varepsilon)=1 n→∞limP(∣X−μ∣<ε)=1 -
蒙特卡洛采样(Monte Carlo Sampling)
1 n ∑ i = 1 n f ( x ( i ) ) ≈ lim n → ∞ 1 n ∑ i = 1 n f ( x ( i ) ) = ∑ x p ( x ) f ( x ) = E p [ f ( x ) ] \frac{1}{n}\sum_{i=1}^nf(x^{(i)}) \approx \lim_{n\to\infty}\frac{1}{n}\sum_{i=1}^nf(x^{(i)})=\sum_{\boldsymbol{x}}p(\boldsymbol{x})f(\boldsymbol{x})=E_{p}[f(\boldsymbol{x})] n1i=1∑nf(x(i))≈n→∞limn1i=1∑nf(x(i))=x∑p(x)f(x)=Ep[f(x)]
当年学概率论的时候感觉它只是在形式上变来变去,无法体会其意义。
p ( x ) p(\boldsymbol{x}) p(x) 是随机变量 x \boldsymbol{x} x(独立同分布 i.i.d)的概率分布,当 p ( x ) p(\boldsymbol{x}) p(x)不是那么直接的可以得到,但是由 p ( x ) p(\boldsymbol{x}) p(x)产生的样本比较容易获得的时候,可以通过对 x \boldsymbol{x} x,进行抽样绕过显示的 p ( x ) p(\boldsymbol{x}) p(x)表达。 -
重要采样(Importance Sampling)
An important step in the decomposition of the integrand is to decide which part should play the role the probability p ( x ) p(\boldsymbol{x}) p(x)
p ( x ) f ( x ) = q ( x ) p ( x ) f ( x ) q ( x ) p(\boldsymbol{x})f(\boldsymbol{x})=q(\boldsymbol{x})\frac{p(\boldsymbol{x})f(\boldsymbol{x})}{q(\boldsymbol{x})} p(x)f(x)=q(x)q(x)p(x)f(x)
where we now sample from q q q and average p f q \frac{pf}{q} qpf. The optimal q ∗ q^* q∗ corresponds to what is called optimal importance sampling \textbf{importance sampling} importance sampling.
Any Monte Carlo estimator
s ^ p = 1 n ∑ i = 1 , x ( i ) ∽ p n f ( x ( i ) ) \hat{s}_{p}=\frac{1}{n}\sum_{i=1,\boldsymbol{x}^{(i)}\backsim p}^nf(\boldsymbol{x}^{(i)}) s^p=n1i=1,x(i)∽p∑nf(x(i))
can be transformed into an importance sampling estimator
s ^ q = 1 n ∑ i = 1 , x ( i ) ∽ q n p ( x ( i ) ) f ( x ( i ) ) q ( x ( i ) ) \hat{s}_{q}=\frac{1}{n}\sum_{i=1,\boldsymbol{x}^{(i)}\backsim q}^n\frac{p(\boldsymbol{x}^{(i)})f(\boldsymbol{x}^{(i)})}{q(\boldsymbol{x}^{(i)})} s^q=n1i=1,x(i)∽q∑nq(x(i))p(x(i))f(x(i)) -
马尔可夫链蒙特卡洛方法(MCMC)
引入这个的原因是当我们希望采用蒙特卡洛方法时,往往不存在一种简单的方法可以直接从目标分布 p m o d e l ( x ) p_{model}(\boldsymbol{x}) pmodel(x)中精确采样或者一个方差较小的重要采样分布 q ( x ) q(\boldsymbol{x}) q(x)。其核心思想是满足一定假设条件下从某个任意值的状态 x \boldsymbol{x} x出发,随着时间推移,随机反复更新状态 x \boldsymbol{x} x。最终 x \boldsymbol{x} x成为了一个从 p ( x ) p(\boldsymbol{x}) p(x)中抽出的比较一般的样本。即对于转移分布 T ( x ′ ∣ x ) T(\boldsymbol{x}^{'}|\boldsymbol{x}) T(x′∣x),从 q ( x ) q(\boldsymbol{x}) q(x)中采样反复更新
x ← x ′ ∼ T ( x ′ ∣ x ) \boldsymbol{x} \leftarrow \boldsymbol{x}^{'} \sim T(\boldsymbol{x}^{'}|\boldsymbol{x}) x←x′∼T(x′∣x) -
吉布斯采样(Gibbs Sampling)
我们希望马尔可夫链的 q ( x ) q(\boldsymbol{x}) q(x)就是 p m o d e l ( x ) p_{model}(\boldsymbol{x}) pmodel(x),吉布斯采样就是为了解决这个问题,它选取合适的 T ( x ′ ∣ x ) T(\boldsymbol{x}^{'}|\boldsymbol{x}) T(x′∣x),构造了一个从 p m o d e l ( x ) p_{model}(\boldsymbol{x}) pmodel(x)中采样的马尔可夫链进行采样。
3. 优化方法
在凸优化和数值优化两本书里面有很详尽的解释。
- SGD
- 带动量的SGD
- Adam
- 牛顿法
- 共轭梯度
- BFGS