二、RNN训练过程

RNN和人工神经网络一样,也具有输入层、隐藏层和输出层,但不一样的是RNN的隐藏层和深度神经网络相似,具有多层隐藏层,每一层受当前时刻输入和前一时刻输出的影响。整个RNN网络结构如下:

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_卷积核

 



 代表t-1、t 和 t+1 时刻的输入,W表示输入的权重,U表示当前时刻输入 的权重,V表示输出的权重,他们都是权值共享,即每一个W的值都是一样的,U、V同理。

在t=1时,一般令s0=0,或者初始化一个值:

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_卷积核_02

 其中,f和g均为激活函数. 其中f可以是tanh,relu,sigmoid等激活函数,g通常是softmax也可以是其他。

后面的每一层随着时间传递:

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_人工神经网络隐藏层和隐藏神经元个数设置_03

权值更新:

采用BPTT算法进行反向更新,从输出误差E开始,往前面分别对W、U、V进行梯度更新,详细过程可参考博客


 

三、LSTM(长短时记忆网络)

长短时记忆网络在RNN的基础之上添加了长期依赖信息,主要是在每一个cell(即每一个时刻的输入单元)增添了三个门控----遗忘门输入门输出门。整个前向传递过程如下图所示:

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_激活函数_04

最左边的 

 是遗忘门,遗忘门用于选择需要记住多少信息

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_卷积核_05

是遗忘矩阵,由0-1组成,以此来决定保留多少当前时刻的状态,

含有前t-1个时刻的信息。中间代表输入门,其中的

 和

 分别是输入矩阵和状态矩阵

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_卷积_06

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_人工神经网络隐藏层和隐藏神经元个数设置_07

经过当前时刻单元的记忆状态信息

(有时也被叫作调制输入

)即为:

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_人工神经网络隐藏层和隐藏神经元个数设置_08

最右边的代表输出门

是输出矩阵

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_人工神经网络隐藏层和隐藏神经元个数设置_09

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_人工神经网络隐藏层和隐藏神经元个数设置_10

其中符号 

 表示按元素乘(对应位置元素相乘),

代表A,B的增广矩阵,

代表sigmoid激活函数。

好了,前向传递过程结束,过程简单易懂。参考博客:

https://zybuluo.com/hanbingtao/note/581764

四、CNN卷积神经网络

图像是由像素点构成,若采用全连接的方式会导致参数量巨大,消耗资源,且误差反向传播到每一个权重上误差会变的很小,调整参数时容易引起过拟合;再者图像本身具有二维局部特征,一张图片中并不是所有点都是我们需要的,即并不是所有像素值都是“特征”。所以,有了CNN卷积神经网络的出现,主要用于提取二维图像的局部特征,以此进行分类或者回归。

第一步:卷积操作,如下图

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_人工神经网络隐藏层和隐藏神经元个数设置_11

粉红色模块是

,深度为3的图像,蓝色模块是

深度为3的卷积核(filter)作为模板,从左上角进行滑动,对应位置元素相乘再相加作为新的像素值,设定步长stride为1,则最后得到一个

的像素矩阵。

上图中,一般使用多个卷积核对同一个图像进行卷积操作以提取多个特征

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_人工神经网络隐藏层和隐藏神经元个数设置_12

上图是使用6个卷积核对图像进行操作后的结果,得到

 的结果,卷积核的大小一致

,值不同。

上面的卷积操作算是一次卷积操作,不过中间那些地方存在激活函数后面进行总结的时候再说,一般情况下需要进行多次卷积操作以得到更加细节的特征

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_激活函数_13

上图使用

 的模板进行第二次卷积操作,卷积核数量为10个,最后得到一个

 的结果

第二步:池化操作pooling

池化操作,使用

 的max模板或者average模板,最后得到一个

 的池化结果

第三步:全连接

把上面的池化结果flat展平进行全连接,再进行softmax进行分类。

注意点:

1.每一次卷积操作后都需要进行激活函数激活,激活函数一般使用Relu

2.pooling池化操作后不需要再进行激活函数激活

3.全连接层之后要使用激活函数激活

4.参考图

人工神经网络隐藏层和隐藏神经元个数设置 人工神经网络的隐藏层_激活函数_14