1.lstm的结构图
LSTM主要由记忆单元C,遗忘门,输入门和输出门组成,门的取值范围都是(0,1),由sigmoid函数控制
- 遗忘门f
遗忘门以前一个时刻的隐层状态ht−1和该时刻输入xt的线性组合作为sigmoid函数的输入,用来控制遗忘多少*前一时刻记忆单元Ct-1的内容。
那么经过遗忘门之后:Ct-1中的内容还剩多少呢:• 表示元素级的乘法 - 输入门 i
输入们也是以前一个时刻的隐层状态ht−1和该时刻输入xt的线性组合作为sigmoid函数的输入,用来控制输入多少当前输入进来的新信息
输入们:
那么经过输入门的控制,究竟有多少新信息是被保留的呢?我们用C_t~来表示: - 输出门
输出们也是以前一个时刻的隐层状态ht−1和该时刻输入xt的线性组合作为sigmoid函数的输入,用来控制输出多少 当前记忆单元Ct 的信息
输出门:
那么当前记忆单元Ct的内容是什么呢??,观察下图:
Ct 是由 Ct-1 经历乘法和加法得到的,再来看乘法和加法到底是什么?
由图中可以看到: - 乘法:由遗忘门控制的
- 加法:由输入门控制的
- 将两者想加就是当前的Ct
- 最终的输出ht
对照这张图,整个过程整理一下
2.GRU结构图
GRU是LSTM网络的一种效果很好的变体,它较LSTM网络的结构更加简单,而且效果也很好,因此也是当前非常流形的一种网络。GRU既然是LSTM的变体,因此也是可以解决RNN网络中的长依赖问题。
GRU模型中只有两个门:分别是重置门和更新门
-
重置门所做的工作跟Lstm 的遗忘门类似,只不过它不是遗忘前一时刻记忆单元Ct-1的信息,而是前一时刻隐层单元的信息 ht-1
-
重置门:
-
遗忘之后,ht-1 还剩多少信息??
-
更新门作用与LSTM 不一样,它是控制前一时刻隐层状态 ht-1,和当前输入信息的平衡
-
更新门:
-
输入信息:注意这里输入的不是ht-1, 而是遗忘之后的 rt • ht-1 -
平衡之后的ht: