深度学习——LSTM

LSTM(long short term memory)

能够让你可以在序列中学习非常深的连接 ,LSTM 即长短时记忆网络,甚至比 GRU更加有效

GRU and LSTM
深度学习——LSTM_第1张图片
记忆细胞 c ,使用̃<> = ℎ([<−1>, <>] + 来更新它的候选值̃<>注意了,在LSTM 中我们不再有<> = <>的情况,这是现在我们用的是类似于左边这个式子,但是有一些改变,现在我们专门使用<>或者<−1>,而不是用<−1>,我们也不用,即相关门。像以前那样有一个更新门和表示更新的参数, = ([<−1>, <>] + ),用遗忘门(the forget gate),我们叫它,所以这个 = ([<−1>, <>] + ),新的输出门 = ([<−1>, <>]+> );于是记忆细胞的更新值<> = ∗ ̃<> + ∗ <−1>,这给了记忆细胞选择权去维持旧的值<−1>或者就加上新的值̃<>,所以这里用了单独的更新门和遗忘门,最后<> = <>的式子会变成<> = ∗ <>.

LSTM
深度学习——LSTM_第2张图片
在这张图里是用<−1>, <>一起来计算遗忘门的值,还有更新门以及输出门。然后它们也经过 tanh 函数来计算̃<>,这些值被用复杂的方式组合在一起,比如说元素对应的乘积或者其他的方式来从之前的<−1>中获得<>.
深度学习——LSTM_第3张图片
你在这一堆图中看到的,把他们连起来,就是把它们按时间次序连起来,输入<1>,然后<2>,<3>,然后你可以把这些单元依次连起来,这里输出了上一个时间的,会作为下一个时间步的输入,同理。你会注意到上面这里有条线,这条线显示了只要你正确地设置了遗忘门和更新门,LSTM 是相当容易把<0>的值一直往下传递到右边,比如<3> = <0>。这就是为什么 LSTM 和 GRU 非常擅长于长时间记忆某个值,对于存在记忆细胞中的某个值,即使经过很长很长的时间步。

Q:GRU和LSTM选择哪个更好呢?
A:GRU 的优点是这是个更加简单的模型,所以更容易创建一个更大的网络,而且它只有两个门,在计算性上也运行得更快,然后它可以扩大模型的规模。
但是 LSTM 更加强大和灵活,因为它有三个门而不是两个。如果你想选一个使用,我认为 LSTM 在历史进程上是个更优先的选择,所以如果你必须选一个,我感觉今天大部分的人还是会把 LSTM 作为默认的选择来尝试。虽然我认为最近几年 GRU 获得了很多支持,而且我感觉越来越多的团队也正在使用 GRU,因为它更加简单,而且还效果还不错,它更容易适应规模更加大的问题。

你可能感兴趣的:(机器学习深度学习,深度学习,lstm,神经网络)