LSTM 神经网络
为什么提出LSTM?
RNN 存在“长期依赖”问题,当序列过长时候,一方面在优化时出现梯度消失或爆炸的问题。另一方面,展开后的前馈神经网络会占用较大的内存。
实际中,复杂语言场景中,有用的信息间隔有大有小,长短不一,RNN性能受限。LSTM则靠一些“门”结构让信息有选择性地影响循环神经网络中每个时刻的状态。
什么是“门”
“门”结构就是通过使用sigmoid函数和按位乘法的操作。其中sigmoid函数作为激活函数会输出0~1之间的数值,来描述当前的输入 有多少信息量 可以通过这个结构。1则表示全通过,0表示无法通过,而0-1之间的数也是按权保留信息,接近1的通过的多,接近0的通过的少。再通过按位相乘,那么就对原有的信息进行了筛选。
![16484271-e843997c6978624e.png](https://i-blog.csdnimg.cn/blog_migrate/d3749517c28302aa6d8af658141b25a5.webp?x-image-process=image/format,png)
LSTM 最有特点的也就是 3个门来控制
其中 : 1遗忘门 2是输入门 3 是输出门
先大致讲一下等号左端各个符号的含义:
表示输入门,表示遗忘门,表示输出门,表示输入的信息,表示当前网络所表示的信息,则表示当前时刻输出的信息。大致可以看到是有两部分相加得到,这也是LSTM避免梯度消失的地方,将乘变为‘+’。
LSTM网络结构中存在着一个隐藏的记忆结构,也就是 。这个变量每一次都参加都运算当中,但是输出的时候只输出,并不会输出。下图红线,表示了再每个LSTM单元中,都是用来协助保存信息的。
![16484271-592ee135f4354ca0.png](https://i-blog.csdnimg.cn/blog_migrate/7646b8c31393a0286edaaff6b3b2ecf0.webp?x-image-process=image/format,png)
我们需要关注的是这三个门都是如何起作用的
输入门
![16484271-37a229c2f91808d5.png](https://i-blog.csdnimg.cn/blog_migrate/4fed2ced40786b4e0e3f90bc042dc758.webp?x-image-process=image/format,png)
其中分别表示前面信息的输出和当前的输入, 的意思是,将两个向量进行拼接。
比如
代表着输入门的权重参数和偏置项。 代表着sigmoid函数,这也是“门”发挥作用的地方。
LSTM组合式中的表示当前输入的信息,在中有一部分为。这个式子就是输入门发挥作用的地方,通过按位乘,将对的信息进行“门”控制。
遗忘门
![16484271-6f923459c855a1f7.png](https://i-blog.csdnimg.cn/blog_migrate/8c3801a920b00f46369f59875676ef14.webp?x-image-process=image/format,png)
遗忘门的生成跟输入门是一样的,只不过有不同的参数从而生成了遗忘门。这里比输入门相对简单,因为遗忘门作用在前面输入的信息上,而 是直接可得到的。所以有了这个式子的部分。其中的是来自上一个时刻的信息。
这个时候我们再回顾下上面的图片
![16484271-9249f2e9eeebf0b3.png](https://i-blog.csdnimg.cn/blog_migrate/939b2b543ee75b73ddce6c23fd9b65a5.webp?x-image-process=image/format,png)
(截图上打不出数学符号,就是 ,依次类推)
可以看到上面各个式子的作用过程
输出门
![16484271-68bf0087579e34e1.png](https://i-blog.csdnimg.cn/blog_migrate/95fac250d3e058b3bfc4eb94827ebdbc.webp?x-image-process=image/format,png)
输出门的门结构形成与前面是一样的,不同的还是在于参数。输出门作用的是控制输出信息。通过输出函数: 来进行控制。就是我们当前单元得到的信息。其中即包含了对输入信息的选择,也包含了之前信息的选择。(参考)
则对输出信息再次进行“门”选择。我们可以得到真正的输出信息。
总结
结合自己一部分认知,以及常宝宝老师今天课上讲的内容,总结了下。