循环神经网络
记忆单元分类
RNN,GRU,LSTM
类别
单向循环,
双向循环
多层单或双向叠加
delay:n帧输入输入网络,记忆单元先更新n步,这n步的输出先不要
使得预测第一帧输出的时候不只看到了第一帧的输入(看到的上下文更宽)
优点/缺点:
优点:每个时刻的权重共享,可以处理变长序列,模型大小与序列长度无关,计算量与序列长度呈线性增长,考虑历史信息,便于流式输出
缺点:串行计算较慢,无法获取很长的历史信息
transformer计算复杂度和序列是平方关系
生成任务:
分类:
词法识别
RNN(Recurrent Neural Network)
x<1>输入神经网络,输出判断这个单词是否是人名的一部分,
读到x<2>时,不仅仅使用x<2>来预测,还会使用time-step 1的信息作为输入
a<1>代表time step1的激活值
黑色块表示延迟一个time-step
RNN每个time-step的参数是共享的,数据从左到右读入
缺点:只利用了之前的信息而没有利用之后的信息
根据y hat输出选择激活函数:
比如对于ner任务,输出为0,1则可以选择sigmoid
简化符号:
输出中的一个分叉将成为其自身的输入
与前馈神经网络不同:多个RNN层都是同一个层
各个时刻的 RNN 层接收传给该层的输入和前一个 RNN 层的输出,然后据此计算当前时刻的输出
RNN的权重:
(1)输入x转化为输出h的权重Wx
(2)将前一个RNN层输出ht-1转化为当前层输出的Wh
ht−1 和 xt 都是行向量
RNN 的 h 存储“状态”,时间每前进一步(一个单位),它就以式 (5.9) 的形式被更新
Backpropagation Through Time
基于时间的反向传播
Truncated BPTT
按适当长度截断的误差反向传播法
如果序列太长,就会出现计算量或者内存使 用量方面的问题。此外,随着层变长,梯度逐渐变小,梯度将无法向前一层 传递
以各个块为单位(和其他块没有关联)完成误差反向传播法
正向传播之间是有关联的,这意味着必须按顺序输入数据
神经网络在进行 mini-batch 学习时,数据都是 随机选择的。但是,在 RNN 执行 Truncated BPTT 时,数据需 要按顺序输入
正向传播的计算需要前一个块最后的隐藏状态 h9,这样可以维 持正向传播的连接。
按顺序输入
两个批次:一个批次500个时序数据,由于按长度10截断,则一个批次的元素量为50
批次的第一个元素:0-9,
第 1 笔样本数据从头开始按顺序输入,第 2 笔数据从第 500 个数据开始按顺 序输入。
一是要按顺序输入数据,二是 要平移各批次(各样本)输入数据的开始位置
实现RNN
基于RNN的神经网络:在水平方向上长度固定
在水平方向创建长度固定的网络序列
将进 行 Time RNN 层中的单步处理的层称为“RNN 层”,将一次处理 T 步的层 称为“Time RNN 层”
RNN单步 time-step处理
ht = tanh(ht−1Wh + xtWx + b) :RNN正向传播
</