概述
参考博客:https://blog.csdn.net/dqcfkyqdxym3f8rb0/article/details/82922386 动图很形象,帮助理解。
https://blog.csdn.net/lreaderl/article/details/78022724
LSTM的核心概念在于细胞状态及‘门’结构。
1、细胞状态相当于信息传输的路径,让信息能在序列连中传递下去。可以将其理解为网络的‘记忆’。
2、因为:较早时间步长的信息也能携带到较后时间步长的细胞中来,这是为了克服短时记忆的影响。
信息的添加和移除,通过‘门’结构来实现,‘门’结构在训练过程会去学习该保存或遗忘哪些信息。
LSTM有三种类型的门结构:遗忘门、输入门、输出门。
1、遗忘门的功能就是决定应丢弃或保留哪些信息。来自前一个隐藏状态的信息和当前输入的信息同时传递到sigmoid函数中,
输出值介于0和1之间,越接近0意味着越应该丢弃,越接近1意味着越应该保留。
[]表示连接向量。
2、输入门 用于更新细胞状态。
首先将前一层隐藏状态的信息与当前输入的信息传递到sigmoid函数中去。将值调整到0~1之间
来决定要更新哪些信息。0表示不重要,1表示重要。
其次还要将前一层隐藏状态的信息当前输入的信息传递到tanh函数中去,创造一个新的候选值向量。
最后将sigmoid的输出值与tanh的输出值相乘,sigmoid的输出值决定tanh的输出值中哪些信息是重要且需要保存下来的。
3、细胞状态:计算细胞状态
首先前一层的细胞状态与遗忘向量逐点相乘。如果它乘以接近 0 的值,意味着在新的细胞状态中,这些信息是需要丢弃掉的。然后再将该值与输入门的输出值逐点相加,将神经网络发现的新信息更新到细胞状态中去。至此,就得到了更新后的细胞状态。
4、输出门:用来确定下一个隐藏状态的值,隐藏状态包括了先前输入的信息。
首先,我们将前一个隐藏状态和当前输入传递到sigmoid函数中,然后将新得到的细胞状态传递给tanh函数。
最后将tanh的输出与sigmoid的输出相乘,以确定隐藏状态应携带的信息。
再将隐藏状态当做细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。
(上图是第一篇博客引用过来的)
遗忘门确定前一个步长中哪些相关的信息需要被保留;输入门确定当前输入中哪些信息是重要的,需要被添加的;输出门确定下一个隐藏状态应该是什么。
GRU:GRU去除了细胞状态,使用隐藏状态来进行信息的传递。
它包含两个门:更新门和重置门
1、更新门:作用类似于LSTM中的遗忘门和输入门。它决定了要忘记那些信息以及哪些信息需要添加。
2、重置门:用于决定遗忘先前信息的程度。
最后
以上就是耍酷鸵鸟为你收集整理的对GRU和LSTM的理解的全部内容,希望文章能够帮你解决对GRU和LSTM的理解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复