CNN基础知识(1)

卷积神经网络(CNN)是一种前馈神经网络,它的神经元可以响应一部分覆盖范围内的周围单元,因其特性被广泛用于模式识别。由于该网络避免了对图像的复杂预处理,可以直接输入原始图像,因而得到了更多的应用。

CNN的基础结构包括两层。
第一层为特征提取层,每个神经元的输入与前一层的局部接受域相连并提取该局部的特征。一旦该局部特征被提取后,它与其他特征间的位置关系也随之确定下来。
第二层为特征映射层。网络的每个计算层由多个特征映射而成,每个特征映射是一个平面,平面上的所有神经元的权值相等。
由于一个映射面上的神经元权值共享,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。

1. 图像识别

我们知道BP神经网络是一个多层的神经网络系统。在这样一个神经网络中,每层的神经节点都是共享前一层的所有输入项的,也即是全连接。训练也是一次一次进行迭代调整各个w的值。当输入项 的维度比较大时,训练的时间都是几何级数增长的,这就可能利用现在的计算资源就没办法训练了,这时可以用局部感知的知识。

1.1 设计卷积层

卷积神经网络最大的作用是降低参数数目。

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

例如:对一个2048x1536像素的图片处理过程中,本来需要建立一个3145728个输入项的多节点网络(每个节点也都是2048x1536个输入项),也就是2048x1536个神经元,每个神经元的输入又有参数2048x1536个。

但是做个局部处理后,就可以把节点的数目减少,同时也可以把节点的参数数量减少。这时可以设计一个节点,这个节点可以接收16x12,也就是192个参数,就是说完整的像素图中每16x12个像素点连接到一个神经元,每个神经元的接收范围都和左右上下的神经元各有一行是不同的。在这种情况下17x13个像素单位的图片需要2x2个16x12的神经元进行连接,以此类推,2048x1536个像素单位需要2033x1525=3100325个16x12的神经元来进行连接。

现在和BP神经网络进行对比,看一下参数减少了多少?
BP是3145728个输入项就有3145728个节点,每个节点需要3145728个权值,也就需要3145728x3145728=9895604649984个参数。而按照刚才的方法进行的话就有2033x1525=3100325个神经元,每个神经元连接16x12个参数,也就是2033x1525x16x12=595262400个参数就解决了,可以看到减少不止一点点,理论上训练速度至少提高了5个数量级。而这样的神经元层就是卷积层,而这16x12个参数被一个神经节点进行处理和特征提取的过程操作就叫卷积操作。

第二种功能:参数共享
在卷积层设计后虽然参数减少了很多,但是参数的数量级还是很大,这时的参数共享可以对参数的数量进一步减少。
在刚才的2033x1525=3100325个神经元,而如果每个神经元的192个参数都是相等的,那么实际上也就是训练192个参数就够了。
权值共享只是减少参训练复杂度的一种技巧,或者是方案之一,并非必要方案,是强行设置的一种权值方式。可以把这192个参数看成是特征提取的方式。该方式与图像捕捉的位置无关。解释为:视觉神经在捕捉外界的信号时是不加区分的,所有的神经元对于映射的信号(16x12)是一视同仁的(权值一样),不同的是映射的信号对象不同。

例如:当从一个大尺寸的图像中随机选取一小块,如16x12作为样本,并且从这个小样本学习到了一些特征,这时可以把学习到的特征作为探测器,应用到这个图像上的任何地方。可以从16x12的样本中学习到的特征(卷积核)与原本的大尺寸图像做卷积,从而从这个大尺寸的图像上的任何一位置获得一个不同特征的激活值。激活值越大越符和条件。

1.2 设计池化层

采样层也叫池化层,它的目的是将卷积层输出的特征提取值进行量化。
这种层的作用是继续对临近的输入点进行特征提取,算法设计也不固定,可以是求平均值,也可以是求最大值等,总之就是继续对前面输出的卷积层继续进行特征化。

1.3 完整网络设计

要对图片进行识别,卷积网络可以设计成如下所示:
这里写图片描述

卷积层C1:可以设计2033x1525=3100325个神经节点进行如前所示的连接方式。
采样层S1:可以采用不重叠的方式进行采样,设计使用输入参数为16x16的神经节点,需要128x128=16384个节点。
卷积层C2:这里再设计一层卷积层进行卷积处理,设计使用16x16的神经节点,需要113x113=12769个节点。
采样层S2:可以继续采用不重叠的方式进行采样处理,可以尝试采用8x8的输入点数量,那么需要15x15个神经元节点。
输出层O:最后采用全连接方式。所以这一层应该是15x15个节点,每个节点有15x15。即255个参数。

1.4 训练

一般来说,越复杂的图形图像训练需要的样本越多。

这里只是简单的读书笔记,后期再续。

参考:《白话大数据与机器学习》

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值