几个参数估计的策略
- 期望损失(expected loss) 风险函数(risk function)
是模型$f(X)$关于联合分布$P(X,Y)$的期望 - 经验风险最小化 ERM(Empirical Risk Minimization)
是关于训练样本的平均损失 - 结构风险最小化 SRM(Structural Risk Minimization)
是加了正则项的经验风险最小化
P(x)与p(x)区别
- 大写$P(x)$表示概率质量函数 pmf (probability mass function)
- 小写$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估计越趋于一致。
优点
- Bayesian估计不仅可以得到后验的期望,还可以得到后验的方差,表示对这个期望值的确信程度。常用共轭先验作先验,可以根据分布的参数直接得到方差。
- 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 |
总结
- 估计的复杂程度,ML<MAP<Bayesian
- ML估计最简单,$posteriori=likelihood$
- MAP估计,$posteriori=likelihood\cdot prior$
- Bayesian估计,$posteriori=\frac{likelihood\cdot prior}{evidence}$
- ML估计和MAP估计都是点估计,返回的是参数变量$\theta$的特定值
- MAP估计和Bayesian估计都需要先验。MAP估计只需要得到最大值,并不需要得到完整的后验,因此,可以不计算$P(X)$。而Bayesian估计是要得到完整的后验,所以需要计算$P(X)$。
- MAP估计的后验是一个不完整的后验,因此,不能说得到的后验与先验共轭。而Bayesian估计是后验的完整形式,所以先验和后验关于似然共轭,这也是共轭先验的由来。
- 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
- https://zh.wikipedia.org/wiki/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1
- https://en.wikipedia.org/wiki/Maximum_a_posteriori_estimation
- https://engineering.purdue.edu/kak/Trinity.pdf
- http://blog.csdn.net/yangliuy/article/details/8296481
- https://www.zhihu.com/question/22007264/answer/20014371