CNN卷积神经网络--反向传播(2,前向传播)

原创 2016年08月30日 11:35:51

看cnn,首先还是看看前向传播,在细谈反向求导。


    CNN的这三个特点是其对输入数据在空间(主要针对图像数据)上和时间(主要针对时间序列数据,参考TDNN)上的扭曲有很强的鲁棒性。CNN一般采用卷积层与采样层交替设置,即一层卷积层接一层采样层,采样层后接一层卷积...这样卷积层提取出特征,再进行组合形成更抽象的特征,最后形成对图片对象的描述特征,CNN后面还可以跟全连接层,全连接层跟BP一样。下面是一个卷积神经网络的示例

图1

  卷积神经网络的基本思想是这样,但具体实现有多重版本,我参考了matlab的Deep Learning的工具箱DeepLearnToolbox,这里实现的CNN与其他最大的差别是采样层没有权重和偏置,仅仅只对卷积层进行一个采样过程,这个工具箱的测试数据集是MINIST,每张图像是28*28大小,它实现的是下面这样一个CNN:

图2

INPUT -> [[CONV -> RELU]*N -> POOL?]*M -> [FC -> RELU]*K -> FC


前向传输计算

  前向计算时,输入层、卷积层、采样层、输出层的计算方式不相同。

  输入层:输入层没有输入值,只有一个输出向量,这个向量的大小就是图片的大小,即一个28*28矩阵;

 卷积层:卷积层的输入要么来源于输入层,要么来源于采样层,如上图红色部分。卷积层的每一个map都有一个大小相同的卷积核,Toolbox里面是5*5的卷积核。下面是一个示例,为了简单起见,卷积核大小为2*2,上一层的特征map大小为4*4,用这个卷积在图片上滚一遍,得到一个一个(4-2+1)*(4-2+1)=3*3的特征map,卷积核每次移动一步,因此。在Toolbox的实现中,卷积层的一个map与上层的所有map都关联,如上图的S2和C3,即C3共有6*12个卷积核,卷积层的每一个特征map是不同的卷积核在前一层所有map上作卷积并将对应元素累加后加一个偏置,再求sigmod得到的。还有需要注意的是,卷积层的map个数是在网络初始化指定的,而卷积层的map的大小是由卷积核和上一层输入map的大小决定的,假设上一层的map大小是n*n、卷积核的大小是k*k,则该层的map大小是(n-k+1)*(n-k+1),比如上图的24*24的map大小24=(28-5+1)。斯坦福的深度学习教程更加详细的介绍了卷积特征提取的计算过程。                                                                       

  图3

  采样层(subsampling,Pooling:采样层是对上一层map的一个采样处理,这里的采样方式是对上一层map的相邻小区域进行聚合统计,区域大小为scale*scale,有些实现是取小区域的最大值,而ToolBox里面的实现是采用2*2小区域的均值。注意,卷积的计算窗口是有重叠的,而采用的计算窗口没有重叠,ToolBox里面计算采样也是用卷积(conv2(A,K,'valid'))来实现的,卷积核是2*2,每个元素都是1/4,去掉计算得到的卷积结果中有重叠的部分,即:                                                                

    卷积神经网络大致组合经验公式INPUT -> [[CONV -> RELU]*N -> POOL?]*M -> [FC -> RELU]*K -> FC,在斯坦福cs231课程中,典型的一副图说明了次过程。



卷积神经网络(CNN)反向传播算法公式详细推导

在看本篇博文之前,你需要对卷积神经网络有一定的理解,并且能够自主推导出经典BP神经网络反向传播的相关公式。...

神经网络及卷积神经网络的训练——反向传播算法

神经网络的训练过程,就是通过已有的样本,求取使代价函数最小化时所对应的参数。代价函数测量的是模型对样本的预测值与其真实值之间的误差,最小化的求解一般使用梯度下降法(Gradient Decent)或其...
  • taigw
  • taigw
  • 2016年01月31日 00:02
  • 10611

CNN卷积神经网络--反向传播(3,初识卷积反向算法)

CNN反向传播求导时的具体过程可以参考论文Notes on Convolutional Neural Networks, Jake Bouvrie,该论文讲得很全面,比如它考虑了pooling层也...

卷积神经网络反向传播算法

神经网络的训练过程,就是通过已有的样本,求取使代价函数最小化时所对应的参数。代价函数测量的是模型对样本的预测值与其真实值之间的误差,最小化的求解一般使用梯度下降法(Gradient Decent)或其...

CNN卷积神经网络---反向传播(1,全链接bp算法)

全链接bp算法 这里作为自己对卷积神经网络反向传播算法的理解。首先还是从经典的全链接bp算法开始。 1、前向传播     所谓神经网络就是将许多个单一“神经元”联结在一起,这样,一个“神...

CNN卷积神经网络反向推导

前言:   CNN作为DL中最成功的模型之一,有必要对其更进一步研究它。虽然在前面的博文Stacked CNN简单介绍中有大概介绍过CNN的使用,不过那是有个前提的:CNN中的参数必须已提前学习好。...

卷积神经网络反向传播理论推导

本文首先简单介绍CNN的结构,并不作详细介绍,若需要了解推荐看CS231n课程笔记翻译:卷积神经网络笔记。本文只要讲解CNN的反向传播,CNN的反向传播,其实并不是大多所说的和全连接的BP类似,CNN...

卷积神经网络反向传播推导

以TensorFlow的卷积神经网络为例卷积-池-卷积-池-全连接-softmax 前向传导C1层:卷积神经网络的输入是28×28的矩阵AA,经过F1F_1个5×5的卷积核K1i(i=1,2,......

卷积神经网络反向推导算法

反向传导算法 假设我们有一个固定样本集 ,它包含  个样例。我们可以用批量梯度下降法来求解神经网络。具体来讲,对于单个样例 ,其代价函数为: 这是一个(二分之一的)方差代价函数。给定一个...

CNN卷积神经网络--反向传播(4,代码理解)

反向传输过程是CNN最复杂的地方,虽然从宏观上来看基本思想跟BP一样,都是通过最小化残差来调整权重和偏置,但CNN的网络结构并不像BP那样单一,对不同的结构处理方式不一样,而且因为权重共享,使得计算残...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CNN卷积神经网络--反向传播(2,前向传播)
举报原因:
原因补充:

(最多只允许输入30个字)