循环神经网络
特点:上一阶段(时间步)的输出作为输入进入当前时间步。
预测模型
循环神经网络由循环神经原组成,循环神经元一般有两个输入,一个是前阶段的信息,一个是当前阶段的信息。同时产生一个输出,可以作为下一阶段的输入。
循环神经网络采用多种模型。
左上:每个时间步有一个输入,同时产生一个输出
右上:一串输入,最后产生一个输出。
左下:一个输入,一串输出
右下:编码-解码器。
每一层的输出可以通过如下方式计算:
训练方式
和之前的深度神经网络一样,循环神经网络也使用反向自动微分进行训练,但是不同的是,虚拟神经网络需要首先按照时间展开成为一个深度神经网络然后再使用反向自动微分,虽然展开的深度神经网络有很多层,但是循环神经网络的训练值仍然只有原来的数量。
循环神经网络再训练中通常会有两个问题,第一是展开的网络过深,可能会有梯度消失或者梯度爆炸问题,第二是,随着训练的继续,早期的数据的影响力可能会慢慢消失。
深度循环神经网络的训练
这里之前深度学习中的方法都能够使用,此外还有一种更直接的方法,叫做截断时间反向传播算法,也就是说我们对循环神经元的按时间展开的时间步进行限制,也就限制了展开的深度网络的层数。
LSTM单元和GRU单元
这两种所谓的循环神经单元与之前的普通循环神经单元类似,但是它们更主要的作用在于将距离较远的信息保存下来。
以下是两种循环神经元的计算方法:
显然参数增加了许多。
循环神经网络用于机器翻译
结构图
单词的表示方法:
单词嵌入:使用神经网络的方法,将单词表示为n维向量,使性质相似的词的向量表示也相似。