[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

序列模型能够运用的领域:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

one-hot编码:

要使用的数据为1矩阵其余元素为0的单列矩阵(向量)

遇到此表中不存在的单词时,在表尾新建一名为UKW(unknow word)的新元素

传统神经网络在处理序列数据上的问题:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

RNN暴露出的问题:

如图,RNN在计算输出例如:y^(3) 时会吸收 a^(0) a^(1) a^(2)以及x(1) x(2)的经验,而无法吸收例如x(3)等来自后面学习到的经验;这会造成例如:图中最后两行所示无法识别Teddy是否为人名的问题(第一行为人名,第二行不是);而BRNN(双向循环神经网络)就能解决这一问题

注:一般a^(0)为输入的零向量

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

前向传播的推导:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

RNN的反向传播:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

其损失函数为Logistic的损失函数,也称交叉熵函数
缺点:wyby的值过大过小会产生梯度爆炸或梯度消失

RNN的一般类型:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

one to many 音乐生成
many to one 情感分析
many to many 命名物体识别
many to many(长度不一样)机器翻译

RNN model解释:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

每层输出用softmax来预测

RNN对新序列进行采样的过程:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

RNN对新序列进行采样

梯度消失的原因:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

RNN的反向传播会产生梯度消失或梯度爆炸问题
梯度消失可以靠梯度修剪(gradient clipping的方法避免
梯度修剪:观察某个向量如果它到达某一阈值—缩放梯度向量导致它不会太大

GRU:

GRU(门控循环单元)是LSTM网络的一种效果很好的变体,它较LSTM网络的结构更加简单,而且效果也很好,因此也是当前非常流形的一种网络。GRU既然是LSTM的变体,因此也是可以解决RNN网络中的长依赖问题。

GRU的推导:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

完整的GRP:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

GRU与LSTM的对比:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

LSTM:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

双向RNN(Bidirectional RNN):

不仅可以获得之前的信息也能获取未来的信息

缺点:需要整段序列数据才能预测;如:语音识别,得等到一人说完整段话才能识别

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

框图

Deep RNNs:

[笔记]|[DL]|[RNN]吴恩达深度学习10——序列模型

框图