ppt来自于李宏毅老师的视频
首先从带有记忆的网络开始:
前一步的隐藏层状态会写入记忆单元中
再次输入
可以发现相同输入。因为记忆单元存在,输出是不同的
rnn就是具有类似特点的网络,可以记忆之前输入的信息
同时rnn根据存储信息不同可以划分为不同的网络:
存储隐藏状态或者是输出
双向RNN:
将序列按照正反的双向顺序输入,根据两个的h获得输出y
优点是获得信息更广
LSTM
通过输入门决定是否将记忆写到记忆单元中
输出门决定是否将记忆单元中的值输出
遗忘门决定是否遗忘记忆单元的值
具体结构:
输入信号的激活函数都是sigmoid函数,取值在0-1之间,这样0就表示遗忘或者是拒绝,1就表示存储或通过,每次根据输入来更新c。
下面是一个方便理解LSTM记忆更新的例子:
信号量也是由输入变换得到的
实际上的网络,就是将神经元改成LSTM细胞,每次的输入先变换成向量Z,Z的维度和该层LSTM细胞数目相同,这样每个细胞处理向量中对应的一个维度元素
如下图所示,输入的X经过变换生成4个向量,作为LSTM的4个输入。
最终的输入包括了x h 和c
rnn训练方法
反向传播BPTT更新参数:
rnn训练时,可能会由于梯度难以调整学习率
可以使用LSTM进行纠正
RNN应用
多对一 、一对多、多对多模型
情感分析:
语音辨识:
输入为语音信号,输出文字
机器翻译(seq2seq):
RNN进阶:attention
控制读取和修改memory