NLP学习笔记24-MLEvsMAP

一 序

  本文属与贪心NLP训练营学习笔记系列。

MLE:最大似然估计Maximum likelihood estimation
MAP:最大后验估计Maximum a posterion estimation

我们通常用机器学习就是要找到一个模型,然后解出这个模型的参数,这两个方法都是用来构建目标函数求解参数的。

二 区别

MLE:在估计参数的过程中,仅仅靠观测到的数据(样本)来进行估计最好的那个参数。

如果丢一个不均匀的硬币:正正正反反正
那么从结果可以推算参数:\theta=2/3

MAP: 不仅依赖样本,还依赖先验。

如果丢一个不均匀的硬币:正正正反反正,然后我们从硬币主人知道这个硬币的先验概率是80%
那么从结果可以推算参数:67 % < θ < 80 %

但是如果我丢的一万次后,从结果统计到参数应该是70%,那么这个时候的之前主人那获取先验信息其实不重要了。

结论:随着样本量的增加,先验越来越不重要

三  数学角度

  

MAP: 第二步是贝叶斯转换,分母那里由于是常数P(D)与\theta 无关。所以可以忽略掉。

可以看到MAP比MLE多的就是先验概率P(\theta )这一项,这个P(\theta )可以看做是正则项。

如果P(\theta )是高斯分布(正态分布),我们得到是L2 正则,如果P(\theta )是拉布拉斯分布,我们得到的是L1正则。

3.1From Gaussian Prior to L2 Regularization

我们以逻辑回归为例

argmaxp(D|\theta )=argmax_{w,b}p(y|x,w)

=argmax_{w,b}=\prod_{i=1}^{N}p(y_i|x_i,w,b)=argmax_{w,b}\sum_{i=1}^{N}logp(y_i|x_i,w,b)

 

再看MAP

argmaxp(\theta |D)=argmaxp(D|\theta).p(\theta )

=argmaxlogp(D|\theta )+logp(\theta )=argmax_{w,b}\sum_{i=1}^{n}logp(y_i |x_i,w,b)+logp(w,b)  (式子1)

我们先定义一个服从正态(高斯)分布的\bg_white p(\theta )=p(w)\sim N(0,\sigma ^2)  先忽略掉b.这里的高斯分布的 \mu取0是可以的(书上的公式都是带 \mu的)

高斯分布密度函数(pdf):

f(x)= \frac{1}{ \sqrt{2\pi } \sigma }e^-\frac{(x-\mu )^2 }{ 2\sigma ^2}

怎么推导出来的还没整理。

 p(w)= \frac{1}{ \sqrt{2\pi } \sigma }e^-\frac{w^2 }{ 2\sigma ^2}   (式子2)

logp(w)=log(\frac{1}{ \sqrt{2\pi } \sigma }e^-\frac{w^2 }{ 2\sigma ^2})=log(\frac{1}{ \sqrt{2\pi } \sigma })+log(e^-\frac{w^2 }{ 2\sigma ^2})  (对数运算)

            = -log( \sqrt{2 \pi }\sigma )-\frac{w^2}{2\sigma ^2 }  (式子 3)

把式子3 带回式子1

argmax_{w}\sum_{i=1}^{n}logp(y_i |x_i,w) -log( \sqrt{2 \pi }\sigma )-\frac{w^2}{2\sigma ^2 }

 

由于\sigma是已知的,所以-log(\sqrt{2\pi}\sigma) 属于常数项与w无关,求极值可以忽略,整个目标函数变成:

argmax_{w}\sum_{i=1}^{n}logp(y_i |x_i,w) -\frac{1}{2\sigma ^2 }.||w||^2

换成求最小值问题,加负号:

-argmin_{w}\sum_{i=1}^{n}logp(y_i |x_i,w) +\frac{1}{2\sigma ^2 }.||w||^2

那么,我们可以把 \cfrac{1}{2\sigma^2}看做\lambda 超参数,  后面的||w||^2是L2 norm.

所以就可以高斯分布于L2 正则做关联。

3.2 From Laplace Prior to L1 Regularization

下面我们定义一个拉普拉斯分布\bg_white p(\theta )=p(w)\sim Laplace(0,b),同样 \mu取0是可以的。

根据拉普拉斯概率密度函数(pdf):

f(x)=\frac{1}{2\lambda }e^-\frac{|x-\mu |}{\lambda }

 ==>p(w)= \frac{1}{2b }e^-\frac{|w|}{b} 

加log==》logp(w)=-log( \frac{1}{2b})-\frac{|w|}{b}  (式子4)

把式子4 代入到式子1

argmax_{w}\sum_{i=1}^{n}logp(y_i |x_i,w) -log( \frac{1}{2b})-\frac{|w|}{b}

由于b是已知的,所以log(\frac{1}{2b}) 认为是常数项。argmax可以忽略,整个目标函数变成:

argmax_{w}\sum_{i=1}^{n}logp(y_i |x_i,w) -\frac{|w|}{b}

同样换成求最小值问题,加负号:

-argmin_{w}\sum_{i=1}^{n}logp(y_i |x_i,w) +\frac{1}{b}.|w|_1

我们可以把\frac{1}{b} 看作是\lambda超参数。|w|_1 看作是L1正则。

小结

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

MAP approaches to MLE solution

随着样本量的增加,先验越来越不重要,没有先验MAP就变成了MLE

argmaxp(\theta |D)=argmaxp(D|\theta).p(\theta )

=\bg_white argmaxlogp(D|\theta )+logp(\theta )=argmax_{w,b}\sum_{i=1}^{n}logp(y_i |x_i,w,b)+logp(\theta )

前面一项就是MLE,随着n趋向无穷大,是越来越大的,后面哪项logp(\theta ) 就变得不重要了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值