13[NLP训练营]MLEvsMAP

Intuition Behind

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

MLE

在估计参数的过程中,仅仅靠观测到的数据来进行估计最好的那个参数。
在这里插入图片描述
如果丢一个不均匀的硬币:正正正反反正
那么从结果可以推算参数: θ = 2 / 3 \theta=2/3

MAP

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

Mathematical Formulation

MLE

公式:
在这里插入图片描述

MAP

公式:
在这里插入图片描述
分母那里由于是常数,求最大值的时候可以忽略。
可以看到MAP比MLE多的就是先验概率这一项,那我们如果使用不同的先验概率,会有什么不一样?
下面来看看

先验与正则

以逻辑回归为例,先看MLE:
a r g m a x θ p ( D θ ) = a r g m a x w , b p ( y x , w ) = a r g m a x w , b i = 1 n p ( y i x i , w , b ) = a r g m a x w , b i = 1 n l o g p ( y i x i , 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)
不看偏置:
a r g m a x w i = 1 n l o g p ( y i x i , w ) arg\underset{w}{max}\sum_{i=1}^nlogp(y_i|x_i,w)
再看MAP:
a r g m a x θ p ( θ D ) = a r g m a x θ p ( D θ ) p ( θ ) = a r g m a x θ l o g p ( D θ ) + l o g p ( θ ) = a r g m a x w , b i = 1 n l o g p ( y i x i , w , b ) + l o g p ( 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
a r g m a x w i = 1 n l o g p ( y i x i , w ) + l o g p ( 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 ) = 1 2 π σ e x p ( w 2 2 σ 2 ) (2) p(w)=\cfrac{1}{\sqrt{2\pi}\sigma}exp(-\cfrac{w^2}{2\sigma^2})\tag2
然后,把公式(2)带入(1)的后面那项:
l o g p ( w ) = l o g ( 1 2 π σ e x p ( w 2 2 σ 2 ) ) = l o g ( 2 π σ ) w 2 2 σ 2 logp(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):
a r g m a x w i = 1 n l o g p ( y i x i , w ) l o g ( 2 π σ ) w 2 2 σ 2 arg\underset{w}{max}\sum_{i=1}^nlogp(y_i|x_i,w)-log(\sqrt{2\pi}\sigma)-\cfrac{w^2}{2\sigma^2}
由于 σ \sigma 是已知的,所以 l o g ( 2 π σ ) -log(\sqrt{2\pi}\sigma) 属于常数项,求极值可以忽略,整个目标函数变成:
a r g m a x w i = 1 n l o g p ( y i x i , w ) 1 2 σ 2 w 2 arg\underset{w}{max}\sum_{i=1}^nlogp(y_i|x_i,w)-\cfrac{1}{2\sigma^2}w^2
换成求最小值问题,加负号:
a r g m i n w i = 1 n l o g p ( y i x i , w ) + 1 2 σ 2 w 2 -arg\underset{w}{min}\sum_{i=1}^nlogp(y_i|x_i,w)+\cfrac{1}{2\sigma^2}||w||^2
那么,我们可以把 1 2 σ 2 \cfrac{1}{2\sigma^2} 看做 λ \lambda

From Laplace Prior to L1 Regularization

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

小结

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

MAP approaches to MLE solution

之前说了:随着样本量的增加,先验越来越不重要,没有先验MAP就变成了MLE
来看看这个怎么来理解:
MAP公式:
a r g m a x θ l o g p ( D θ ) + l o g p ( θ ) = a r g m a x w i = 1 n l o g p ( y i x i , w ) + l o g p ( θ ) 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 = 1 n l o g p ( y i x i , w ) \sum_{i=1}^nlogp(y_i|x_i,w) 随着n趋向无穷大,是越来越大的,因为这个是累加的关系,所以后面那项
l o g p ( θ ) logp(\theta) 就变得不重要了。
前面一项就是MLE,后面那项就是先验概率。

发布了172 篇原创文章 · 获赞 40 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/oldmao_2001/article/details/104588477