基于RNN的序列标注系列(一)引言
前言:
从今天开始,想要开始写我这个公众号的第一个系列–基于RNN的序列标注,这个序列是RNN经典教材"Supervised Sequence Labelling With Recurrent Neural Networks"的一个翻译和总结,作者争取对本书作一个相对通顺的翻译,再加作者本人的一个总结。限于作者本人的能力,肯定会有诸多不足之处,请各位多多指教。
引言
在机器学习中,序列标注(Sequence Labelling)是指将序列化的数据转换为序列化离散标签的任务。常见的例子包括语音识别、手写识别、蛋白质二级结构预测和词性标注。基于监督学习的序列标注是指那些为模型训练提供了原始序列对应的标签的问题。例如,在语音识别中,输入数据(语音信号)是由声道的连续震动产生的,而标签数据(一句完整的话)由文法和语法构成。更复杂的情况是,在许多情况下,输入数据和标签之间的对齐方式是未知的。所以,这就要求序列标注算法既能确定对齐位置,又能输出正确的标签。
循环神经网络(Recurrent Neural Networks, RNN)是一种人工神经网络,这种结构受生物神经元连接的启发而来,具体的方式是使用迭代函数的方法循环储存信息。RNN的以下属性使得RNN成为序列标注的一个强有力的选择:
-
在利用上下文信息方面显得比较灵活(因为RNN可以学习什么是应该被记住的,什么是应该被忽略的);
-
RNN接受不同类型的数据表达;
-
RNN可以识别扭曲失真情况下的序列数据
然而,RNN也存在缺点,这些缺点限制了其在现实序列标注中的应用。标准RNN中最严重的缺点是:难以长距离地储存信息(Hochreiter et al.,2001b).由于此缺点,标准RNN在上下文的访问上存在限制。但是对于序列标注来说,长距离访问上下文是非常重要的。所以,Long Short-Term Memory(LSTM)围绕特殊的“记忆单元”重新设计了RN