NLP面试-最大似然估计与贝叶斯估计的区别

简介: NLP面试-最大似然估计与贝叶斯估计的区别

1 相关理论


1.1 全概率公式


全概率公式为概率论中的重要公式,它将对一复杂事件A的概率求解问题转化为了在不同情况下发生的简单事件的概率的求和问题。

如果事件B1、B2、B3…Bn 构成一个完备事件组,即它们两两互不相容,其和为全集;并且P(Bi)大于0,则对任一事件A有


90.png

特别地,对于任意两随机事件A和B,有如下成立:


91.png


1.2 先验概率


先验概率(prior probability)是指根据以往经验和分析得到的概率。


意思是说我们人有一个常识,比如骰子,我们都知道概率是1/6,而且无数次重复实验也表明是这个数,这是一种我们人的常识,也是我们在不知道任何情况下必然会说出的一个值.而所谓的先验概率是我们人在未知条件下对事件发生可能性猜测的数学表示!


1.3 后验概率


事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小


1.4 举个例子


举一个简单的例子:一口袋里有3只红球、2只白球,采用不放回方式摸取,求:

⑴ 第一次摸到红球(记作A)的概率;

⑵ 第二次摸到红球(记作B)的概率;

⑶ 已知第二次摸到了红球,求第一次摸到的是红球的概率。


解:

⑴ P(A)=3/5,这就是先验概率;

⑵ P(B)=P(A)P(B|A)+P(A`)P(B|A`)=3/5

⑶ P(A|B)=P(A)P(B|A)/P(B)=1/2,这就是后验概率。


2 最大似然估计


最大似然估计的核心思想是:找到参数θ的一个估计值,使得当前样本出现的可能性最大,俗话说是“谁大像谁”。


假设有一组独立同分布(i.i.d)的随机变量X,给定一个概率分布D,假设其概率密度函数为f,以及一个分布的参数θ,从这组样本中抽出x1,x2,⋯,xn,那么通过参数θ的模型f产生上面样本的概率为:


92.png

最大似然估计会寻找关于θ 的最可能的值,即在所有可能的 θ 取值中,寻找一个值使这个采样的“可能性”最大化!

因为是”模型已定,参数未知”,此时我们是根据样本采样x1,x2,⋯,xn取估计参数θ,定义似然函数为:


93.png

实际使用中,因为f(xi|θ)一般比较小,而且n往往会比较大,连乘容易造成浮点运算下溢。所以一般我们用对数似然函数:


94.png


根据前面的描述,总结一下求最大释然估计值的步骤:

1.写似然函数

2.一般对似然函数取对数,并将对数似然函数整理

3.对数似然函数求导,令导数为0,求得似然方程

4.根据似然方程求解,得到的参数即为所求估计值



3 贝叶斯估计


统计学里有两个大的流派,一个是频率派,一个是贝叶斯派。时至今日,这两派还未就各自的观点达成统一。我们前面提到的最大似然估计就是频率派的典型思路,接下来再看看贝叶斯派的思路,到底跟频率派估计有何不同。


先来看几个相关的小公式:

两个随机变量x,y的联合概率p(x,y)的乘法公式:


95.png


如果x,y是独立随机变量,上面的式子可以表示为:


96.png


那么条件概率就可以表示为:


97.png


对于一个完备事件组y1,y2,⋯,yn,可以使用全概率公式:


98.png


由以上这些,可以得出贝叶斯公式:


99.png

其中,p(yi|x)是后验概率。p(x|yi)是条件概率,或者说似然概率,这个概率一般都可以通过历史数据统计得出。而p(yi)是先验概率,一般也是根据历史数据统计得出或者认为给定的,贝叶斯里的先验概率,就是指p(yi)。对于p(x),我们前面提到可以用全概率公式计算得出,但是在贝叶斯公式里面我们一般不care这个概率,因为我们往往只需要求出最大后验概率而不需要求出最大后验的具体值。


2,3部分内容来自:


最大似然估计MLE与贝叶斯估计


4 区别


  • 理解1:


最大似然估计和贝叶斯估计最大区别便在于估计的参数不同,最大似然估计要估计的参数θ被当作是固定形式的一个未知变量,然后我们结合真实数据通过最大化似然函数来求解这个固定形式的未知变量!

贝叶斯估计则是将参数视为是有某种已知先验分布的随机变量,意思便是这个参数他不是一个固定的未知数,而是符合一定先验分布如:随机变量θ符合正态分布等!那么在贝叶斯估计中除了类条件概率密度p(x|w)符合一定的先验分布,参数θ也符合一定的先验分布。我们通过贝叶斯规则将参数的先验分布转化成后验分布进行求解!


  • 理解2:


简而言之,最大似然估计认为参数的所有可能取值都是一样可能的。而贝叶斯方法认为还存在一个先验估计,有些取值更有可能,有些取值更加没有可能。


  • 理解3:


最大似然是对点估计,贝叶斯推断是对分布估计。

即,假设求解参数θ,最大似然是求出最有可能的θ值,而贝叶斯推断则是求解θ的分布。

在公式上,贝叶斯推断还引入了先验,通过先验和似然来求解后验分布,而最大似然直接使用似然函数,通过最大化其来求解。


参考资料


相关文章
【Java集合类面试二十八】、说一说TreeSet和HashSet的区别
HashSet基于哈希表实现,无序且可以有一个null元素;TreeSet基于红黑树实现,支持排序,不允许null元素。
|
存储 算法 架构师
阿里面试:PS+PO、CMS、G1、ZGC区别在哪?什么是卡表、记忆集、联合表?问懵了,尼恩来一个 图解+秒懂+史上最全的答案
阿里面试:PS+PO、CMS、G1、ZGC区别在哪?什么是卡表、记忆集、联合表?问懵了,尼恩来一个 图解+秒懂+史上最全的答案
|
机器学习/深度学习 存储 自然语言处理
NLP 面试揭秘:解锁 注意力机制
NLP 面试揭秘:解锁 注意力机制
478 65
NLP 面试揭秘:解锁 注意力机制
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
497 94
|
Java 程序员 调度
Java 高级面试技巧:yield() 与 sleep() 方法的使用场景和区别
本文详细解析了 Java 中 `Thread` 类的 `yield()` 和 `sleep()` 方法,解释了它们的作用、区别及为什么是静态方法。`yield()` 让当前线程释放 CPU 时间片,给其他同等优先级线程运行机会,但不保证暂停;`sleep()` 则让线程进入休眠状态,指定时间后继续执行。两者都是静态方法,因为它们影响线程调度机制而非单一线程行为。这些知识点在面试中常被提及,掌握它们有助于更好地应对多线程编程问题。
641 9
|
安全 Java 程序员
Java面试必问!run() 和 start() 方法到底有啥区别?
在多线程编程中,run和 start方法常常让开发者感到困惑。为什么调用 start 才能启动线程,而直接调用 run只是普通方法调用?这篇文章将通过一个简单的例子,详细解析这两者的区别,帮助你在面试中脱颖而出,理解多线程背后的机制和原理。
999 12
|
编译器 Android开发 开发者
Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
Lambda表达式和匿名函数都是Kotlin中强大的特性,帮助开发者编写简洁而高效的代码。理解它们的区别和适用场景,有助于选择最合适的方式来解决问题。希望本文的详细讲解和示例能够帮助你在Kotlin开发中更好地运用这些特性。
427 9
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
343 14
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
今日分享的主题是如何区分&和&&的区别,提高自身面试的能力。主要分为以下四部分。 1、自我面试经历 2、&amp和&amp&amp的不同之处 3、&对&&的不同用回答逻辑解释 4、彩蛋
|
Java 关系型数据库 数据库
京东面试:聊聊Spring事务?Spring事务的10种失效场景?加入型传播和嵌套型传播有什么区别?
45岁老架构师尼恩分享了Spring事务的核心知识点,包括事务的两种管理方式(编程式和声明式)、@Transactional注解的五大属性(transactionManager、propagation、isolation、timeout、readOnly、rollbackFor)、事务的七种传播行为、事务隔离级别及其与数据库隔离级别的关系,以及Spring事务的10种失效场景。尼恩还强调了面试中如何给出高质量答案,推荐阅读《尼恩Java面试宝典PDF》以提升面试表现。更多技术资料可在公众号【技术自由圈】获取。

热门文章

最新文章