估计方法 | Jason Hao's Blog
0%

估计方法

预定义符号

训练数据:\(D=\{(x_1,y_1),(x_2,y_2),...,(x_n, y_n)\}\)

模型参数:\(\theta\)

预测数据:\(x^*\)

概率函数与似然函数

对于函数 \(P(x|\theta)\),从不同角度分为两种情况:

  1. 如果 \(\theta\) 已知,\(x\) 是变量,则 \(P(x|\theta)\) 称为概率函数,表示不同 \(x\) 出现的概率
  2. 如果 \(x\) 已知,\(\theta\) 是未知变量,则 \(P(x|\theta)\) 称为概率函数,表示不同 \(\theta\) 下,\(x\) 出现的概率,也记作 \(L(\theta|x)\)

ML(最大似然估计,频率主义)

ML 的思想是找出使得观测数据 \(D\) 发生概率最大的参数

学习目标

\(\theta_{ML}=\underset{\theta}{argmax}\ p(D|\theta)\)

通常对目标函数对 \(\theta\) 求导,令导师等于 0 即可求出最优解

预测

\(p(\hat y|x^*,\theta_{ML})\)

缺点

  1. 没有考虑后验概率
  2. 容易过拟合数据

最大似然估计的求解步骤:

  1. 确定似然函数
  2. 将似然函数转换为对数似然函数
  3. 求对数似然函数的最大值(求导,解似然方程)

MAP(最大后验估计,频率主义)

ML 把参数 \(\theta\) 看做一个固定值,而 MAP 则认为 \(\theta\) 是一个随机变量,\(\theta\) 要满足某种概率分布,即先验分布,因此求解 \(\theta\) 时不仅要考虑似然函数 \(p(D|\theta)\) 还要考虑 \(\theta\) 的先验分布 \(p(\theta)\)。MAP 通常被认为是正则化的 ML

学习目标

\(\theta_{MAP}=\underset{\theta}{argmax}\ p(D|\theta)p(\theta)\)

目标式中可以对两个概率加 \(log\) 函数

预测

\(p(\hat y|x^*,\theta_{MAP})\)

优势

  1. 加入了先验知识
  2. \(p(\theta)\) 相当于起到了正则化的作用,如果 \(p(\theta)\) 服从高斯分布,则相当于加了 L2 norm;如果如果 \(p(\theta)\) 服从拉普拉斯分布,相当于加了 L1 norm?

最大后验概率估计的求解步骤:

  1. 确定参数的先验分布以及似然函数
  2. 确定参数的后验分布函数
  3. 将后验分布函数转换为对数函数
  4. 求对数函数的最大值(求导,解方程)

Beyesian(贝叶斯估计,贝叶斯主义)

贝叶斯估计要解决的不是如何估计参数,而是用来估计新测量数据出现的概率。贝叶斯估计同样假定 \(\theta\) 是一个随机变量,但贝叶斯估计并不是直接估计出θ的某个特定值,而是估计 \(\theta\) 的分布,这是贝叶斯估计与最大后验概率估计不同的地方。在贝叶斯估计中,先验 \(p(D)\) 是不能忽视的。在已知 \(D\) 的情况下,\(\theta\) 的分布描述为后验分布 \(p(\theta|D)\),如果后验分布范围较窄,则估计的准确度相对较高;反之,后验分布范围较广,则估计的准确度较低

学习目标

计算 \(p(\theta|D)\)

预测

\(p(x^*|D)=\int_{\theta} p(x^*|\theta)p(\theta|D)\ d\theta=\int_{\theta}p(x^*|\theta)\frac{p(\theta)p(D|\theta)}{p(D)}d\theta\)

贝叶斯估计先为所有可能的模型计算一个权重,最终的 predict 结果是根据所有模型按照权重加权投出的结果

难点

贝叶斯估计估计结果可靠,但是为了给每个模型 \(\theta\) 计算一个权重,也就是后验概率 \(p(\theta|D)\),为了计算这个后验概率我们需要计算

\(p(\theta|D)=\frac{p(\theta)p(D|\theta)}{\int_{\theta}p(\theta)p(D|\theta)d\theta}\)

但是要分母中的积分计算代价是非常大的,为此整个贝叶斯领域的核心技术在于近似计算 \(p(\theta|D)\),称之为 Beyesian Inference。对于贝叶斯估计,我们希望近似计算分母 \(p(D)\),通过对 \(\theta\) 采样实现。 \(p(D)=\frac{1}{S}\sum_{s=1}^S p(D|\theta^{(s)})\)

此外,还可以通过为后验概率分布选择适合的先验分布,从而实现后验概率分布的直接计算,通常能表示为 「后验 = 先验 + 数据」或者 「\(posterior\sim prior \times likelihood\)」。如果没有共轭,在需要计算多批新样本数据下的后验分布时,每次计算都需要整体重新计算

如果后验分布与先验分布属于同类(分布形式相同),则先验分布与后验分布被称为共轭分布,而先验分布被称为似然函数的共轭先验

比如抛硬币这个实验,结果(也就是 Likelihood)满足二项分布,而二项分布的参数满足分布 \(Beta(\theta|\alpha,\beta)=\frac{1}{B(\alpha,\beta)}x^{\alpha-1}x^{\beta-1}\)(先验分布),如果抛硬币的 10 个结果中产生了 6 个正面(概率为 \(\theta\)),4 个反面(概率为 \(1-\theta\))。那么后验概率的计算为

贝叶斯估计的求解步骤:

  1. 确定参数的似然函数
  2. 确定参数的先验分布,应是后验分布的共轭先验
  3. 确定参数的后验分布函数
  4. 根据贝叶斯公式求解参数的后验分布

:二项分布参数的共轭先验是Beta分布,多项式分布参数的共轭先验是Dirichlet分布,指数分布参数的共轭先验是Gamma分布,⾼斯分布均值的共轭先验是另⼀个⾼斯分布,泊松分布的共轭先验是Gamma分布

这个三个估计方法差别

比如你是班里的班长,你有个问题想知道答案,你可以问所有的班里的学生。 一种方案是,问一个学习最好的同学。 另一种方案是,问所有的同学,然后把答案综合起来,但综合的时候,会按照每个同学的成绩好坏来做个权重。 第一种方案的思想类似于ML,MAP,第二种方案类似于贝叶斯模型。

参考 (References)

  1. 贝叶斯估计、最大似然估计和最大后验估计 参考1
  2. 贝叶斯估计、最大似然估计和最大后验估计 参考2