LSTM和GRU 及反向传播公式推导

参考引用链接:https://mp.weixin.qq.com/s/aV9Rj-CnJZRXRm0rDOK6gg?utm_source=qq&utm_medium=social&utm_oi=726487944268894208

https://blog.csdn.net/wjc1182511338/article/details/79285503


因为RNN的问题:遗漏信息,只具有短时记忆

原因:反向传播时,RNN面临梯度消失问题  。梯度更新规则:新的权重  =  权重 - 学习率*梯度 获得小梯度更新的层会停止学习—— 那些通常是较早的层。 由于这些层不学习,RNN 可以忘记它在较长序列中看到的内容,因此具有短时记忆。

LSTM 和 GRU就是作为解决方案  --------使用“门”的内部机制

链接里面有动态图可以充分了解


激活函数的特点及其在这里面的应用:

1.tanh:数值在-1~1之间。

2.sigmoid:数值在0~1之间 。这样的设置有助于更新或忘记信息,因为任何数乘以 0 都得 0,这部分信息就会剔除掉。同样的,任何数乘以 1 都得到它本身,这部分信息就会完美地保存下来。这样网络就能了解哪些数据是需要遗忘,哪些数据是需要保存。


RNN:输入和先前隐藏状态组合成向量, 向量经过激活函数 tanh之后,输出的是新的隐藏状态或网络记忆。

LSTM:三种门结构:遗忘门、输入门和输出门

1.遗忘门:前一层隐藏状态的信息和当前输入的信息传递到 sigmoid 函数,遗忘的是上一步细胞状态的信息,即ct-1的

2.输入门:前一层隐藏状态的信息和当前输入的信息传递到 sigmoid 函数和tanh函数中,两个输出相乘,sigmoid 的输出值将决定 tanh 的输出值中哪些信息是重要且需要保留下来的。将新的信息选择性的记录到细胞状态中。

3.细胞状态:下一步,就是计算细胞状态。首先前一层的细胞状态与遗忘向量逐点相乘。如果它乘以接近 0 的值,意味着在新的细胞状态中,这些信息是需要丢弃掉的。然后再将该值与输入门的输出值逐点相加,将神经网络发现的新信息更新到细胞状态中去。至此,就得到了更新后的细胞状态。更新细胞状态

4.输出门:输出门用来确定下一个隐藏状态的值,隐藏状态包含了先前输入的信息。首先,我们将前一个隐藏状态和当前输入传递到 sigmoid 函数中,然后将新得到的细胞状态传递给 tanh 函数。最后将 tanh 的输出与 sigmoid 的输出相乘,以确定隐藏状态应携带的信息。再将隐藏状态作为当前细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。最后决定做什么样的预测

看图是最清楚直接理解的,最后的伪代码实现的,实际就是透过公式理解GRU

GRU:更新门(类似LSTM 中的遗忘门和输入门)和 重置门。  对比LSTM张量少训练快

总结:总而言之,RNN 适用于处理序列数据用于预测,但却受到短时记忆的制约。LSTM 和 GRU 采用门结构来克服短时记忆的影响。门结构可以调节流经序列链的信息流。LSTM 和 GRU 被广泛地应用到语音识别、语音合成和自然语言处理等。


插一张LSTM的图片和公式:

LSTM和GRU 及反向传播公式推导_第1张图片

时不时的忘记,所以随便写下,很基础的内容。原文很详细,尤其是输入的几个流动图很清楚。

知识未完善部分:1.激活函数

未完待续。。。。。。。。。。。。。。。

你可能感兴趣的:(LSTM和GRU 及反向传播公式推导)