监督序列标注(Supervised Sequence Labeling)与传统的监督模式分类(supervised pattern classification)的不同之处在与样本点不能被当作是独立的。
输入和标签都具有强相关性。
输入与标签的对应关系是未知的。
上下文信息非常灵活(因为它们能够学习处哪些需要存储以及哪些需要遗忘)。
能够支持各种形式的数据表达。
即使序列存在扭曲失真也能进行识别。
使其存储长期信息非常困难。
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)
监督学习:用许多『输入-标签对』来进行训练。
增强学习:仅仅利用标量值训练。
无监督学习:没有训练信号。
模式分类的对象是非序列数据,是序列数据的基础。
分类器直接给出类别标签,如:SVM。
得出属于每一类的概率,其中选取概率最大值对应的类别 h(x)h(x):
概率值的大小可以用于观察置信度的相对值。
能够与其它概率算法联合使用。
令训练集为SS,分类器参数为ωω,输入样本为xx,则有:
p(ω)p(ω) 一般被作为正则化项(regularisation term),对于高斯分布有 p(ω)∝|ω|2p(ω)∝|ω|2 ,因此 p(ω)p(ω) 被作为权重衰减项。而对于均匀分布,这一项可以移除,由此可以得到极大似然估计(ML) 的参数向量 ωMLωML :
判别模型:直接计算所属类别后验概率 p(Ck|x)p(Ck|x)。
生成模型:首先生成类别条件密度函数 p(x|Ck)p(x|Ck),再利用贝叶斯公式,以及类别先验概率 p(Ck)p(Ck),来得到后验概率:
其中
之所以称之为生成,是因为 p(x)p(x) 可以用于生成输入数据。
生成模型优于判别模型的地方在于:各个类别可以独立训练;
而判别模型当遇到有新类别加入时就需要重新训练。
判别模型对于分类任务一般效果较好,因为判别模型致力于寻找类别分界面。
序列标注的目的在于针对输入序列数据,根据给定的字母表,给出对应的标签序列。
例如翻译一段语音(语音识别)、理解一段视频中的手势(手势识别)以及蛋白质亚结构的预测(并不一定是时间序列)。
序列之间相互独立且均匀分布。
输出序列的长度不超过输入序列。
SS 是训练集,满足分布 DX×ZDX×Z,其中每个元素是(x,z)(x,z),粗体代表序列
XX 是输入空间X=(RM)∗X=(RM)∗,对应输入样本为MM个实数向量。
Z=L∗Z=L∗是输出空间,对应输出目标序列z=(z1,z2,…,zU)z=(z1,z2,…,zU),其中有
不论输入序列是否是时间序列,序列中的每个离散点都被作为时间步。序列标注的任务可以概括为:
使用SS训练出一个序列标注算法 h:X↦Zh:X↦Z 将测试集S′⊂DX×ZS′⊂DX×Z进行尽可能精确地标记。
按整合程度依次递增分别为:
时序(Temporal)分类 -> 时间段(Segment)分类 -> 序列(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
时间段分类的输入时间段与输出时间段的对应关系式已知的。
其关键特点在于过去侧时间段的上下文信息能够被有效利用。
上下文能起到相当重要的作用。如图所示:
整体上看,这个单词显然是『defence』,然而但看中间这段,字母『n』却是模糊不清的。标准的模式识别算法,每次只能处理一个输入。一种变通办法是,将一段时间的数据做成时间窗,然后以时间窗为单位进行输入,然而问题在于时间窗的长度不仅使未知的,而且也是随着时间段而改变的。相应地,
时间段错误率可以定义为:
Eseg(h,S′)=100Z∑(x,z)∈S′HD(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)是 两个长度相同序列pp和qq之间的 hamming 距离。
时序分类是最一般的情况,唯一的限制在于标签序列的长度必须小于等于输入序列的长度,甚至也可以是空。
时序分类与时间段分类最大的区别在于,时序分类算法需要决定在序列的什么未知作出分类判断。
由于判断的边界未知,因此之前定义错误率的方式并不适用。
我们定义从pp到qq最少要插入、删除、替换的数量为编辑距离ED(p,q)ED(p,q):
标签错误率可以定义为:
Elab(h,S′)=100Z∑(x,z)∈S′ED(h(x),z)Elab(h,S′)=100Z∑(x,z)∈S′ED(h(x),z)
注意这个错误率并不是真正的百分比,而可能会大于100。
联系客服