打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
『RNN 监督序列标注』笔记

-第一/二章 监督序列标注

监督序列标注(Supervised Sequence Labeling)与传统的监督模式分类(supervised pattern classification)的不同之处在与样本点不能被当作是独立的。

序列标注的特点

  • 输入和标签都具有强相关性。

  • 输入与标签的对应关系是未知的。

RNNs的优点与缺陷

优点

  • 上下文信息非常灵活(因为它们能够学习处哪些需要存储以及哪些需要遗忘)。

  • 能够支持各种形式的数据表达。

  • 即使序列存在扭曲失真也能进行识别。

标准 RNN的缺点

  • 使其存储长期信息非常困难。

    Long Short-Term Memory (LSTM; Hochreiter and Schmidhuber, 1997) is a redesign of the RNN architecture around special ‘memory cell’ units.
  • 它只能够单向学习上下文信息。(对于序列预测很有用,但是对于序列标注,往往利用上下午的双向信息会更有效)
    Bidirectional LSTM (Graves and Schmidhuber, 2005b) combines the benefits of long-range memory and bidirectional processing.

  • 单维度序列。
    Multidimensional LSTM (Graves et al., 2007)

  • 训练非常耗时。
    Hierarchical subsampling RNNs (Graves and Schmidhuber, 2009)

监督序列标注

  • 监督学习:用许多『输入-标签对』来进行训练。

  • 增强学习:仅仅利用标量值训练。

  • 无监督学习:没有训练信号。

模式分类 (Pattern Classification)

模式分类的对象是非序列数据,是序列数据的基础。

概率分类(Probabilistic Classification)

判别函数法(Discriminant Functions)

分类器直接给出类别标签,如:SVM。

概率分类法(Probabilistic Classification)

得出属于每一类的概率,其中选取概率最大值对应的类别 h(x)h(x):

h(x)=argmaxkp(Ck|x)h(x)=arg⁡maxk⁡p(Ck|x)
  • 概率值的大小可以用于观察置信度的相对值。

  • 能够与其它概率算法联合使用。

训练概率分类器

令训练集为SS,分类器参数为ωω,输入样本为xx,则有:

p(S|ω)=(x,z)Sp(z|x,ω)p(S|ω)=∏(x,z)∈Sp(z|x,ω)

对于一个新输入的样本xx后验概率分布为:
p(Ck|x,S)=ωp(Ck|x,ω)p(ω|S)dωp(Ck|x,S)=∫ωp(Ck|x,ω)p(ω|S)dω

ωω的维度非常高,上述积分式求解十分困难。又由于:
p(Ck|x,S)p(Ck|x,ωMAP)p(Ck|x,S)≈p(Ck|x,ωMAP)

实际使用最大后验(Maximum A Posteriori,MAP)估计来寻找ωMAPωMAP进行预测:
ωMAP=argmaxωp(ω|S)=argmaxωp(S|ω)p(ω)p(S)=argmaxωp(S|ω)p(ω)ωMAP=arg⁡maxω⁡p(ω|S)=arg⁡maxω⁡p(S|ω)p(ω)p(S)=arg⁡maxω⁡p(S|ω)p(ω)

p(ω)p(ω) 一般被作为正则化项(regularisation term),对于高斯分布有 p(ω)|ω|2p(ω)∝|ω|2 ,因此 p(ω)p(ω) 被作为权重衰减项。而对于均匀分布,这一项可以移除,由此可以得到极大似然估计(ML) 的参数向量 ωMLωML

ωML=argmaxωp(S|ω)=argmaxω(x,z)Sp(z|x,ω)ωML=arg⁡maxω⁡p(S|ω)=arg⁡maxω⁡∏(x,z)∈Sp(z|x,ω)

生成模型与判别模型

  • 判别模型:直接计算所属类别后验概率 p(Ck|x)p(Ck|x)

  • 生成模型:首先生成类别条件密度函数 p(x|Ck)p(x|Ck),再利用贝叶斯公式,以及类别先验概率 p(Ck)p(Ck),来得到后验概率:

    p(Ck|x)=p(x|Ck)p(Ck)p(x)p(Ck|x)=p(x|Ck)p(Ck)p(x)


    其中

    p(x)=kp(x|Ck)p(Ck)p(x)=∑kp(x|Ck)p(Ck)


    之所以称之为生成,是因为 p(x)p(x) 可以用于生成输入数据。

  • 生成模型优于判别模型的地方在于:各个类别可以独立训练;

  • 而判别模型当遇到有新类别加入时就需要重新训练。

  • 判别模型对于分类任务一般效果较好,因为判别模型致力于寻找类别分界面。

序列标注

序列标注的目的在于针对输入序列数据,根据给定的字母表,给出对应的标签序列。

例如翻译一段语音(语音识别)、理解一段视频中的手势(手势识别)以及蛋白质亚结构的预测(并不一定是时间序列)。

序列标注的假设

  • 序列之间相互独立且均匀分布。

  • 输出序列的长度不超过输入序列。

序列标注的任务

  • SS 是训练集,满足分布 DX×ZDX×Z,其中每个元素是(x,z)(x,z),粗体代表序列

  • XX 是输入空间X=(RM)X=(RM)∗,对应输入样本为MM个实数向量。

  • Z=LZ=L∗是输出空间,对应输出目标序列z=(z1,z2,,zU)z=(z1,z2,…,zU),其中有

    |z|=U|x|=T|z|=U⩽|x|=T


    不论输入序列是否是时间序列,序列中的每个离散点都被作为时间步。序列标注的任务可以概括为:

使用SS训练出一个序列标注算法 h:XZh:X↦Z 将测试集SDX×ZS′⊂DX×Z进行尽可能精确地标记。

三种序列标注任务

按整合程度依次递增分别为:

时序(Temporal)分类 -> 时间段(Segment)分类 -> 序列(Sequence)分类

  • 序列分类:每个序列对应一个类。

  • 时间段分类:每个时间段对应一类。

  • 时序分类:运行各种输入和输出序列的对齐方式。

序列(Sequence)分类

序列分类相当于输出(标签)序列被限制为长度为1。这样每个输入序列都对应于一个单一的类别。其关键特征在于:

整个序列可以在分类之前就进行处理。

如果输入序列的长度固定或者使用 padding 的手段,输入序列就能以输入向量的形式,应用各种机器学习方法进行分类了,如 CNNs 和 SVM。即使输入长度已经固定,序列化的算法也能够更好地适应输入数据。

序列错误率可以定义为:

Eseq(h,S)=100|S|(x,z)S{0ifh(x)=z1otherwiseEseq(h,S′)=100|S′|∑(x,z)∈S′{0ifh(x)=z1otherwise

时间段(Segment)分类

时间段分类的输入时间段与输出时间段的对应关系式已知的。

其关键特点在于过去侧时间段的上下文信息能够被有效利用。

上下文能起到相当重要的作用。如图所示



整体上看,这个单词显然是『defence』,然而但看中间这段,字母『n』却是模糊不清的。标准的模式识别算法,每次只能处理一个输入。一种变通办法是,将一段时间的数据做成时间窗,然后以时间窗为单位进行输入,然而问题在于时间窗的长度不仅使未知的,而且也是随着时间段而改变的。相应地,

时间段错误率可以定义为:

Eseg(h,S)=100Z(x,z)SHD(h(x),z)Eseg(h,S′)=100Z∑(x,z)∈S′HD(h(x),z)

其中
Z=(x,z)S|z|Z=∑(x,z)∈S′|z|

HD(p,q)HD(p,q)是 两个长度相同序列ppqq之间的 hamming 距离。

时序(Temporal)分类

时序分类是最一般的情况,唯一的限制在于标签序列的长度必须小于等于输入序列的长度,甚至也可以是空。

时序分类与时间段分类最大的区别在于,时序分类算法需要决定在序列的什么未知作出分类判断。

由于判断的边界未知,因此之前定义错误率的方式并不适用。
我们定义从ppqq最少要插入、删除、替换的数量为编辑距离ED(p,q)ED(p,q)

标签错误率可以定义为:

Elab(h,S)=100Z(x,z)SED(h(x),z)Elab(h,S′)=100Z∑(x,z)∈S′ED(h(x),z)

注意这个错误率并不是真正的百分比,而可能会大于100。 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
时序模型查询示例
学习笔记|卡尔曼滤波,粒子滤波,动态贝叶斯网络(1)
隐马尔可夫模型:序列数据建模的一种方法
自然语言处理之seq2seq模型
NNLM、RNNLM、LSTM-RNNLM、Bi-lstm、GPT-1…你都掌握了吗?一文总结语音识...
Seq2seq框架下的文本生成
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服