卷积神经网络(二):卷积神经网络CNN的BP算法

该文档参考了:http://www.cnblogs.com/tornadomeet/p/3468450.html

在此表示感谢。

一般而言,多类别神经网络的输出一般采用softmax形式,即输出层的激活函数不采用sigmoid或者tanh函数。那么神经网络的最后一层的输出则为

下面看从pooling层到卷积层的误差如何反向传播,和多层神经网络一样,可以通过层与层间的连接实现误差传播,只是计算公式变为,

其中的系数根据pooling的方法赋值,如果是mean-pooling则把pooling层的误差平均到其4个输入上,如果是max-pooling则把误差全部反向传播到其输入上。

接下来看如何计算卷积层反向传播到pooling的误差,pooling层中的1个feature map与M个卷积层的feature map的相连接,那么该pooling层的误差项的计算公式如下,

上述公式中*号表示卷积操作,即将核函数K旋转180度后再与误差项做相关操作,然后再求和。

最后研究在求得各层的误差项后如何计算与卷积层相连接的核函数的偏导数,计算公式如下,

即将卷积层的误差项旋转180度后与其输入层做相关操作就可以得到核函数的偏导数。

而偏置项的偏导数则由误差项内所有元素相加得到。

时间: 2024-10-09 11:41:03

卷积神经网络(二):卷积神经网络CNN的BP算法的相关文章

卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解

由于计算机视觉的大红大紫,二维卷积的用处范围最广.因此本文首先介绍二维卷积,之后再介绍一维卷积与三维卷积的具体流程,并描述其各自的具体应用. 二维卷积 一维卷积 三维卷积 原文地址:https://www.cnblogs.com/szxspark/p/8445327.html

神经网络以及卷积神经网络(CNN)初始

1 人工神经网络 1.1 神经元 神经网络由大量的神经元相互连接而成.每个神经元接受线性组合的输入后,最开始只是简单的线性加权,后来给每个神经元加上了非线性的激活函数,从而进行非线性变换后输出.每两个神经元之间的连接代表加权值,称之为权重(weight).不同的权重和激活函数,则会导致神经网络不同的输出. 举个手写识别的例子,给定一个未知数字,让神经网络识别是什么数字.此时的神经网络的输入由一组被输入图像的像素所激活的输入神经元所定义.在通过非线性激活函数进行非线性变换后,神经元被激活然后被传递

第十二节,卷积神经网络(二)

一.三维卷积(Convolutions over Volumes) 前面已经讲解了对二维图像做卷积了,现在看看如何在三维立体上执行卷积. 我们从一个例子开始,假如说你不仅想检测灰度图像的特征,也想检测 RGB 彩色图像的特征.彩色图像如果是 6×6×3,这里的 3 指的是三个颜色通道,你可以把它想象成三个 6×6图像的堆叠.为了检测图像的边缘或者其他的特征,不是把它跟原来的 3×3 的过滤器做卷积,而是跟一个三维的过滤器,它的维度是 3×3×3,这样这个过滤器也有三层,对应红绿.蓝三个通道. 这

DeepLearning (六) 学习笔记整理:神经网络以及卷积神经网络

神经网络 神经网络模型 前向传播 反向传播 Neural Networds Tips and Tricks Gradient Check Regularization 激活函数 sigmoid 函数 Tanh Relu 稀疏编码 卷积神经网络 卷积 局部感知 权值共享 多通道卷积 卷积输出大小计算公式 池化pooling后的平移不变性 Dropout Learning rate AdaGrad python 实现 caffe 中的学习率 参考文献 [原创]Liu_LongPo 转载请注明出处[C

多层神经网络BP算法 原理及推导

首先什么是人工神经网络?简单来说就是将单个感知器作为一个神经网络节点,然后用此类节点组成一个层次网络结构,我们称此网络即为人工神经网络(本人自己的理解).当网络的层次大于等于3层(输入层+隐藏层(大于等于1)+输出层)时,我们称之为多层人工神经网络. 1.神经单元的选择 那么我们应该使用什么样的感知器来作为神经网络节点呢?在上一篇文章我们介绍过感知器算法,但是直接使用的话会存在以下问题: 1)感知器训练法则中的输出 由于sign函数时非连续函数,这使得它不可微,因而不能使用上面的梯度下降算法来最

AWS研究热点:BMXNet – 基于MXNet的开源二进神经网络实现

http://www.atyun.com/9625.html 最近提出的二进神经网络(BNN)可以通过应用逐位运算替代标准算术运算来大大减少存储器大小和存取率.通过显着提高运行时的效率并降低能耗,让最先进的深度学习模型也能在低功耗设备上使用.这种技术结合了对开发者友好的OpenCL(与VHDL或Verilog相比),同时也让FPGA成为深度学习的可行选择. 在这篇文章中,我们要介绍BMXNet,它是一种基于Apache MXNet的开源BNN(二进神经网络)库.成熟的BNN层可以很好地应用于其他

今天开始学Pattern Recognition and Machine Learning (PRML),章节5.2-5.3,Neural Networks神经网络训练(BP算法)

转载请注明出处:Bin的专栏,http://blog.csdn.net/xbinworld 这一篇是整个第五章的精华了,会重点介绍一下Neural Networks的训练方法--反向传播算法(backpropagation,BP),这个算法提出到现在近30年时间都没什么变化,可谓极其经典.也是deep learning的基石之一.还是老样子,下文基本是阅读笔记(句子翻译+自己理解),把书里的内容梳理一遍,也不为什么目的,记下来以后自己可以翻阅用. 5.2 Network Training 我们可

stanford coursera 机器学习编程作业 exercise4--使用BP算法训练神经网络以识别阿拉伯数字(0-9)

在这篇文章中,会实现一个BP(backpropagation)算法,并将之应用到手写的阿拉伯数字(0-9)的自动识别上. 训练数据集(training set)如下:一共有5000个训练实例(training instance),每个训练实例是一个400维特征的列向量(20*20 pixel image).用 X 矩阵表示整个训练集,则 X 是一个 5000*400 (5000行 400列)的矩阵 另外,还有一个5000*1的列向量 y ,用来标记训练数据集的结果.比如,第一个训练实例对应的输出

(转)神经网络和深度学习简史(第一部分):从感知机到BP算法

深度|神经网络和深度学习简史(第一部分):从感知机到BP算法 2016-01-23 机器之心 来自Andrey Kurenkov 作者:Andrey Kurenkov 机器之心编译出品 参与:chenxiaoqing.范娜Fiona.杨超.微胖.汪汪.赵巍 导读:这是<神经网络和深度学习简史>第一部分.这一部分,我们会介绍1958年感知机神经网络的诞生,70年代人工智能寒冬以及1986年BP算法让神经网络再度流行起来. 深度学习掀起海啸 如今,深度学习浪潮拍打计算机语言的海岸已有好几年,但是,