我是靠谱客的博主 耍酷鸵鸟,最近开发中收集的这篇文章主要介绍对GRU和LSTM的理解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

参考博客: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的输出相乘,以确定隐藏状态应携带的信息。

   再将隐藏状态当做细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。

640?wx_fmt=gif

(上图是第一篇博客引用过来的)

遗忘门确定前一个步长中哪些相关的信息需要被保留;输入门确定当前输入中哪些信息是重要的,需要被添加的;输出门确定下一个隐藏状态应该是什么。

GRU:GRU去除了细胞状态,使用隐藏状态来进行信息的传递。

它包含两个门:更新门和重置门

1、更新门:作用类似于LSTM中的遗忘门和输入门。它决定了要忘记那些信息以及哪些信息需要添加。

2、重置门:用于决定遗忘先前信息的程度。

最后

以上就是耍酷鸵鸟为你收集整理的对GRU和LSTM的理解的全部内容,希望文章能够帮你解决对GRU和LSTM的理解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部