Machine Learning --007

自助法(Bootstrap)和极大似然法

如何对一堆数据进行建模分析?我们可以通过统计推断。比如我们可以求得其平均值/方差,然后看其接近哪种分布,这就是对数据的一种建模。
统计模型分两种,一种是参数模型,一种是非参数模型。前者,举个例子,我们可以通过设定平均值及方差,建立一个正态分布的模型,这个模型就属于参数模型。而后者,假如说需要无数个参数才能进行描述的模型,我们通常认为其是一种非参数模型。比如说一些概率分布很奇怪的数据,只能用PDF图来描述,这样的模型称之为非参数模型。

Bootstrap

自助法的思想前面已经说过了,这不再多说。
非参数自助法通过抽样来直接进行拟合。参数自助法则是通过抽样后求模型参数。假如有一堆数据,前者是抽取一部分数据,然后对这部分数据进行拟合就行;后者则是先建模——比如设定其是个正态分布,我们对通过抽样得到的数据进行求平均/求标准差进而得到正态分布的参数。

极大似然法(MLE)

我们首先设定某个随机样本满足某种概率分布(通过统计推断)。这样设定后具体的参数不清楚。但我们可以通过最大化样本如此呈现的可能性,来找到其对应的时刻的参数值。当然,假设我们手里有一堆数据,这些数据必须数据量够大,我们才可以说这些数据呈现出的状况就是这个分布对应的状况。否之,我们通过调节参数值呈现出来的这个最大的可能性,可能并不是真正的最大。
下面用数学一点的描述来说。
设\(θ = (θ_1,θ_2,...,θ_n)^T\)是一个参数向量。我们的目标是找到\(\theta\)的极大似然估计,其满足似然函数\(L(θ; X) = Pr(x_1, x_2,..., x_n|θ)\)最大化。我们对似然函数取\(\log\),将取对数后的似然函数对参数求偏导,令偏导为0求得参数。
MLE有如下性质:

  • 最大似然估计的抽样分布服从渐进正态分布

\[\hat \theta - N(θ_0,i(θ_0)^{−1}) \]

其中 \(θ_0\)

  • Fisher 信息量。
    \(i(θ) = E_θ[I(θ)]\)。其中\(I(\theta)\)是信息矩阵,其计算方法如下:

\[I(θ) = −\sum^N_{i=1}\frac{\partial^2l(\theta;z_i)}{\partial \theta \partial \theta^T} \]

当线性(或线性化)统计模型具有多个参数时,参数估计器的均值是向量,其方差是矩阵。方差矩阵的逆被称为“信息矩阵”。因为参数矢量的估计量的方差是矩阵,所以“最小化方差”的问题是复杂的。统计学家使用统计理论,使用实值汇总统计数据压缩信息矩阵;作为实值函数,这些“信息标准”可以最大化。这也就是为什么Fisher计算方法如此。

最大期望(EM算法)

最大期望算法(Expectation-Maximization algorithm, EM),或Dempster-Laird-Rubin算法 ,是一类通过迭代进行极大似然估计的优化算法 ,通常作为牛顿迭代法(Newton-Raphson method)的替代用于对包含隐变量或缺失数据的概率模型进行参数估计。
假设我们有一组数据,这组数据由两组正态分布的数据混在一起构成。我们无法直接求出模型分布参数,那么我们可以先猜想隐含参数(EM 算法的 E 步),接着基于观察数据和猜测的隐含参数一起来极大化对数似然,求解我们的模型参数(EM算法的M步)。由于我们之前的隐含参数是猜测的,所以此时得到的模型参数一般还不是我们想要的结果。我们基于当前得到的模型参数,继续猜测隐含参数(EM算法的 E 步),然后继续极大化对数似然,求解我们的模型参数(EM算法的M步)。以此类推,不断的迭代下去,直到模型分布参数基本无变化,算法收敛,找到合适的模型参数。其实就是一种动态调整直到平衡的算法。

贝叶斯推断

核心思想是以先验推后验。我们设先验分布为\(Pr(\theta)\),采样模型为:$ Pr(Z|θ)$,在观测到数据 Z 之后, 我们可以更新对其分布的认识并得到后验分布。利用贝叶斯公式,我们可以得到:

\[Pr(\theta|Z)= \frac{Pr(Z|θ)Pr(\theta)}{\int Pr(Z|\theta)Pr(\theta)d\theta}\propto L_n(\theta)Pr(\theta) \]

可以看到,后验与先验成正比。
如何利用贝叶斯相关的来预测未来的观测值\(z^{new}\)呢?我们只需要按\(Pr(z^{new}|Z)=\int Pr(z^{new}|\theta)Pr(\theta|Z)d\theta\)来求值即可。

MCMC(Markov chain Monte Carlo)

Monte Carlo

一个常见的问题: 直接计算$ E_{\pi}[h(\theta)] = ∫ h(θ)π(θ)dθ $是比较困难的。如果维数很高,或者是什么非初等函数,那计算上更是困难。但是如果我们能够多次抽样,这些样本只要足够多就会很接近真实分布,通过计算样本期望就可以不经过积分直接得到结果。这样的计算成本很小,也因此MC方法在高维问题中应用广泛。

Markov Chain

随机过程\(X(t)\)是一个带指标的随机变量,其中\(t\)可能是时间,\(X\)是随机变量。通过如下采样可以得到一条马氏链:\(X^{t+1} - p(x|X^t)\),p是转移核。下一时刻的X仅仅与当前时刻有关,这就是Markov 性。当 \(t \rightarrow inf\)时, 马氏链收敛于一个平稳分布。

MCMC

那么,如何构造一个平稳分布$ π(θ) $为目标分布的马尔可夫链呢?
这里用到的方法被称为MCMC(Markov Chain Monte Carlo)。有两个关键步骤:

  • 从联合概率分布生成样本
  • 使用生成的样本平均值估计期望值(MC积分)

GIbbs抽样

步骤如下:

  • 假定 \(θ = (θ_1,....,θ_k)\)
  • 依次采样或更新
• \(θ^{(t+1)}_1 ∼ π(θ_1^{(t)}|θ_2^{(t)} ,θ_3^{(t)} ...,θ_k^{(t)})\)
\(θ^{(t+1)}_2 ∼ π(θ_2^{(t)}||θ_1^{(t+1)} ,θ_3^{(t)} ,...,θ_k^{(t)})\)

...
\(θ^{(t+1)}_k ∼ π(θ_k^{(t)}|θ_2^{(t+1)} ,...,θ_{k-1}^{(t+1)})\)

这种采样方法,我们可以用矩阵更简单地表示出来,这个矩阵就是Markov Chain中的转移矩阵。这也是为什么GIbbs抽样会放在MCMC中讲到。

Gibbs抽样与EM一样,都是求解模型参数的迭代算法。

Bagging and Bumping

Bagging

自助法(也即Bootstrap),是一种评估参数估计或预测准确性的方法。套袋法(Bagging),则是Bootstrap的集成形式,使用自助法生成样本预测数据分类器。
基本思想是:给定一个弱学习算法,和一个训练集;但是单个弱学习算法准确率不高;将该学习算法使用多次,得出预测函数序列,进行投票(回归的话直接平均就成);最后结果准确率将得到提高。
其优点在于:

  • 减少方差,偏差不变
  • 如果学习算法不稳定,那么该估计量还可以显著提高
    问题在于:
  • 降低稳定程序的性能
  • 套袋 (bagging) 后会丢失结构

Bumping

Bumping:Bootstrap Umbrella of Model Parameters。其实质是:
\(\hat b = \arg min ∑^N_{i=1}[y_i − f^{∗b}(x_i)]2\)