深度学习:卷积神经网络(convolution neural network)

(一)卷积神经网络

卷积神经网络最早是由Lecun在1998年提出的。

卷积神经网络通畅使用的三个基本概念为:

1.局部视觉域;

2.权值共享;

3.池化操作。

在卷积神经网络中,局部接受域表明输入图像与隐藏神经元的连接方式。在图像处理操作中采用局部视觉域的原因是:图像中的像素并不是孤立存在的,每一个像素与它周围的像素都有着相互关联,而并不是与整幅图像的像素点相关,因此采用局部视觉接受域可以类似图像的此种特性。

另外,在图像数据中存在大量的冗余数据,因此在图像处理过程中需要对这些冗余数据进行处理。因此在卷积神经网络中,采用pooling的方法来对图像中的冗余数据进行处理,得到描述性更强的数据特性。pooling方法常用的有maxpooling和meanpooling两种方式。

权值共享:使用卷积核构建像素之间关联时,每一个隐含神经元在使用卷积核进行操作时的权重是共享的。在对图像进行卷积操作室,并不需要对每一个卷积核新建立参数,滑动过程中的卷积核参数都是共享的。这样就意味着第一层隐含神经元所检测到完全一样的特征,只不过是输入图像的不同位置。为了明白这个过程为什么有效果,我们假定给定的权重和偏移量学习到的特征为一个局部视觉域的垂直检测特征,那么这个特征是可以使用到其它应用中的。因此,我们一般把第一步通过隐藏神经元得到的数据叫做feature map。我们把这个过程中学习到的权重叫做shared weight,把该过程学习到的bias成为shared bias。而将shared weight同shared bias结合起来就是一个卷积核或者是滤波器(a filter or kernel)。而且在实际应用中,经常选取多个kernel,用于描述输入在不同kernel下学习到的特征。

在经过卷积层之后,学习到的特征类似于如下的特征:

这些特征的数量为20,那么对应的filter/kernel的数量也为20。在学习到的特征描述中,白色像素块表示权值小,特征图对输入像素的像素响应小,而黑色像素块的权值大,特征图对输入像素的响应大。每一个特征图为5*5,对应的5*5的权值。从这些特征图中可以发现,通过卷积操作真正的学到一些相关的空间结构,但是我们并不知道这些特征检测子学习到什么。

权值共享的好处就是该操作大大降低了网络参数的个数。

卷积神经网络层结构的理解:

卷积层

convolution层一般紧接着pooling层,pooling层的操作如下图所示:

我们可以认为max-pooling是一种在图像区域中寻找是否发现特征位置的操作。在发现图像特征位置后,可以丢弃特征的位置信息。

pooling层可以降低在接下来操作过程中的参数数量。但是max-pooling并不是唯一的pooling方法,L2方法也是一种常用pooling方式,L2pooling的思路是对局部区域中的像素值采用L2规则化计算。同时存在其他pooling方法,具体使用过程根据应用确定。

参考资料:

VGG Convolutional Neural Networks Practical

Deep learning

CS231n Convolutional Neural Networks for Visual Recognition

(二)深度学习基础知识总结

batchsize在深度学习算法中的作用:

  在SGD算法里面,梯度是minibatch的平均值。Batchsize越大,噪声梯度越小。而噪声是用来使得收敛值逃离局部最小值的扰动。这就是SGD算法比BGD(batch gradient descent)好的地方,minibatch大小选择并没有一个确定的规矩,这是根据网络和数据来决定的,而minibatch size的选择是通过不断尝试获取最优size。Batchsize越小,更新值的噪声也就越大。因此,降低batchsize时需要降低lr值,通过更多的迭代次数来获取更好训练效果。(原帖链接

  在使用caffe训练的过程中,需要考虑到夏卡的显存问题,因此在调整训练参数时,修改validation.prototxt中的batch_size值同样可以降低对显存的需求。在caffe中base_lr和batch_size是相关联的,理论上当时用X降低batchsize时(128->64),需要对base_lr应该乘以sqrt(x)。应该修改的值为stepsize和max_iter,batchsize除以x,那么这两个值应该乘以x,同时应该注意网络的loss,如果在 10k-20k 迭代之后loss > 6.9 (which is basically random guessing),那么网络在迭代过程中并没有学习到东西。(原帖链接1,原帖链接2

时间: 2024-07-31 14:30:33

深度学习:卷积神经网络(convolution neural network)的相关文章

Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1

3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 Spark MLlib Deep Learning工具箱,是根据现有深度学习教程<UFLDL教程>中的算法,在SparkMLlib中的实现.具体Spark MLlib Deep Learning(深度学习)目录结构: 第一章Neural Net(NN) 1.源码 2.源码解析 3.实例 第二章D

Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.2

3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.2 http://blog.csdn.net/sunbow0 第三章Convolution Neural Network (卷积神经网络) 2基础及源码解析 2.1 Convolution Neural Network卷积神经网络基础知识 1)基础知识: 自行google,百度,基础方面的非常多,随便看看就可以,只是很多没有把细节说得清楚和明白: 能把细节说清

Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.3

3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.3 http://blog.csdn.net/sunbow0 第三章Convolution Neural Network (卷积神经网络) 3实例 3.1 测试数据 按照上例数据,或者新建图片识别数据. 3.2 CNN实例 //2 测试数据 Logger.getRootLogger.setLevel(Level.WARN) valdata_path="/use

《卷积神经网络的Python实现》PDF代码+《解析深度学习卷积神经网络原理与视觉实践》PDF分析

CNN正在革新几个应用领域,如视觉识别系统.自动驾驶汽车.医学发现.创新电子商务等.需要在专业项目或个人方案中利用复杂的图像和视频数据集来实现先进.有效和高效的CNN模型. 深度卷积网络DCNN是目前十分流行的深度神经网络架构,它的构造清晰直观,效果引人入胜,在图像.视频.语音.语言领域都有广泛应用. 深度学习,特别是深度卷积神经网络是人工智能的重要分支领域,卷积神经网络技术也被广泛应用于各种现实场景,在许多问题上都取得了超越人类智能的结果. <卷积神经网络的Python实现>作为深度学习领域

深度学习——卷积神经网络 的经典网络(LeNet-5、AlexNet、ZFNet、VGG-16、GoogLeNet、ResNet)

一.CNN卷积神经网络的经典网络综述 下面图片参照博客:http://blog.csdn.net/cyh_24/article/details/51440344 二.LeNet-5网络 输入尺寸:32*32 卷积层:2个 降采样层(池化层):2个 全连接层:2个 输出层:1个.10个类别(数字0-9的概率) LeNet-5网络是针对灰度图进行训练的,输入图像大小为32*32*1,不包含输入层的情况下共有7层,每层都包含可训练参数(连接权重).注:每个层有多个Feature Map,每个Featu

深度学习卷积神经网络大事件一览

深度学习(DeepLearning)尤其是卷积神经网络(CNN)作为近几年来模式识别中的研究重点,受到人们越来越多的关注,相关的参考文献也是层出不穷,连续几年都占据了CVPR的半壁江山,但是万变不离其宗,那些在深度学习发展过程中起到至关重要的推动作用的经典文献依然值得回味,这里依据时间线索,对CNN发展过程中出现的一些经典文献稍作总结,方便大家在研究CNN时追本溯源,在汲取最新成果的同时不忘经典. 首先这里给出CNN在发展过程中的一些具有里程碑意义的事件和文献: 对于CNN最早可以追溯到1986

深度学习笔记(一)卷积神经网络(Convolutional Neural Networks)

一.卷积 卷积神经网络(Convolutional Neural Networks)是一种在空间上共享参数的神经网络.使用数层卷积,而不是数层的矩阵相乘.在图像的处理过程中,每一张图片都可以看成一张"薄饼",其中包括了图片的高度.宽度和深度(即颜色,用RGB表示). 在不改变权重的情况下,把这个上方具有k个输出的小神经网络对应的小块滑遍整个图像,可以得到一个宽度.高度不同,而且深度也不同的新图像. 卷积时有很多种填充图像的方法,以下主要介绍两种,一种是相同填充,一种是有效填充. 如图中

深度学习——人工神经网络再掀研究热潮

深度学习——人工神经网络再掀研究热潮 胡晓林 人工神经网络起源于上世纪40年代,到今天已经70年历史了.就像人的一生,经历了起起落落,有过辉煌,有过黯淡,有过嘈杂,有过冷清.总体说来,过去的20年中人工神经网络的研究不温不火,直到最近三五年,随着深度学习概念的提出,人工神经网络才又重新焕发生机,甚至再度掀起研究热潮.本文简述一下人工神经网络的“前世今生”,并简单展望一下它的未来. 第一个神经元模型是1943年McCulloch和Pitts提出的,称为threshold logic,它可以实现一些

深度学习_1_神经网络_1

神经网络 感知机 解决分类问题 http://playground.tensorflow.org 神经网络 定义: ? 在机器学习领域和认知科学领域,人工神经网络(artificial neural network) 简称ann或类神经网络,一种放生物 神经网络的结构和功能的计算模型,用于对函数进行估计或近似. 种类: ? 基础神经网络:单层感受器,线性神经网络,BP神经网络,Hopfield神经网络 ? 进阶神经网络:玻尔兹曼机,受限玻尔兹曼机,递归神经网络 ? 深度神经网络:深度置信网络,卷

深度学习之神经网络与支持向量机

深度学习之神经网络与支持向量机 引言:神经网络(Neural Network)与支持向量机(Support Vector Machines,SVM)是统计学习的代表方法.可以认为神经网络与支持向量机都源自于感知机(Perceptron).感知机是1958年由Rosenblatt发明的线性分类模型.感知机对线性分类有效,但现实中的分类问题通常是非线性的. 神经网络与支持向量机(包含核方法)都是非线性分类模型.1986年,Rummelhart与McClelland发明了神经网络的学习算法Back P