参数估计方法

Posted by ZhengYang on 2016-08-20

几个参数估计的策略

  1. 期望损失(expected loss) 风险函数(risk function)
    是模型$f(X)$关于联合分布$P(X,Y)$的期望
  2. 经验风险最小化 ERM(Empirical Risk Minimization)
    是关于训练样本的平均损失
  3. 结构风险最小化 SRM(Structural Risk Minimization)
    是加了正则项的经验风险最小化

P(x)与p(x)区别

  1. 大写$P(x)$表示概率质量函数 pmf (probability mass function)
  2. 小写$p(x)$表示概率密度函数 pdf (probability density function)

贝叶斯公式
$$P(\theta|X)=\frac{P(X|\theta)\cdot P(\theta)}{P(X)}$$
$$posterior=\frac{likelihood\cdot prior}{evidence}$$

最大似然ML(Maximum likelihood)估计

$$P(\theta|X)=P(X|\theta)$$
$$posterior=likelihood$$
wiki上面的词条将MLE翻译为最大似然估计,从图上来看,MLE的确也应该翻译为最大似然估计,而不是极大似然估计。但在实际求解时,常求的是极大值。

$$\begin{align}
\hat \theta_{ML}&=argmax_{\theta}logL \\
&=argmax_{\theta}logP(X|\theta) \\
&=argmax_{\theta}log\prod_xP(x|\theta) \\
&=argmax_{\theta}\sum_xlogP(x|\theta) \\
\end{align}$$

在实际应用中,模型分判别模型和生产模型,如果模型是判别模型,则似然估计为,
$$\hat \theta_{ML}=argmax_{\theta}\sum_{i=1}^NlogP(y_i|x_i,\theta) $$
如果模型是生成模型,则似然估计为,
$$\hat \theta_{ML}=argmax_{\theta}\sum_{i=1}^NlogP(y_i,x_i|\theta) $$

经验风险最小化 ERM(Empirical Risk Minimization)

当模型是条件概率分布,损失函数是对数损失时,判别模型的最大似然估计等同于经验风险最小化。
$$\begin{align}
\hat \theta_{ERM}&=argmin_{f}\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i)) \\
&=argmin_{\theta}\frac{1}{N}\sum_{i=1}^NL(y_i,P(y_i|x_i,\theta)) \\
&=argmin_{\theta}\frac{1}{N}\sum_{i=1}^N\{-logP(y_i|x_i,\theta)\} \\
&=argmax_{\theta}\frac{1}{N}\sum_{i=1}^NlogP(y_i|x_i,\theta) \\
&=argmax_{\theta}\sum_{i=1}^NlogP(y_i|x_i,\theta)
\end{align}$$

最大后验概率MAP(maximum a posteriori)估计

$$P(\theta|X)=P(X|\theta)\cdot P(\theta)$$
$$posterior=likelihood\cdot prior$$
相比于最大似然估计,最大后验估计加入一个先验,根据贝叶斯公式计算出的整个后验概率最大。但因为只需要求使$P(\theta|X)$最大的$\theta$,这里$P(X)$与参数$\theta$无关,因此等价于使分子最大。
最大后验概率估计是不完整的后验概率估计;后面的贝叶斯估计是完整的后验概率估计

$$\begin{align}
\hat \theta_{MAP}&=argmax_{\theta}logP(\theta|X) \\
&=argmax_{\theta}log\frac{P(X|\theta)\cdot P(\theta)}{P(X)} \\
&=argmax_{\theta}log(P(X|\theta)\cdot P(\theta)) \\
&=argmax_{\theta}\{logP(X|\theta)+logP(\theta)\} \\
&=argmax_{\theta}\{log\prod_xP(x|\theta)+logP(\theta)\} \\
&=argmax_{\theta}\{\sum_xlogP(x|\theta)+logP(\theta)\}
\end{align}$$

同样,在实际应用中,模型分判别模型和生产模型,如果模型是判别模型,则MAP估计为,
$$\hat \theta_{MAP}=argmax_{\theta}\left\{\sum_{i=1}^NlogP(y_i|x_i,\theta)+logP(\theta)\right\} $$
如果模型是生成模型,则MAP估计为,
$$\hat \theta_{MAP}=argmax_{\theta}\left\{\sum_{i=1}^NlogP(y_i,x_i|\theta)+logP(\theta)\right\} $$

结构风险最小化 SRM(Structural Risk Minimization)

当模型是条件概率分布,损失函数是对数损失,正则项为负log先验时,判别模型的MAP估计等同于结构风险最小化。
$$\begin{align}
\hat \theta_{SRM}&=argmin_{f}\{\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))+\lambda J(f)\} \\
&=argmin_{\theta}\{\frac{1}{N}\sum_{i=1}^NL(y_i,P(y_i|x_i,\theta))-\frac1NlogP(\theta)\} \\
&=argmin_{\theta}\{\frac{1}{N}\sum_{i=1}^N\{-logP(y_i|x_i,\theta)\}-\frac1NlogP(\theta)\} \\
&=argmax_{\theta}\{\frac{1}{N}\sum_{i=1}^NlogP(y_i|x_i,\theta)+\frac1NlogP(\theta)\} \\
&=argmax_{\theta}\{\sum_{i=1}^NlogP(y_i|x_i,\theta)+logP(\theta)\}
\end{align}$$

贝叶斯估计(Bayesian estimator)

$$P(\theta|X)=\frac{P(X|\theta)\cdot P(\theta)}{P(X)}$$
$$posterior=\frac{likelihood\cdot prior}{evidence}$$
Bayesian估计是后验的完整形式。
在MAP估计中,只取了后验$P(\theta|X)$的最大值作为$\theta$的估计,忽略了$\theta$的其他可能性,可能丢失信息。而Bayesian估计则把$\theta$的所有可能取值(分母部分)考虑进来,即,
$$P(\theta|X)=\frac{P(X|\theta)\cdot P(\theta)}{P(X)}=\frac{P(X|\theta)\cdot P(\theta)}{\int_{\theta}P(X,\theta)d\theta}
=\frac{P(X|\theta)\cdot P(\theta)}{\int_{\theta}P(X|\theta)\cdot P(\theta)d\theta}$$
因此,Bayesian估计要比MAP估计更可靠些,但随着数据越多,Bayesian估计,MAP估计和ML估计越趋于一致。

优点

  1. Bayesian估计不仅可以得到后验的期望,还可以得到后验的方差,表示对这个期望值的确信程度。常用共轭先验作先验,可以根据分布的参数直接得到方差。
  2. Bayesian估计可以估计$\theta$后验分布上的某个具体的$\theta$值,而不是最大值,也就是Bayesian Inference。

缺点

Bayesian估计比较复杂,原因是分母$P(X)$不能在忽略,需要对$P(X|\theta)$在$P(\theta)$上求期望,
$$P(\theta|X)=\frac{P(X|\theta)\cdot P(\theta)}{\int_{\theta}P(X|\theta)\cdot P(\theta)d\theta}$$
通常计算比较困难,采用conjugate先验,可避免积分,直接得到后验分布。

共轭先验

Bayesian估计的分母$P(X)$,与后验无关,因此可以作为常数看待,所以,如果分子(似然*先验)计算后,与分母再结合后,得到的形式恰好为先验的形式,即先验后验同分布,只是改变了超参数,则称$P(\theta)$是似然函数$P(X|\theta)$的共轭先验。

共轭先验第一种定义 (wiki)

In Bayesian probability theory, if the posterior distributions P(θ|x) are in the same family as the prior probability distribution P(θ), the prior and posterior are then called conjugate distributions, and the prior is called a conjugate prior for the likelihood function.

共轭先验第二种定义

For a given likelihood function P(X|Θ), a prior P(Θ) is called a conjugate prior if the posterior P(Θ|X) has the same algebraic form as the prior.

常见的共轭先验

Distribution Conjugate Prior
Bernoulli Beta
Multinomial Dirichlet
Gaussian(given mean, var unknown) Gaussian
Gaussian(given var, mean unknown) Gaussian
Gaussian(both mean and var unknown) Gaussian-Gamma

总结

  1. 估计的复杂程度,ML<MAP<Bayesian
  2. ML估计最简单,$posteriori=likelihood$
  3. MAP估计,$posteriori=likelihood\cdot prior$
  4. Bayesian估计,$posteriori=\frac{likelihood\cdot prior}{evidence}$
  5. ML估计和MAP估计都是点估计,返回的是参数变量$\theta$的特定值
  6. MAP估计和Bayesian估计都需要先验。MAP估计只需要得到最大值,并不需要得到完整的后验,因此,可以不计算$P(X)$。而Bayesian估计是要得到完整的后验,所以需要计算$P(X)$。
  7. MAP估计的后验是一个不完整的后验,因此,不能说得到的后验与先验共轭。而Bayesian估计是后验的完整形式,所以先验和后验关于似然共轭,这也是共轭先验的由来。
  8. Bayesian估计可以求方差,表示确信度(confidence),而且可以做推断(Inference)。

任何一个基础模型都可以演变成贝叶斯模型。在一个基础模型之下,需要去estimate一些未知的参数(比如在linear regression, 需要去计算w这个向量),但在贝叶斯模型下我们需要去计算的是w的分布(而不是w的point estimation),用其分布直接计算对y的预测值p(y|x,D),所以我们需要去需要integrate w,也就是说我们把所有可能的w向量都会去考虑, 这也为什么贝叶斯模型通常intractable, 所以我们需要用MCMC或者variational方法,而不是直接用优化的方法。在贝叶斯模型之下,随着我们observe more and more data, 我们会对w向量的分布会有更清晰的推断,这其实就是posterior inference。

在linear regression上加上prior其实相当于加了regularization. 如果我们假定p(w)服从高斯分布,那我们加的实际上是L2_norm, 如果我们假定p(w)是拉普拉斯分布,那我们加的是L1_norm(linear regression情况下就是相当于LASSO,会有sparse的特点)。
因此MAP估计是L1还是L2,与参数分布本身有关。

拉普拉斯分布

$$f(x|\mu,b)=\frac{1}{2b}exp(-\frac{|x-\mu|}{b})$$

Reference

  1. https://zh.wikipedia.org/wiki/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1
  2. https://en.wikipedia.org/wiki/Maximum_a_posteriori_estimation
  3. https://engineering.purdue.edu/kak/Trinity.pdf
  4. http://blog.csdn.net/yangliuy/article/details/8296481
  5. https://www.zhihu.com/question/22007264/answer/20014371