Why Sequence Models
examples
循回神经网络(RNN)等序列模型已经颠覆了许多领域,如语言辨识,自然语言处理等。
在语音辨识中,获得音讯片段X作为输入项,亦将其映射至一段文本Y。在此,输入与输出皆为序列资料。因X为一段随时间推移的影讯,而输出Y为一组文字的序列。
音乐生成是序列资料问题的另一个例子,在这种情况下,只有输出Y为序列。输入可以是空集合,亦或是一个实数以代表你想要产生的音乐类型;亦或是你想要的音乐片段的最初几个音符。但此处的X可以为一空集合,也可为一个整数,而输出Y则是一个序列。
在情绪分类中,输入X是一个序列,一句话,一个短语,通过这句话的评论,判断会有几颗星。
序列模型对于DNA序列分析也非常的有用,你的DNA是通过四个字母A,C,G,T来表示的。所以给定一DNA序列,你可标定蛋白质对应在这个DNA序列的何处。
在机器翻译中,你会给定一个输入的句子,而需要输出不同语言的翻译。
在影片活动识别中,您可能会得到一序列影片的封面,并被要求识别出其中的活动。
在名称识别中,可能获得一个句子并要求从中识别出其中的人物。
所有的这些问题都可以有由标记过的X与Y作为训练集,以监督式学习来解决。但是,从这个例子清单中可以看出,有许多不同类型的序列问题。在某种情况下,输入X和输出Y皆为序列,在此情况下,有时X和Y可以有不同长度,或在情绪分类和名称识别中,XY有相同的长度。而有些例子中,只有X或只有Y是一个序列。
Notation
以下例子中,x输入数据,哈利波特中的一句话,让这个序列模型输出变量y对应每一个输入的单词,目标输出y的值标出那些输入单词是人名。还有一些更复杂的输出形式,不仅告诉你哪个输入单词是人名,还能指出人名在句子中的起始位置。在这个例子里,一共9个单词,所以最终会有9组特征来代表9个单词,并指出位置和序列。
表示输入数据的长度,这个例子里等于9,然后用表示输出序列的长度,这个例子中,两者相等。表示第i个训练样本的第t个元素,代表第i个训练样例的输出序列的第t个元素。代表第i个训练样例的输入序列长度,代表第i个训练样例的输出序列长度。
自然语言处理(NLP),需要决定在一个序列中如何表示一个单词。
首先需要准备好一个词汇表,有时也称为字典,其实就是将要用到的单词放在一起做一个清单。比如下图中,第一个单词是a,第二个是aaron,在下面是and,再往下就是Harry,然后是Potter,最后一个单词是Zulu,也就是说,a是单词1,Aaron是单词2,and这个词的索引是367,Harry则是4075,Potter是6830,Zulu这个词排最后,位置索引是10,000。
这里的词汇量是10000的字典,对于现代的自然语言处理应用而言,这种规模属于非常小的了,对于商业级的应用,一般的这种商业级应用,常用的字典规模一般为3到5万词汇。10万级词汇的字典也比较常见。有些大型互联网公司会使用词汇量达到百万量级甚至更大的字典。
代表单词Harry,就被表示为一个向量,向量的其余位全为0,除了在第4075位上有一个1表示。同理对于,也是一个向量,除了在第6830位有一个1,其余位均为0。
representing words所以在这种表示方法中,句子里的任意一个词t,设为,都将表示为一个one-hot(一位热码)向量,one-hot的意思是指只有一位为1,其余位全是0。
这样做的目的是,先学习使用序列模型到目标输出的方法表示x。作为监督式学习问题,用到的数据表中包括X和Y。当你遇到不在词汇表中的单词怎么办,解决办法是,创建一个新的标记,或者说一个伪词,称其为Unknown word,并使用尖括号<UNK>来表示这些不在词汇表中的词。
网友评论