卷积神经网络的推导过程

目录

前言

一、基本流程

二、推导

1、初始化

 2、正向计算(Forward)

3、反向传播(Backpropagation)

4、更新

结论

前言

本此周报主要是对CNN的基本流程进行手动推导学习,进一步理解卷积网络的运行过程。同时温习整个卷积神经网络的运作机制。

一、基本流程

在卷积神经网中的输入x,通常是以矩阵进行输入,在下图中的输入矩阵,横数是“很好看呢!”这几个的个数,列数是词向量的维度,0.3、0.1、0.1,在词向量空间中就代表好字。在第一层卷积运算层中有3种fitter,而每种fitter有3个。在convolve之后,每一个fitter都会有一个卷积结果。之后经过激活层(activation),通过映射到高维度来解决分类以及其它问题。在卷积层之间周期性的引进池化 层(pooling),在减少训练参数数量的同时,防止过拟合的发生并从每一个fitter里面选出最大值,最后通过dropout层和输出层,将卷积后的结果输出来。

卷积神经网络的推导过程_第1张图片

本质:神经网络中一层层的卷积本质上就是大量的卷积核在发挥不同的作用。

二、推导

1、初始化

首先convolve4×3的输入和2×3的background fitter,之后将得到的3×1的结果放进激活层中,在这个推导例子中,采用ReLu作为激活函数,经过激活函数的结果进行max pooling,进一步降低维度,得到一个1×1的结果,再将这个结果放入softmax layer进行多分类或者将某个值转化为激活概率。

卷积神经网络的推导过程_第2张图片

 此次优化的参数一共有8个,一个是background fitter上的6个参数以及线性层参数w1、w2。初始化如图所示。

卷积神经网络的推导过程_第3张图片

 2、正向计算(Forward)

4×3的输入卷积后得到的3×1的结果中,以1.6举例,0.4×1+0.7×1+0×1+0.3×1+0.1×1+0.1×1=1.6。同理1.4和2.5也是这么计算出来的。之后经过ReLu函数,大于0的时候是本身,小于0的时候是0。经过maxpooling留下最大的2.5这个node作为softmax的输入,最后得出概率分布。

卷积神经网络的推导过程_第4张图片

3、反向传播(Backpropagation)

反向传播即先从后面开始算,首先算loss对O1求导,即预测概率减去实际标签,再loss对O2求导。

卷积神经网络的推导过程_第5张图片

之后是算loss对W1求导,采用链式法则展开后,转换为对O1求导×O1对W1求导,同理对O2进行求导。

卷积神经网络的推导过程_第6张图片

第三步算loss对Z求导。

卷积神经网络的推导过程_第7张图片

接下来算maxpooling的梯度。

卷积神经网络的推导过程_第8张图片

再算loss对S的梯度

卷积神经网络的推导过程_第9张图片

 最后一步是算卷积层的导数。在向量比较少的时候,可以通过向量展开计算。在CNN中算fitter的梯度可以被转化成一个反过来的卷积运算。

卷积神经网络的推导过程_第10张图片

4、更新

最后进行更新两个w参数和6个u参数,学习率为1。此时便完成了一轮的参数更新

卷积神经网络的推导过程_第11张图片

结论

对于卷积神经网络的推导过程有了一个大致的了解,下周计划对卷积的代码进行学习和复现,争取将卷积这部分从理论和实际方面都掌握好,以及对卷积神经网络中的激活函数再次进行学习。

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