13[NLP训练营]MLEvsMAP

Intuition Behind

MLE:最大似然估计Maximum likelihood estimation
MAP:最大后验估计Maximum a posteriori estimation
记录这个主要原因是之前看李航老师的《统计方法学》的时候,这里没搞懂,现在做个记录,网上其实有很多文章,但是没有讲出来这两个东西实际上有什么关系。
之前说了,我们搞机器学习就是要找到一个模型,然后解出这个模型的参数,这两个方法都是用来构建目标函数求解参数的。

MLE

在估计参数的过程中,仅仅靠观测到的数据来进行估计最好的那个参数。
13[NLP训练营]MLEvsMAP
如果丢一个不均匀的硬币:正正正反反正
那么从结果可以推算参数:θ=2/3\theta=2/3

MAP

13[NLP训练营]MLEvsMAP
如果丢一个不均匀的硬币:正正正反反正,然后我们从小道消息知道这个硬币的先验概率是80%
那么从结果可以推算参数:67%<θ<80%67\% < \theta< 80\%
但是如果我丢的次数足够多,例如一万次后,从结果统计到参数应该是70%,那么这个时候的先验信息其实不重要了(随着样本量的增加,先验越来越不重要)。

Mathematical Formulation

MLE

公式:
13[NLP训练营]MLEvsMAP

MAP

公式:
13[NLP训练营]MLEvsMAP
分母那里由于是常数,求最大值的时候可以忽略。
可以看到MAP比MLE多的就是先验概率这一项,那我们如果使用不同的先验概率,会有什么不一样?
下面来看看

先验与正则

以逻辑回归为例,先看MLE:
argmaxθp(Dθ)=argmaxw,bp(yx,w)=argmaxw,bi=1np(yixi,w,b)=argmaxw,bi=1nlogp(yixi,w,b)arg\underset{\theta}{max}p(D|\theta)=arg\underset{w,b}{max}p(y|x,w)\\ =arg\underset{w,b}{max}\prod_{i=1}^np(y_i|x_i,w,b)=arg\underset{w,b}{max}\sum_{i=1}^nlogp(y_i|x_i,w,b)
不看偏置:
argmaxwi=1nlogp(yixi,w)arg\underset{w}{max}\sum_{i=1}^nlogp(y_i|x_i,w)
再看MAP:
argmaxθp(θD)=argmaxθp(Dθ)p(θ)=argmaxθlogp(Dθ)+logp(θ)=argmaxw,bi=1nlogp(yixi,w,b)+logp(w,b)arg\underset{\theta}{max}p(\theta|D)=arg\underset{\theta}{max}p(D|\theta)\cdot p(\theta)\\ =arg\underset{\theta}{max}logp(D|\theta)+logp(\theta)=arg\underset{w,b}{max}\sum_{i=1}^nlogp(y_i|x_i,w,b)+logp(w,b)
不看偏置,θ=w\theta=w
argmaxwi=1nlogp(yixi,w)+logp(w)(1)arg\underset{w}{max}\sum_{i=1}^nlogp(y_i|x_i,w)+logp(w)\tag1

From Gaussian Prior to L2 Regularization

我们先定义一个服从正态搞屎分布的p(θ)=p(w)N(0,σ2)p(\theta)=p(w)\sim N(0,\sigma^2),这里的高斯分布的μ\mu取0是可以的,因为分布总是可以通过平移使得μ=0\mu=0
根据搞屎分布的pdf(概率密度函数):
..
p(w)=12πσexp(w22σ2)(2)p(w)=\cfrac{1}{\sqrt{2\pi}\sigma}exp(-\cfrac{w^2}{2\sigma^2})\tag2
然后,把公式(2)带入(1)的后面那项:
logp(w)=log(12πσexp(w22σ2))=log(2πσ)w22σ2logp(w)=log(\cfrac{1}{\sqrt{2\pi}\sigma}exp(-\cfrac{w^2}{2\sigma^2}))=-log(\sqrt{2\pi}\sigma)-\cfrac{w^2}{2\sigma^2}
再带回(1):
argmaxwi=1nlogp(yixi,w)log(2πσ)w22σ2arg\underset{w}{max}\sum_{i=1}^nlogp(y_i|x_i,w)-log(\sqrt{2\pi}\sigma)-\cfrac{w^2}{2\sigma^2}
由于σ\sigma是已知的,所以log(2πσ)-log(\sqrt{2\pi}\sigma)属于常数项,求极值可以忽略,整个目标函数变成:
argmaxwi=1nlogp(yixi,w)12σ2w2arg\underset{w}{max}\sum_{i=1}^nlogp(y_i|x_i,w)-\cfrac{1}{2\sigma^2}w^2
换成求最小值问题,加负号:
argminwi=1nlogp(yixi,w)+12σ2w2-arg\underset{w}{min}\sum_{i=1}^nlogp(y_i|x_i,w)+\cfrac{1}{2\sigma^2}||w||^2
那么,我们可以把12σ2\cfrac{1}{2\sigma^2}看做λ\lambda

From Laplace Prior to L1 Regularization

这次我们定义一个拉普拉屎分布:p(θ)=p(w)Laplace(μ,b)p(\theta)=p(w)\sim Laplace(\mu,b),这里的拉普拉屎分布的μ\mu取0是可以的,因为分布总是可以通过平移使得μ=0\mu=0
p(θ)=p(w)Laplace(0,b)p(\theta)=p(w)\sim Laplace(0,b)
根据拉普拉屎分布的pdf(概率密度函数):
p(w)=12bexp(wb)(3)p(w)=\cfrac{1}{2b}exp(-\cfrac{|w|}{b})\tag3
然后,把公式(3)带入(1)的后面那项:
logp(w)=log[12bexp(wb)]=log(12b)wblogp(w)=log[\cfrac{1}{2b}exp(-\cfrac{|w|}{b})]=log(\cfrac{1}{2b})-\cfrac{|w|}{b}
再带回(1):
..
argmaxwi=1nlogp(yixi,w)+log(12b)wbarg\underset{w}{max}\sum_{i=1}^nlogp(y_i|x_i,w)+log(\cfrac{1}{2b})-\cfrac{|w|}{b}
由于bb是已知的,所以log(12b)log(\cfrac{1}{2b})属于常数项,求极值可以忽略,整个目标函数变成:
argmaxwi=1nlogp(yixi,w)wbarg\underset{w}{max}\sum_{i=1}^nlogp(y_i|x_i,w)-\cfrac{|w|}{b}
换成求最小值问题,加负号:
argminwi=1nlogp(yixi,w)+1bw-arg\underset{w}{min}\sum_{i=1}^nlogp(y_i|x_i,w)+\cfrac{1}{b}|w|
那么,我们可以把1b\cfrac{1}{b}看做λ\lambda

小结

Adding Prior is Equivalent to Regularizatiori
这个不但适用于逻辑回归,而且适用于其他模型,而且我们通过上面的推导知道:
加高斯分布的先验就相当于加L2正则项;
加拉普拉斯分布的先验就相当于加L1正则项。

MAP approaches to MLE solution

之前说了:随着样本量的增加,先验越来越不重要,没有先验MAP就变成了MLE
来看看这个怎么来理解:
MAP公式:
argmaxθlogp(Dθ)+logp(θ)=argmaxwi=1nlogp(yixi,w)+logp(θ)arg\underset{\theta}{max}logp(D|\theta)+logp(\theta)\\ =arg\underset{w}{max}\sum_{i=1}^nlogp(y_i|x_i,w)+logp(\theta)
可以看到,前面一项i=1nlogp(yixi,w)\sum_{i=1}^nlogp(y_i|x_i,w)随着n趋向无穷大,是越来越大的,因为这个是累加的关系,所以后面那项
logp(θ)logp(\theta)就变得不重要了。
前面一项就是MLE,后面那项就是先验概率。