卷积神经网络

本人学习卷积神经网络主要是在图像这一方面,其实网上关于这方面的博客已经非常多了,我一般些博客主要就是为了整理一下自己的思路,一些具体推导都是转载别人的博客。我觉得要理解一个新的东西,首先要对这个东西的整体框架有个把握,然后在对内部的一些细节进行较为仔细的推导,这样的学习过程比较高效。

一般地,CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。

卷积层

卷积神经网络的这些卷积层,其实就是来对图像提取相应的特征的。

局部感知

因为一张图片有较多的像素,若使用像BP神经网络的全连接,那么神经元和权值个数数量太多,为了加快速度,我们使用局部连接。

一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。因而,每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。

参数共享

其实这个很容易理解,首先对于上面一步的局部感知,相当于每个神经元只对一张图片中的一小块进行处理,我们就可以把它看成对图片的那一部分进行卷积计算。那么既然我们在这个位置上可以使用这个卷积核进行操作提取局部特征(也就是对局部进行感知),那么在图片剩下的部分我们同样可以使用相同的卷积核进行卷积计算,这样一来,其实我们在一个卷积层中,有一部分的神经元的权值系数是相同的,这也就是参数共享,目的和局部感知是一样的,减少权值参数。

更直观一些,当从一个大尺寸图像中随机选取一小块,比如说 8×8 作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个 8×8 样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,我们可以用从 8×8 样本中所学习到的特征跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。

多核卷积

但是这样一来,我们只提取了一个模式的特征,显然是不充分的,所以我们可以添加多个卷积核进行特征提取。
使用n个不同的卷积核之后,就会生成n幅图像,可以把它们看作是一张图片的不同通道。

现在假设有第k层,有4个通道,接下来使用两个卷积核(2*2),那么在第k+1层,就会生成两个通道的图像。我们先对这四个通道使用第一个卷积核 w1 (其中这个卷积核是三维的,比如2×2×4)进行操作,四个通道上每个通道对应的卷积核是不同的,那么在第k+1层第一通道(i,j)处的值,是由四个通道上(i,j)处的卷积结果相加然后再取激活函数值得到的。当然第二个卷积核 w2 的计算方法也是一样的。
这个过程中参数的个数是 4222 ,其中4表示4个通道,第一个2表示生成2个通道,最后的2×2表示卷积核大小。

hkij=tanh((Wkx)ij+bk)

下采样Down-pooling

通过卷积得到特征以后,我们希望用这些特征去分类,也就是用所有提取到的特征去训练分类器,但是若直接这样做计算量就太大了,训练的时候非常不方便,还容易出现过拟合的现象。

池化pooling,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)。这些概要统计特征不仅具有低得多的维度 (相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化 (pooling),有时也称为平均池化或者最大池化 (取决于计算池化的方法)。

多层卷积

在实际应用中,往往使用多层卷积,然后再使用全连接层进行训练,多层卷积的目的是一层卷积学到的特征往往是局部的,层数越高,学到的特征就越全局化。


我们在训练过程中其实就是计算上面的这些卷积核。

分类器

通过卷积神经网络我们得到了相应的特征之后,就可以训练分类器进行分类了

若细节不懂可以参考一下文章,写的不错
http://blog.csdn.net/stdcoutzyx/article/details/41596663


注意点
1. 并行结构分为数据并行与模型并行。数据并行是指在不同的GPU上,模型结构相同,但将训练数据进行切分,分别训练得到不同的模型,然后再将模型进行融合。而模型并行则是,将若干层的模型参数进行切分,不同的GPU上使用相同的数据进行训练,得到的结果直接连接作为下一层的输入。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值