Bootstrap

RNN与Self-Attention

1. SimpleRNN

学习视频:https://www.youtube.com/watch?v=Cc4ENs6BHQw&t=0s

  • 对于时序数据,输入输出都不固定,需要many-one、many-many模型,RNN很适合时序数据
    整个RNN 只有一个参数A
    在这里插入图片描述

1.1 h t h_t ht计算

在这里插入图片描述

1.2 激活函数

为什么需要双曲正切函数作为激活函数?
假设输入为0,当矩阵A最大特征值=0.9,则 h 100 h_{100} h100每个元素近似为0;当矩阵A最大特征值=1.2,则 h 100 h_{100} h100每个元素都很大,状态向量会爆炸
在这里插入图片描述

  • 训练参数
    在这里插入图片描述

2. SimpleRNN+Self-Attention

学习链接:https://www.youtube.com/watch?v=Vr4UNt7X6Gw&t=0s

2.1 状态更新

对于SimpleRNN,新的状态 h i + 1 h_{i+1} hi+1 h i h_{i} hi以及 x i + 1 x_{i+1} xi+1有关
引入Self-Attention后,新的状态 h i + 1 h_{i+1} hi+1 c i c_{i} ci以及 x i + 1 x_{i+1} xi+1有关。

每一轮更新状态之前,都会用context vector c看一遍之前所有状态,解决遗忘问题
$c$是已有状态h的加权平均,初始$h_0$为全0向量,可以忽略

在这里插入图片描述

2.2 权重 α α α

用当前状态 h i h_i hi与已有状态作对比,包括与 h i h_i hi自己做对比,得到 i 个 α i个α iα
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

;