小白入门学习卷积神经网络

卷积神经网络产生的背景:
(1)卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。
卷积神经网络的特点
(1)局部相关性
相邻的像素结合起来表达一个特征,距离较远的像素影响较小
随着层数的增加,feature map里面的点映射到原图的感受野越来越大
不仅仅可以适用于图像,其它具有局部相关性的数据均可以尝试卷积网络处理带来一定的遮挡不变性
(2)参数共享
又称之为权值共享,更类似生物神经网络,减少了参数,降低了模型的复杂度,减弱了神经网络过拟合的可能性。这里的权值共享指的是每个映射面的权值参数共享,因而减少了网络*参数的个数,降低了网络参数选择的复杂度。卷积神经网络中的每一个特征提取层(C-层)都紧跟着一个用来求局部平均与二次提取的计算层(S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。
卷积神经网络区别于全连接神经网络最大的一个特点就是参数共享,不仅能够减少权值参数,减少了模型过拟合的风险,降低了模型的复杂度。而且这种模型具有空间相关性,即局部相关性,相对于之前全连接神经网络将图像视为一维向量处理,充分利用了图像的空间局部相关性利用卷积核去提取特征,然后再进行池化,增强模型的抗畸变和抗噪声性能。如下图所示,来说明卷积神经网络的参数共享,究竟意义有多么重大!
小白入门学习卷积神经网络
下图左:如果我们有1000x1000像素的图像,假设我们的隐层有1百万个神经元,那么他们全连接的话(每个隐层神经元都连接图像的每一个像素点),就有1000x1000x1000000=10的12次方个权值参数。然而图像的空间联系是局部的,就像人是通过一个局部的感受野去感受外界图像一样,每一个神经元都不需要对全局图像做感受,每个神经元只感受局部的图像区域,然后在更高层,将这些感受不同局部的神经元综合起来就可以得到全局的信息了。这样,我们就可以减少连接的数目,也就是减少神经网络需要训练的权值参数的个数了。如下图右:假如局部感受野是10x10(一个卷积核的大小),隐层每个感受野只需要和这10x10的局部图像相连接,所以1百万个隐层神经元就只有一亿个连接,即10^8个参数。比原来减少了四个0(数量级),这样训练起来就没那么费力了,但还是感觉很多的啊,那还有啥办法没?
接下来就是我们所讲的权值共享,卷积操作可以看做提取特征的一种方式,该方式与位置无关。意味着我们在这一部分学习的特征也能用在另一部分去学习,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。也就意味着卷积核的权值参数共享,它和图像中任意位置的像素连接时,权值都是相同的,不会随着位置发生改变。因此,现在的权值参数就变为了10 * 10 = 100。每个卷积核只能提取一种特征,例如某个卷积核负责提取水平边缘的特征。我们可以设定100个卷积核,最终的参数个数为100 * 100 = 1w。相对于之前的10的12次方,权值参数已经降低了很多。这样,就获得了某种程度的位移、尺度、形变不变性

(3)平移宽容
在任何位置都可以**神经元
(4)缩放宽容
一定程度内的图像缩放(通常认为25%以内)不会产生太大干扰
(5)真正成功训练多层网络结构的学习算法
在CNN中,图像的一小部分(局部感受区域)作为层级结构的最低层的输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据的最显著的特征。这个方法能够获取对平移、缩放和旋转不变的观测数据的显著特征,因为图像的局部感受区域允许神经元或者处理单元可以访问到最基础的特征,例如定向边缘或者角点。