Sequence Models

序列模型

  • 如下图,常见的几个序列模型的应用:1、语音识别 2、音乐生产 3、文本情感分类 4、DNA序列分析 5、机器翻译 6、视频运动识别 7、命名实体识别。
    Sequence Models_第1张图片

  • 下图是该博客使用的符号说明:
    x代表输入序列,y代表输出序列 ,用右上角尖括号 x < t > x^{} x<t>代表x的第t个位置的数据, T x T_x Tx代表输入x的序列长度,相应的 T y T_y Ty代表输出序列的长度。下列 T x = T y T_x=T_y Tx=Ty但很多时候,两者可以不相等。另外圆括号,仍然表示第i个样本。
    Sequence Models_第2张图片

  • 解决序列问题的模型 -RNN
    那么问题来了,在解释什么是RNN之前,先思考,为什么不用传统的标准神经网络来处理,下图给出答案:
    原因有两个,1、如果把序列的每个位置数据作为input X的一个feature,首先,不同的样本输入、输出的长度可能是不同的,而标准的神经网络结构,显然输入层、输出层神经元的个数是固定的。
    2、最主要的问题在于,一段文本序列在不同的位置无法共享features。比如一段话中出现了两个相同的词,其中先出现的位置,该词已经识别出,但它无法告诉model后面位置的词该信息。
    Sequence Models_第3张图片

  • 以下是RNN结构的展开形式
    序列x,以从左右到右的顺序,依次将 x < t > x^{} x<t>输入RNN,其中最有趣的结构就是hidden state,下图用 a < t > a^{} a<t>来表示,每次输出时,除了要看当前时序的输入 x < t > x^{} x<t>还要看之前的信息 a < t − 1 > a^{} a<t1>,具体的公式如下:
    Sequence Models_第4张图片

  • 下面是几种常见的RNN结构类型

  • Sequence Models_第5张图片

  • one to many 属于序列生产,只需要一个输入,便可输出多个y

  • many to one典型的应用是文本情感分类,比如电影评论分析。只在整个句子输入完后,才会输出一个y。

  • many to many 第一个是输入和输出长度相同的情况,在每个输入都会产生一个输出。

  • many to many 第二个输入和输出长度不相同,就是sequence·to sequence Model,左边是encoder 右边是decoder,典型的应用是机器翻译,输入一段中文,翻译成英文。

你可能感兴趣的:(NLP自然语言处理)