上一节我们介绍了隐马尔可夫的第三个基本问题的解决方案,但是遇到的问题是在如果语料库没有给出状态转移概率则就不能使用最大释然估计了,因此使用EM算法可以解决,在理解EM算法之前需要理解最大释然估计,本节就详细的探讨一下最大释然估计,下面正式开始:

极大似然估计

这里先举一个简单的例子:

一对师徒去上山打猎,在山上同时发现了一只兔子,两师徒同时开了枪,结果兔子被打中了,那么问题是兔子是谁打死的呢?

正常情况下应该都是认为是师傅打中的,其实当我们这样认为时就已经在使用极大似然思想了。那“似然”是什么呢?根据字面的意思理解就是“似”是似乎、几乎、可能的意思,因此似然其实就是可能性。因此极大似然就是最大的可能性的意思了。我们选择师傅打中的原因,就是认为师傅是最有可能打中的,因此这就是极大似然的最通俗的理解了。

回到生活中,我们几乎处处都在使用“极大似然”,很多时候我们没机会,也没能力去探究事物的真相,我们最简单也是最高效的方法就是去估计。当你去找工作时,别人很有可能会问你来自哪所学校?你的文凭如何?你得过什么奖?记住,任何指标都不能确认你是一个多么优秀的人,指标只能确定你是优秀人才的可能性。
      在继续讨论“极大似然”之前,我们要补充机器学习中非常重要的一个假设,那就是数据独立同分布(independent and identically distributed,i.i.d.)条件。独立同分布假设数据与数据是独立的,就比如信用卡发放任务中,每一张用户填写的表格是相互独立的,但该任务的所有数据又都来自于同一个概率分布函数,这就使得我们可以模拟出己知数据的概率分布模型,同样也可以运用在未来的任务中。有了i.i.d.条件,就可以构造极大似然估计。
       在机器学习中,我们一般的分类问题可以表示为输入x得到y 的类别,那么用概率描述就是在x的条件下分类为y的概率即可以使用条件概率进行描述分类问题,但是呢,一般我们不可能那么简单的就得到我们的条件概率公式,里面会有位置参数的,因此我们把条件概率可以写成,其中是待求参数,这里解释一下,为了方便,概率函数只进行了二分类,也就是输出0或1。那么如何去判断的好坏呢?很简单,那就是该概率函数在己有的数据上发生的概率最高,也就是说我们的目的是使其概率最大,而概率的大小和参数有关,那么就转换成在某个参数的情况下的概率最大值的问题,也就是说我们能不能找到一组参数,使的这个概率的值是最大的,这既是极大释然估计了。下面我们推倒数学公式,考虑到数据是相互独立的,因此可以对每一条数据对应的概率函数进行求积,就得到了下式:

                                                 

上式的函数我们称为释然函数,而我们就是通过这个式子求出该函数取得最大值时对应的值,也就是极大释然估计。

但这里的困难在于连乘计算对于计算机来说资源耗费比较大,容易使内存下溢,我们有什么方法可改变连乘的缺点呢?把连乘改为连加就好了,可以做到吗?答案是肯定的,取对数就可以了,对数的性质大家没忘吧,我们把使用的对数的性质拿过来,如下所示:

                                   

这样我们把式取log得到如下式:

                                   

上面就是我们常规的释然函数的定义,但是在机器学习中,我们一般都是求极小值或者平均值,那如何改呢?很简单加一个负号就是极小了,除以求和的个数m就是均值了,因此 就可以改为如下表达式了:

假设机器学习算法就是概率函数,需要注意的是如果真实的标记y是0,那么预测的应该也是接近于0,但是公式又不允许0的出现,因此在预测值为0的情况下,预测值使用 来代替,最后代价函数如下所示:

上式看起来可能很复杂,但是其实很简单,假如x 的真实分类为y=1,则我们就会使用上式求和第一项,第二项为0了不参与计算,如果真实分类为0.则我们使用求和第二项,第一项不参与计算,这个式子恰好避免了,当真实样本为0时无法求值的问题,同时上式也被称为交叉熵。好,到这里我们举一个最大释然的例子,这样大家理解的会更深入。

这里使用Logistic回归算法原理为例进行讲解,这样大家不仅可以理解最大释然还可以理解Logistic回归原理:

Logistic回归算法

先给出Logistic回归的sigmod函数数学表达式:

很简单的表达式,再看看它的性质,当时,,因此

时,,因此

Logistic回归之所以称为Logistic是因为只有两个状态即0和1,这也是数电中的逻辑数即布尔数,那么为什么需要这样的回归呢?因为针对二分类问题,有两个这样的输出是最好不过了,但是具有逻辑性质还有其他函数,为什么就选择这这个函数呢?

现实中确实存在这样的信号,通信专业的同学都知道有一个信号是阶跃函数,该函数在0这一点瞬间改变到1,但是这个信号的瞬间跳跃很难处理,或者说频率太高而无法处理,而sigmod函数很好的处理了高频特性,他虽不是一瞬间改变状态,但是当数很大时很接近了,同时在0的左右处于非线性区间,这对后面的深度学习的激活函数很有用,今天就不深入讲了,等到后面实战深度学习在好好探讨该函数的其他性质。

实现Logistic回归的分类器,我们可以在每个特征上都乘以一个回归系数,然后所有的结果相加,将这个总和代入上面的sigmod函数中,进而得到0~1的数值,把大于0.5 的数据分为1类,把小于0.5的分为0类,所以Logistic回归也是一种概率估计。

确定好分类器后,剩下的就是找到一组最佳回归系数,这个回归系数如何找 ?这属于优化问题,优化问题,经常使用的是梯度下降算法, 在上篇的博客中,详细的探讨了什么是梯度,为什么梯度总是沿着函数增加的方向,梯度下降又是什么?在上篇博客中详细的解说了,不懂的可以查看我的这篇博客。

我们知道了,所谓梯度其实就是一阶函数的一阶偏导所组成的向量,因此我们只需要求出一阶偏导,代入x,梯度就找到了,但是呢我们的函数是含有未知数的即,其中【】是未知数,有未知数怎么求导,又怎么求该点的梯度呢?这时候就需要我们概率论的方面的知识了即最大释然估计了,直接给出最大释然的推倒工程的公式了:

上面的公式就是我们最后说的那个公式。

先解释一下上面的符号意义,如果知道释然估计的同学,应该都能理解所谓的其实就是我们要求的权值向量了,因为最大释然估计的意义就在于找到一组参数,使得发生的概率最大,例如Logistic回归的分为0或者1的概率最大,那既然已经求得表达式了。此时就可以求梯度了,根据上一篇的梯度理解可知对求偏导就好了:

需要解释一下,下面属于链式求导。

很简单吧,到这里,本节就结束了,下一节将详细介绍EM算法。其实我还是建议大家看看概率论课本的定义,相信有上面的理解再看课本应是很容易的事了。

NLP --- 隐马尔可夫HMM(极大释似然估计详解)相关推荐

  1. NLP --- 隐马尔可夫HMM(概念详解、三个基本问题详解)

    本节将进入隐马尔可夫环节,再次提醒不懂马尔科夫过程的同学建议先搞懂什么是马尔科夫过程,什么是马尔科夫链,同时需要懂一点语言模型的知识,下面会用到一点点,本人打算详细总结隐马尔可夫算法思想,因此讲解的会 ...

  2. NLP --- 隐马尔可夫HMM(第三个问题详解及HMM的应用)

    前两节我们详细介绍了什么是极大似然估计和EM算法,简单来说就是数据如果是完整的则可以通过均值来估计参数,因为在数据完整的情况下即有发射符号概率也有状态转移概率,通过估计就可以很容易求出隐马尔可夫模型的 ...

  3. NLP --- 隐马尔可夫HMM(第一个、第二个问题解决方案)

    上一节我们详细的阐述了隐马尔可夫的三个基本问题,结合者背景知识理解这三个问题还是很容易的,因为隐马尔可夫的提出就是建立在语音识别的基础上提出来的,因此根据背景知识学习更容易吸收和深入理解,简单的来说就 ...

  4. NLP --- 隐马尔可夫HMM(EM算法(期望最大化算法))

    期望最大化 (Expectation Maximization) 算法最初是由 Ceppellini[2] 等人 1950 年在讨论基因频率的估计的时候提出的.后来又被 Hartley[3] 和Bau ...

  5. python期望输出隐藏_【归纳综述】马尔可夫、隐马尔可夫 HMM 、条件随机场 CRF 全解析及其python实现...

    PR Structured Ⅲ:马尔可夫.隐马尔可夫 HMM .条件随机场 CRF 全解析及其python实现 Content 归纳性长文,不断更新中...欢迎关注收藏 本章承接概率图知识 马尔可夫不 ...

  6. 隐马尔可夫(HMM)

    一.概述 计算机科学中所谈的"模式"通常指按照一定顺序发生的事件序列,比如机器翻译和自然语言处理中的文字(词)序列,程序设计中的指令序列,模式则体现了序列中事件的相关性. 举一个简 ...

  7. 隐马尔可夫(HMM)、前/后向算法、Viterbi算法 再次总结

    本总结是是个人为防止遗忘而作,不得转载和商用. 说明:此篇是作者对"隐马尔可夫模型"的第二次总结,因此可以算作对上次总结的查漏补缺以及更进一步的理解,所以很多在第一次总结中已经整理 ...

  8. 隐马尔科夫(HMM)模型

    隐马尔科夫(Hidden Markov model)模型是一类基于概率统计的模型,是一种结构最简单的动态贝叶斯网,是一种重要的有向图模型.自上世纪80年代发展起来,在时序数据建模,例如:语音识别.文字 ...

  9. 隐马尔可夫(HMM)/感知机/条件随机场(CRF)----词性标注

    笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP 7. 词性标注 7.1 词性标注概述 什么是词性 在语言学上,词性(Par-Of- ...

最新文章

  1. Vue全局路由侦听beforeEach路由守卫附代码使用示例
  2. engine中调整Element的上下显示顺序(遮盖)
  3. bootstrap行内编辑后提交多条数据到ssm
  4. 为什么选择Nginx
  5. Light OJ 1406 Assassin`s Creed 减少国家DP+支撑点甚至通缩+最小路径覆盖
  6. CF1009E Intercity Travelling
  7. telegram 机器人_学习使用Python在Telegram中构建您的第一个机器人
  8. linux一个vlan配置多个端口映射,Linux 设置 多ip,多vlan
  9. 腾讯手机QQ更新:最想要的功能终于实现了!
  10. 前端市场现在是不是饱和了?
  11. 美团 大规模商品知识图谱的构建与应用
  12. B - Beautiful Paintings
  13. 在线商城之购物车实现——(附完整代码)
  14. yum安装ruby_安装 Ruby
  15. Android简单制作自定义圆形头像
  16. windows系统用cmd命令开启WiFi共享功能
  17. ”周期天王”20大预言,针针见血,看完整个人通透多了
  18. Leetcode.43:(Python)给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
  19. 电商资讯 | 黑鲨大幅裁员,2022年游戏手机销量大跳水,降幅近40%
  20. 苹果收购增强现实初创公司Metaio

热门文章

  1. erp沙盘采购总监的心得_经验分享 让ERP系统操作少走冤枉路
  2. Python办公自动化--Word、Excel、PDF
  3. 好的数据分析平台有多重要
  4. 什么是数据标准管理系统
  5. 医疗大数据的风险及应对方法
  6. java 保存 设置_java的保存按钮怎么设置?
  7. mysql中什么来维护表之间_转mysql维护索引和表
  8. paddlepaddle的使用
  9. won10 mysql 5.7.22主从同步
  10. 推荐: SQL Server Management Express Edition插件