长短期记忆神经网络(LSTM)是一种特殊的循环神经网络(RNN)。
循环神经网络(RNN):是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络。
RNN在有序数据上进行学习,为记住数据,会像人一样产生对先前发生事件的记忆
RNN学习过程:
目标信息源经过长时间抵达最后时间点,会产生误差
反向传递时会将误差在每一步乘以自己的参数w。
w<1时,误差传递到初始时间时,会是一个接近0的数,对于初始时刻,误差相当于没有–梯度消失。
W>1时,误差传递到初始时间时,会是一个非常大数–梯度爆炸。
此上为RNN不能长期记忆的办法。
为此LSTM出现。
LSTM多出三个控制器:输入、输出、忘记。
LSTM多了一条全局控制记忆(主线)
原本RNN控制(分线)
输入:
如果数据非常重要,就会将内容写入主线进行分析
忘记:
如果原来的数据不想要,忘记控制会把原来的数据忘掉按比例替换成现在数据。
主线数据更新,依靠输入和忘记控制。
输出:
根据主线和分线数据,判断输出什么内容。
LSTM:
注意:
1.σ一般选择Sigmoid作为激励函数。
2.tanh函数因为收敛速度比sigmoid函数要快,所以作为生成候选记忆的函数。
3.LSTM的激励函数是可以根据自身需求而更改的。
4.一个训练好的LSTM模型,它的每一个门都有各自的(u,W,b)。
5.当输入的序列不存在有用信息时,遗忘门f的值就会接近1,那么输入门i的值接近0,这样过去有用的信息就会被保存;反之当输入的序列存在重要信息时,遗忘门f的值就会接近0,那么输入门i的值接近1,此时LSTM模型遗忘过去的记忆,记录重要记忆。
CNN(卷积神经网络)结构:
CONV(卷积层,进行卷积计算然后求和)
Relu(激励层,激励函数为Relu)
POOL(池化层)
FC(全连接层)
例子:
我们以识别一张照片是X还是O作为我们的识别目的:
在CNN模型中,会比较特征(两张图片的的各个局部)。
特征会捕捉图片中的共同要素,如下所示,所选出的三个矩阵被认为成最重要的特征。
卷积层(Convolution Layer)
卷积的目的是为了计算特征与图片局部的相符程度。
将每一个特征中矩阵的点与对应选中矩阵的点相乘,最后累加,除以矩阵里面数的个数,最终得到一个数字,放入新的矩阵中。如下图:
将这个特征矩阵沿着该图片每次滑动一格,最终得到的一个新的矩阵,如下图所示:
新的矩阵中的数字越接近1,则与对应位置的特征越接近。分别与三个特征进行卷积的结果如下所示:
Relu激励层
池化(Pooling)
一般我们用最大池化(寻找图像区域中的最大值)和平均池化(计算每个图像区域的平均值)。如图为最大池化:
对所有上一层得到的矩阵进行池化:
加大网络层数更好的降维:
全连接层(Fully connected layers)
得到降维后的矩阵,将其放入全连接层中。
参考:
https://www.bilibili.com/video/BV1o4411R7B1?p=2
https://mp.weixin.qq.com/s/G5hNwX7mnJK11Cyr7E5b_Q