Chapter5-从卷积到循环神经网络

发布时间:2026/10/28 1:50:33
Chapter5-从卷积到循环神经网络

前馈网络 无法处理序列问题

假设每次输入都是独立的,也就是说每次网络的输出只依赖于当前的输入。


连接存在层与层之间,每层的节点之间是无连接的。(无循环)
输入和输出的维数都是固定的,不能任意改变。无法处理变长的序列数据。

如何实现有记忆的模型呢

我们引入有限状态机,每个状态都是一个记忆

延时神经网络

引入延时器记忆,但是有数量限制k个

循环神经网络

循环神经网络通过使用带自反馈的神经元,能够处理任意长度的时序数据

图中显示,隐藏层输出ht是由前一个时刻的隐状态ht-1和输入xt决定的,同时将当前隐状态输出ht存入寄存器。

隐藏状态是一个压缩的记忆,试用的时候,x是真实输入,比如我,输入后,输出是爱,输出隐藏内容是“我”的概念。

第二个时间点,输入是上一时刻的输出“爱”,以及“我”的概念,输出是自然,输出隐藏内容是“我爱”的概念。

第三个时间点,输入是上一时刻的输出“自然”,以及“我爱”的概念,输出是EOS。

RNN的应用

序列分类输入是一个序列,输出是一个标签。

序列标注一个输入对应一个输出,比如标注主谓宾定状补

序列生成是输入一个序列,输出一个序列。

但是RNN有问题:

多步连乘存在爆炸和消失的问题

容易忘记早期的记忆

怎么办?

长程依赖问题

梯度爆炸:

在惩罚项·中添加一个权重参数

或者截断两侧的梯度

梯度消失:

只能改模型

LSTM(必考)

是一种框架

设计四层门控层

对于RNN只能存储一个隐藏变量 没有长期保留信息的通路

LSTM实现了长程依赖记忆路径

将信息专门放到橙色的链路

通过门控实现

这里ppt讲的非常好!

变体

输入门的量用1-遗忘门的量考虑

ht-1是要处理的 那么要遗忘的+要记忆的就一定等于1

或者每一次门控都要考虑记忆

☆ 考试:画流程图 公式应用

为什么LSTM能改善?

可以有选择的保留信息

GRU

历史信息哪些需要参与计算

哪些需要写入

再更新

总结

RNN应用

Encoder-Decoder Seq2Seq

编码器压缩元语句 然后decoder解码这个压缩语义 实现翻译 (GRU)

训练的时候不可以使用自回归 否则会一路错下去

在使用的时候才会使用自回归

但是这样的代价是如果在推理的时候遇到错误的上下文输入时,又会发生级联放大

反转 可以剪短路径依赖 比如i和我反转后依赖路径很短

注意力机制

seq2seq要求encoder全部压缩所有上下文后再翻译,越长压缩的损失越大

如果能离散化 让每个词拥有自己的记忆锚点 翻译的时候就可以准确对应一个词 而不是塞一大段上下文了 decoder每次可以去原文搜索最相关的词

模型不会强制规定一对一输出 而是允许所有encoder的隐藏状态参与输出 而是取所有上下文的权重和