理解长短期记忆LSTM 神经网络人类并不是从混沌状态开始他们的思考。就像你读这篇文章时,你是建立在你之前对文字的理解上。你并不是学习结束之后就丢弃掉你学到的东西,然后再从混沌状态开始。因为你的思想有持续性然而,传统的神经网络并不能做到持续记忆,这应该是传统神经网络的一个缺陷。假想一下,你想让神经网络对电影中每个时间点的事件进行分类,3分钟的企业宣传片创意文案脚本应该怎么写很明显,传统神经网络不能使用前一个事件去推理下一个事件递归神经网络可以解决这个问题。它们是带有循环的神经网络,允许信息保留一段时间在上图中,A 代表神经网络主体, xt 是网络输入,ht是网络输出,循环结构允许信息从当前输出传递到下一次的网络输入这些循环让递归神经网络看起来有点神秘,公司宣传片拍摄然而,如果你再进一步思考一下,它与传统神经网络并没有太多不同。影视视频制作一个递归神经网络可以看多是一个网络的多次拷贝,每次把信息传递给他的继任者。让我们把网络展开,你会看到发生了什么人门希望RNNs能够连接之前的信息到当前的任务中,例如,使用之前的图像帧信息去辅助理解当前的帧。如果RNNs可以做到这个,它们将会特别的有用,但是它们可以做到吗?这要视情况而定有时,我们仅仅需要使用当前的信息去执行当前的任务。例如, 一个语言模型试图根据之前的单词去预测下一个单词。如果我们试图去预测“the clouds are in the sky”,我们不需要更多的上下文信息 很明显下一个单词会是sky。在类似这种相关信息和需要它的场合并不太多的情景下,RNNs可以学习使用之前的信息长短期记忆网络 通畅叫做”LSTMs” 是一种特殊的RNNs, 它能够学习长期依赖。LSTM由Hochreiter LSTMs被明确的设计用来解决长期依赖问题,记住长时间段的信息是他们的必备技能,不像RNNs那么费力去做还做不好所有的递归神经网络都有重复神经网络本身模型的链式形式。在标准的RNNs, 这个复制模块只有一个非常简单的结构,例如一个双极性(tanh)层LSTMs 也有这种链式结构,但是这个重复模块与上面提到的RNNs结构不同:LSTMs并不是只增加一个简单的神经网络层,而是四个,公司宣传片拍摄它们以一种特殊的形式交互别担心中间到底发生了什么。我们接下来会一步一步的理解这个LSTM图。首先,我们要首先适应一下我们将会使用的符号表示方法在上图中,每条线表示一个向量,从一个输出节点到其他节点的输入节点。这个粉红色圆圈表示逐点式操作,就像向量加法。黄色的盒子是学习好的神经网络的层。线条合表示联结,相反,线条分叉表示内容被复制到不同位置LSTM的第一步就是决定什么信息应该被神经元遗忘。这是一个被称为“遗忘门层”的Sigmod层组成的。它输入 ht1和xt,然后在Ct1 的每个神经元状态输出01之间的数字。“1”表示“完全保留这个”,“0”表示“完全遗忘这个”让我们再次回到那个尝试去根据之前的词语去预测下一个单词的语言模型。在这个问题中,神经元状态或许包括当前主语中的性别信息,所以可以使用正确的代词。当我们看到一个新的主语,我们会去遗忘之前的性别信息下一步就是决定我们要在神经元细胞中保存什么信息,这包括两个部分。首先,一个被称为“遗忘门层”的Sigmod层决定我们要更新的数值。然后,一个tanh层生成一个新的候选数值,Ct,它会被增加到神经元状态中。记富士GFX50s试用2,在下一步中中,我们会组合这两步去生成一个更新状态值在那个语言模型例子中,我们想给神经元状态增加新的主语的性别,替换我们将要遗忘的旧的主语是时候去更新旧的神经元状态Ct1到新的神经元状态Ct了。从高热恢复冷静 投资客转移阵地之前的步骤已经决定要做什么,下一步我们就去做我们给旧的状态乘以一个ft,遗忘掉我们之前决定要遗忘的信息,然后我们增加itCt。这是新的候选值,是由我们想多大程度上更新每个状态的值来度量的在语言模型中,就像上面描述的,这是我们实际上要丢弃之前主语的性别信息,增加新的主语的性别信息的地方最后,我们要决定要输出什么。这个输出是建立在我们的神经元状态的基础上的,但是有一个滤波器。首先,我们使用Sigmod层决定哪一部分的神经元状态需要被输出;然后我们让神经元状态经过tanh(让输出值变为 11之间)层并且乘上Sigmod门限的输出,我们只输出我们想要输出的对于那个语言模型的例子,当我们看到一个主语的时候,或许我们想输出相关动词的信息,因为动词是紧跟在主语之后的。例如,它或许要输出主语是单数还是复数的,然后我们就知道主语联结的动词的语态了。