卷积神经网络通俗理解

卷积神经网络通俗理解卷积神经网络通俗理解如下:
卷积神经网络(CNN)-结构
① CNN结构一般包含这几个层:
输入层:用于数据的输入
卷积层:使用卷积核进行特征提取和特征映射
激励层:由于卷积也是一种线性运算 , 因此需要增加非线性映射
池化层:进行下采样 , 对特征图稀疏处理 , 减少数据运算量 。
全连接层:通常在CNN的尾部进行重新拟合 , 减少特征信息的损失
输出层:用于输出结果
② 中间还可以使用一些其他的功能层:
归一化层(Batch Normalization):在CNN中对特征的归一化
切分层:对某些(图片)数据的进行分区域的单独学习
融合层:对独立进行特征学习的分支进行融合
请点击输入图片描述
卷积神经网络(CNN)-输入层
① CNN的输入层的输入格式保留了图片本身的结构 。
② 对于黑白的 28×28的图片 , CNN 的输入是一个 28×28 的二维神经元 。
③ 对于 RGB 格式的 28×28 图片 , CNN 的输入则是一个3×28×28 的三维神经元(RGB中的每一个颜色通道都有一个 28×28 的矩阵)

2)卷积神经网络(CNN)-卷积层
感受视野
① 在卷积层中有几个重要的概念:
local receptive fields(感受视野)
shared weights(共享权值)
② 假设输入的是一个 28×28 的的二维神经元 , 我们定义 5×5 的 一个 local receptive fields(感受视野) , 即 隐藏层的神经元与输入层的 5×5 个神经元相连 , 这个 5*5 的区域就称之为 Local Receptive Fields , 


卷积神经网络的 卷积层、激活层、池化层、全连接层 数据输入的是一张图片(输入层) , CONV表示卷积层 , RELU表示激励层 , POOL表示池化层 , Fc表示全连接层
全连接神经网络需要非常多的计算资源才能支撑它来做反向传播和前向传播 , 所以说全连接神经网络可以存储非常多的参数 , 如果你给它的样本如果没有达到它的量级的时候 , 它可以轻轻松松把你给他的样本全部都记下来 , 这会出现过拟合的情况 。
所以我们应该把神经元和神经元之间的连接的权重个数降下来 , 但是降下来我们又不能保证它有较强的学习能力 , 所以这是一个纠结的地方 , 所以有一个方法就是 局部连接+权值共享  , 局部连接+权值共享不仅权重参数降下来了 , 而且学习能力并没有实质的降低 , 除此之外还有其它的好处 , 下来看一下 , 下面的这几张图片:

一个图像的不同表示方式
这几张图片描述的都是一个东西 , 但是有的大有的小 , 有的靠左边 , 有的靠右边 , 有的位置不同 , 但是我们构建的网络识别这些东西的时候应该是同一结果 。为了能够达到这个目的 , 我们可以让图片的不同位置具有相同的权重(权值共享) , 也就是上面所有的图片 , 我们只需要在训练集中放一张 , 我们的神经网络就可以识别出上面所有的 , 这也是 权值共享 的好处 。
而卷积神经网络就是局部连接+权值共享的神经网络 。
现在我们对卷积神经网络有一个初步认识了 , 下面具体来讲解一下卷积神经网络 , 卷积神经网络依旧是层级结构 , 但层的功能和形式做了改变 , 卷积神经网络常用来处理图片数据 , 比如识别一辆汽车:
在图片输出到神经网络之前 , 常常先进行图像处理 , 有 三种 常见的图像的处理方式:
均值化和归一化
去相关和白化
图片有一个性质叫做局部关联性质 , 一个图片的像素点影响最大的是它周边的像素点 , 而距离这个像素点比较远的像素点二者之间关系不大 。这个性质意味着每一个神经元我们不用处理全局的图片了(和上一层全连接) , 我们的每一个神经元只需要和上一层局部连接 , 相当于每一个神经元扫描一小区域 , 然后许多神经元(这些神经元权值共享)合起来就相当于扫描了全局 , 这样就构成一个特征图 , n个特征图就提取了这个图片的n维特征 , 每个特征图是由很多神经元来完成的 。
在卷积神经网络中 , 我们先选择一个局部区域(filter) , 用这个局部区域(filter)去扫描整张图片 。局部区域所圈起来的所有节点会被连接到下一层的 一个节点上。我们拿灰度图(只有一维)来举例: