one to many: 输入一张图片,输出描述图片中的内容,其中输出的内容前后是有依赖的,相关的,比如上面一张图就是‘一个人在跑步’,‘一个’和‘人’是相关的,如果‘一个’变了,那么‘人’可能也会变。
many to one: 情感分类,输入是一个句子,输出是评分,输入的前后是依赖相关的。
many to many: 翻译系统,将德语翻译成英语,输入和输出都是相关的。
many to many: 语音识别,传入一段语音,输出是转换成的文字。
RNN的模型结构
RNN block
我们的模型将会采用两个值,t时间处,X的输入值和前一个单元格 t-1 时间处的输出值A。左边是传统的神经网络模型,它在左边基础上是如何变成右边的?我们用第一个单元的运算来举例。
方程①:就像我们使用简单ANN所做的那样,它也存在权重Wax,Waa和偏差Ba。它只是增加一个输入值A0(前一个单元的输出值)。
单元有两个不同的输出: A1的输出(由公式②得到)将转到下一个单元,公式③的最终输出Y1。
所有权重的下标意思是,第一个下标是计算某类型的量,第二个下标是你要乘以的类型。比如Wax,它乘以的是X1,要计算的是A1,所以它的下标是ax。
现在,让我们进入下一个单元。整个过程如下图所示。
简化符号表示
但是为了简化符号,后面图中的公式都是简化的符号, 令:
于是:
我们将
变成
符号变了,但是意思是没有变的,只是为了方便简写,所以后面都是用简化后的公式。
Stacked RNN
如果把RNN堆在一起,输出的y又可以作为x输入到另一个神经网络中,那么它的结构就是这样的。