李宏毅机器学习笔记:结构学习,HMM,CRF

news/2024/11/25 19:35:32/

李宏毅机器学习笔记:结构学习,HMM,CRF

  • 1、隐马尔可夫模型HMM
    • 1.1Sequence2Sequence
    • 1.2 HMM
    • 1.3 Viterbi算法
    • 1.3 HMM模型的缺点

1、隐马尔可夫模型HMM

1.1Sequence2Sequence

什么是Seq2Seq问题呢?简单来说,就是输入是一个序列,输出也是一个序列。输入和输出的序列可以相等,也可以不相等。在本文中,可以先假设输入输出序列相等。
在这里插入图片描述

1.2 HMM

这里用了一个通俗易懂的例子来解释HMM模型,POS tagging,词性标注。
在这里插入图片描述
PN表示专有名词Proper Noun
V表示动词
D 定冠词
N名词

通常情况下,我们要生成1个句子,可以分为2个步骤。
一、根据语法设计好一个词性序列
二、根据字典中的词汇填充生成一个句子。
在这里插入图片描述
举例子来说,
在这里插入图片描述
图片表示,开始start后面接的词为PN的概率是0.4,接动词V的概率是0.1,接定冠词D的概率是0.5。依次类推。这样,第一步构思的词性顺序为 PN V D N的概率则为0.40.80.250.950.1。
在这里插入图片描述
类似地,在词性结构已经是PN V D N的第一步的基础上,生成的句子为 John saw the saw的概率为0.20.170.63*0.17。

那怎么计算第2步的概率呢?
在这里插入图片描述
在这里插入图片描述
计算方法如上图所示,其中y表示词性,x表示单词。我们是根据词汇x来求目标词性y,目标词性y是隐含的变量,这也是HMM中隐的由来。
现在问题只在于说如何计算。其实很简单,可以直接根据训练数据将这些概率统计出来。
在这里插入图片描述
在这里插入图片描述
如上图所示,词性 s ′ s' s接在词性 s s s后面的概率为训练数据中词性s后面出现词性 s ′ s' s的次数除以词性s出现的总次数。
词性s的单词为特定单词t的概率则为训练数据中所有单词为t且词性属于s的次数除以词性s出现的总次数。
在这里插入图片描述
通过对训练数据中的相关词汇和词性进行统计,便可计算出相应的概率。

1.3 Viterbi算法

在这里插入图片描述
上述可知,假设有 ∣ S ∣ |S| S个词性,序列长度为L。那么该序列的词性可能存在 ∣ S ∣ L |S|^{L} SL种答案。计算复杂度很高。而Vertibi算法则是专门解决该问题而衍生出的优化算法。
在这里插入图片描述
概括来说,HMM可分为上述3个步骤。

1.3 HMM模型的缺点

在这里插入图片描述
举个例子来说,假如训练数据中, y l − 1 y_{l-1} yl1为名词N,后面接动词V的概率为0.9,接定冠词D的概率为0.1。而在给定词性为动词V的条件下,该单词为单词a的概率为0.5,为单词c的概率为0.5。在给定词性为D的条件下,为单词a的概率为1。
在这里插入图片描述
现在我们假设出现了该种场景,第一个单词为N,后一个单词为a,求后一个单词的词性预测。
这个例子比较简单,可以直接穷举出来。假如该单词词性 y l = D y_{l}=D yl=D,那么概率p=0.11=0.1。
假如该单词词性 y l = V y_{l}=V yl=V,p=0.9
0.5=0.45。因此,答案应该为V。
在这里插入图片描述
这个答案V看上去是没有问题的,但是假设我们的训练数据是上述这种情况,完全满足Transition probability 和Emission probability情况。我们预测的最佳答案是N-V-a。
但是,我们的训练数据中原本就出现了N-D-a这种样本。HMM模型所给的答案是训练数据中从未见过的情况,因为其概率最大。这种情况我们认为HMM预测的更好还是原数据更好呢?
答案显然是原数据中出现的样本最好。由此引申出HMM模型的缺陷问题:可能会预测出训练数据中从未出现过的结果。在训练数据为小样本数据集时其实时有一定好处的,因为这样泛化能力更强。
要想解决HMM的缺陷,有2种解决思路,一是使用更为复杂的模型,而是使用条件随机场CRF。


http://www.ppmy.cn/news/1050343.html

相关文章

uni-app中学习笔记记录(1)

常用生命周期函数 onLoad 页面加载时触发,用onLoad可以接受路由传参;onReady 页面组件渲染完毕时触发,类似于vue2中的mounted生命周期函数;onShow 页面出现在屏幕上时触发,由于在h5或者小程序中,页面初始化…

8月17日上课内容 第三章 LVS+Keepalived群集

本章结构 Keepalived概述 keepalived 概述 1.服务功能 故障自动切换 健康检查 节点服务器高可用 HA keepalived工作原理 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题 在一个LVS服务集群中通常有主服务器 (MAST…

eNSP综合小实验:VRRP、MSTP、Eth-Trunk、NAT、DHCP等技术应用

完成下图要求: 拓扑图: 配置命令: 由于交换机日志太多不便于复制,所以就复制命令。大概步骤如下: 第一步先分配IP地址,在sw1和sw2上创建VLAN100用于e0/0/3口配IP,在sw1、sw2、sw3、sw4上创建VL…

卷积神经网络——上篇【深度学习】【PyTorch】

文章目录 5、卷积神经网络5.1、卷积5.1.1、理论部分5.1.2、代码实现5.1.3、边缘检测 5.2、填充和步幅5.2.1、理论部分5.2.2、代码实现 5.3、多输入多输出通道5.3.1、理论部分5.3.2、代码实现 5.4、池化层 | 汇聚层5.4.1、理论部分5.4.2、代码实现 5、卷积神经网络 5.1、卷积 …

飞天使-kubeadm安装一主一从集群

文章目录 安装前准备安装前准备配置yum源等安装前准备docker安装 安装kubeadm配置kubeadm验证集群 参考链接 安装前准备 cat >> /etc/hosts <<EOF 192.168.100.30 k8s-01 192.168.100.31 k8s-02 EOF hostnamectl set-hostname k8s-01 #所有机器按照要求修改 ho…

三、SQL注入之报错注入

文章目录 1、 xpath语法&#xff08;1&#xff09;extractvalue&#xff08;2&#xff09;updatexml 2、concatrand()group by()导致主键重复 报错注入就是利用了数据库的某些机制&#xff0c;人为地制造错误条件&#xff0c;使得查询结果能够出现在错误信息中。这里主要介绍报…

构建 NodeJS 影院预订微服务并使用 docker 部署(03/4)

一、说明 构建一个微服务的电影网站&#xff0c;需要Docker、NodeJS、MongoDB&#xff0c;这样的案例您见过吗&#xff1f;如果对此有兴趣&#xff0c;您就继续往下看吧。 你好社区&#xff0c;这是&#x1f3f0;“构建 NodeJS 影院微服务”系列的第三篇文章。本系列文章演示了…

JAVACV实现视频流转视频文件和视频截取

MAVEN 依赖 <!-- mac 平台报错 https://gitee.com/52jian/EasyMedia/issues/I5ZMMR--><!-- 媒体只用到以下两个&#xff0c;javacv、ffmpeg --><dependency><groupId>org.bytedeco</groupId><artifactId>javacv</artifactId><ver…