序列模型
-
如下图,常见的几个序列模型的应用:1、语音识别 2、音乐生产 3、文本情感分类 4、DNA序列分析 5、机器翻译 6、视频运动识别 7、命名实体识别。
-
下图是该博客使用的符号说明:
x代表输入序列,y代表输出序列 ,用右上角尖括号
x
<
t
>
x^{<t>}
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个样本。
-
解决序列问题的模型 -RNN
那么问题来了,在解释什么是RNN之前,先思考,为什么不用传统的标准神经网络来处理,下图给出答案:
原因有两个,1、如果把序列的每个位置数据作为input X的一个feature,首先,不同的样本输入、输出的长度可能是不同的,而标准的神经网络结构,显然输入层、输出层神经元的个数是固定的。
2、最主要的问题在于,一段文本序列在不同的位置无法共享features。比如一段话中出现了两个相同的词,其中先出现的位置,该词已经识别出,但它无法告诉model后面位置的词该信息。
-
以下是RNN结构的展开形式
序列x,以从左右到右的顺序,依次将
x
<
t
>
x^{<t>}
x<t>输入RNN,其中最有趣的结构就是hidden state,下图用
a
<
t
>
a^{<t>}
a<t>来表示,每次输出时,除了要看当前时序的输入
x
<
t
>
x^{<t>}
x<t>还要看之前的信息
a
<
t
−
1
>
a^{<t-1>}
a<t−1>,具体的公式如下:
-
下面是几种常见的RNN结构类型
-
-
one to many 属于序列生产,只需要一个输入,便可输出多个y
-
many to one典型的应用是文本情感分类,比如电影评论分析。只在整个句子输入完后,才会输出一个y。
-
many to many 第一个是输入和输出长度相同的情况,在每个输入都会产生一个输出。
-
many to many 第二个输入和输出长度不相同,就是sequence·to sequence Model,左边是encoder 右边是decoder,典型的应用是机器翻译,输入一段中文,翻译成英文。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)