监督序列标注(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.
模式分类的对象是非序列数据,是序列数据的基础。
分类器直接给出类别标签,如:SVM。
得出属于每一类的概率,其中选取概率最大值对应的类别 h(x) :
令训练集为 S ,分类器参数为 ω ,输入样本为 x ,则有:
p(ω) 一般被作为正则化项(regularisation term),对于高斯分布有 p(ω)∝|ω|2 ,因此 p(ω) 被作为权重衰减项。而对于均匀分布,这一项可以移除,由此可以得到极大似然估计(ML) 的参数向量 ωML :
- 生成模型优于判别模型的地方在于:各个类别可以独立训练;
- 而判别模型当遇到有新类别加入时就需要重新训练。
- 判别模型对于分类任务一般效果较好,因为判别模型致力于寻找类别分界面。
序列标注的目的在于针对输入序列数据,根据给定的字母表,给出对应的标签序列。
例如翻译一段语音(语音识别)、理解一段视频中的手势(手势识别)以及蛋白质亚结构的预测(并不一定是时间序列)。
使用 S 训练出一个序列标注算法 h:↦ 将测试集 S′⊂× 进行尽可能精确地标记。
按整合程度依次递增分别为:
时序(Temporal)分类 -> 时间段(Segment)分类 -> 序列(Sequence)分类
序列分类相当于输出(标签)序列被限制为长度为1。这样每个输入序列都对应于一个单一的类别。其关键特征在于:
整个序列可以在分类之前就进行处理。
如果输入序列的长度固定或者使用 padding 的手段,输入序列就能以输入向量的形式,应用各种机器学习方法进行分类了,如 CNNs 和 SVM。即使输入长度已经固定,序列化的算法也能够更好地适应输入数据。
序列错误率可以定义为:
Eseq(h,S′)=100∣∣S′∣∣∑(x,z)∈S′{0ifh(x)=z1otherwise
时间段分类的输入时间段与输出时间段的对应关系式已知的。
其关键特点在于过去侧时间段的上下文信息能够被有效利用。
上下文能起到相当重要的作用。如图所示:
整体上看,这个单词显然是『defence』,然而但看中间这段,字母『n』却是模糊不清的。标准的模式识别算法,每次只能处理一个输入。一种变通办法是,将一段时间的数据做成时间窗,然后以时间窗为单位进行输入,然而问题在于时间窗的长度不仅使未知的,而且也是随着时间段而改变的。相应地,
时间段错误率可以定义为:
Eseg(h,S′)=100Z∑(x,z)∈S′HD(h(x),z)
其中Z=∑(x,z)∈S′∣∣z∣∣
而 HD(p,q) 是 两个长度相同序列 p 和 q 之间的 hamming 距离。
时序分类是最一般的情况,唯一的限制在于标签序列的长度必须小于等于输入序列的长度,甚至也可以是空。
时序分类与时间段分类最大的区别在于,时序分类算法需要决定在序列的什么未知作出分类判断。
由于判断的边界未知,因此之前定义错误率的方式并不适用。
我们定义从 p 到 q 最少要插入、删除、替换的数量为编辑距离 ED(p,q) :
标签错误率可以定义为:
Elab(h,S′)=100Z∑(x,z)∈S′ED(h(x),z)
注意这个错误率并不是真正的百分比,而可能会大于100。