卷积神经网络

卷积神经网络

注:

1.对二维图像的滤波操作可以写成卷积

    2.神经元的激活:我们要识别图像中的某种特定曲线,这个滤波器要对这种曲线有很的输出,对其他形状则输出很

3.在训练卷积审计网络的某一个卷积层时,实际上是在训练一系列的滤波器

4. 卷积神经网络的第一个卷积层的滤波器用来检测低阶特征,比如边、角、曲线等,随着卷积层的增加,对应滤波器检测的特征就更加复杂,第二个卷积层的输入实际上是第一层的输出,这一层的滤波器便是用来检测低价特征的组合等。最后一层的滤波器按照训练CNN目的的不同而不同分类或检测。

5. 构建卷积神经网络的任务就在于构建滤波器,改变滤波器矩阵的值,也就是权重

0.著名的卷积神经网络

卷积神经网络_第1张图片


卷积网络的发展

(0) Le Net (1)Alex Net (2) Network in Network

(3) VGG (4)Google Net (5) Res Net (6) Fractl Net

卷积神经网络_第2张图片

1.基础知识

1. 神经认知机包含两类神经元,即承担特征提取的采样元抗变形的卷积元,采样元中涉及两个重要参数,即感受野阈值参数,前者确定输入连接的数目,后者则控制对特征子模

的反应程度。

2. CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。

注:激活函数=========================================

激活函数:激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。(有时候分类并不是线性可分的,因此加入非线性因素

Sigmoid函数

优点:1.Sigmoid函数的输出映射在(0,1)之间,单调连续,输出范围有限,优化稳定,可以用作输出层。2.求导容易。

缺点:1.由于其软饱和性,容易产生梯度消失,导致训练出现问题。

2.其输出并不是以0为中心的。

tanh函数

优点 1.比Sigmoid函数收敛速度更快。2.相比Sigmoid函数,其输出以0为中心

缺点还是没有改变Sigmoid函数的最大问题——由于饱和性产生的梯度消失。

ReLU函数

优点:1.相比起Sigmoid和tanh,ReLU在SGD中能够快速收敛。2.Sigmoid和tanh涉及了很多很expensive的操作(比如指数),ReLU可以更加简单的实现。3.有效缓解了梯度消失的问题。4.在没有无监督预训练的时候也能有较好的表现。5.提供了神经网络的稀疏表达能力。

缺点:随着训练的进行,可能会出现神经元死亡,权重无法更新的情况。如果发生这种情况,那么流经神经元的梯度从这一点开始将永远是0。也就是说,ReLU神经元在训练中不可逆地死亡了。==========================================================

3. 局部感知域(降低参数数目):图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱,每个神经元只需要对局部进行感知,在更高层将局部的信息综合起来就得到了全局的信息。

卷积神经网络_第3张图片

4.  参数共享(降低参数数目):每个神经元都对应100个参数,一共1000000个神经元,如果这1000000个神经元的100个参数都是相等的,那么参数数目就变为100了。

隐含原理:可以这100个参数(也就是卷积操作)看成是提取特征的方式,该方式与位置无关。图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。

5.多核卷积:只有100个参数时,表明只有1个100*100的卷积核,显然,特征提取是不充分的,我们可以添加多个卷积核,比如32个卷积核,可以学习32种特征。


卷积神经网络_第4张图片

注:上图右,不同颜色表明不同的卷积核。每个卷积核都会将图像生成为另一幅图像。比如两个卷积核就可以将生成两幅图像,这两幅图像可以看做是一张图像的不同的通道。

 

6. 下采样(down-pooling): 可以计算图像一个区域上的某个特定特征的平均值 (最大值)

卷积神经网络_第5张图片

 

2.   AlexNet 网络结构

该模型采用了2-GPU并行结构,即第1、2、4、5卷积层都是将模型参数分为2部分进行训练的。在这里,更进一步,并行结构分为数据并行与模型并行。数据并行是指在不同的GPU上,模型结构相同,但将训练数据进行切分,分别训练得到不同的模型,然后再将模型进行融合。而模型并行则是,将若干层的模型参数进行切分,不同的GPU上使用相卷积神经网络_第6张图片同的数据进行训练,得到的结果直接连接作为下一层的输入。

输入:224×224大小的图片,3通道

第一层卷积:5×5大小的卷积核96个,每个GPU上48个。

第一层max-pooling:2×2的核。

第二层卷积:3×3卷积核256个,每个GPU上128个。

第二层max-pooling:2×2的核。

第三层卷积:与上一层是全连接,3*3的卷积核384个。分到两个GPU上个192个。

第四层卷积:3×3的卷积核384个,两个GPU各192个。该层与上一层连接没有经过pooling层。

第五层卷积:3×3的卷积核256个,两个GPU上个128个。

第五层max-pooling:2×2的核。

第一层全连接:4096维,将第五层max-pooling的输出连接成为一个一维向量,作为该层的输入。

第二层全连接:4096维

SoftMax层:输出为1000,输出的每一维都是图片属于该类别的概率。



主要参考:

http://blog.csdn.net/zouxy09/article/details/9993371/

http://blog.csdn.net/xbinworld/article/details/45619685

http://blog.csdn.net/u013832707/article/details/64905530


你可能感兴趣的:(CNN;)