一文读懂卷积神经网络(CNN)

卷积神经网络—起源
1981年,Hubel和Wiesel对猫的视觉皮层细胞研究表明:哺乳动物对外界的视觉感知信息采用了局部感知策略,为此Hubel和Wiesel获得了诺贝尔生物理和医学奖。
视觉的全局感知会导致记忆分散和模糊。局部感知则会增强记忆。那么在神经网络构建,局部连接就会减少权重,降低训练难度。全局感知和局部感知的结构示意图如下:
一文读懂卷积神经网络(CNN)

受生物视觉感知的启发,Yann LeCun改进了卷积神经网络,并在手写数字体识别中取得霸主地位。并在1998年LeCun提出LeNet-5模型,卷积神经网络的雏形完成。
卷积神经网络—四剑客
卷积神经网络结构如下:
一文读懂卷积神经网络(CNN)
卷积神经网络主要有卷积层、**函数、池化层、全连接层,俗称卷积神经网络的‘四剑客’。
----卷积层-----
- 与上一层进行局部连接;
- 局部连接的权值叫做卷积核;
卷积核计算示意图:
一文读懂卷积神经网络(CNN)
- 权值共享,相当于卷积核对输入的空间图片进行一块一块扫描。卷积核相当于滤镜的作用对图片进行处理,并能保存原始的图片的特征,轮廓等。
一文读懂卷积神经网络(CNN)
比如通过卷积计算进行边缘检测,这里是6*6的像素,当像素非常大时,检测出的边缘就会比较细,并且根据不同权重的卷积核检测出不同形状的边缘,然后进行拼接。
一文读懂卷积神经网络(CNN)
- 多卷积核相当于从不同角度对图片进行特征提取,得到不同的特征平面。

-----**函数------
**函数的作用非常多,这里简单列几种:
- 归一化处理,一般**函数将卷积得到的值归一化0-1之间。
- **函数一般是非线性的,通过非线性**函数处理,可以拟合更多各种形状的函数。不仅限于线性函数。
- 卷积神经网络一般不用Sigmoid函数,用relu函数保证值为正(并且在卷积过程通过设定偏差b=1,保留更多的特征),另外relu**函数具有收敛快的特点。

-----池化层-----
- 特征降维,避免过拟合;
通过卷积处理的图片会含有非常多的特征,所以需要通过池化层需要对特征进行降维处理,池化层也叫下采样过程。
- 空间不变性;
池化层能在图片空间变化(旋转、压缩、平移)而特征不变,比如一张小狗的照片,像素清晰的时候会很清晰,对其压缩后虽然变小了,但是仍然可以看出是一只狗,并且主要的特征都没变。
- 减少参数,降低训练难度。

池化处理一般有最大池化,平均池化。
最大池化顾名思意就是在池化空间范围内取最大,平均池化顾名思意就是在池化空间范围内取加权平均。
一文读懂卷积神经网络(CNN)
池化事实上是特殊的卷积处理操作,池化层的池化核参数是固定的。比如2*2池化,最大池化的池化核位置为1,其他为0,平均池化的池化核的四个位置的权重分别为0.25。

-----全连接层-----
很多人很好奇为什么卷积神经网络要用全连接层。其实全连接层在卷积神经网络也是起着非常重要的作用。全连接层是特征到分类的映射层。
一般至少会用两层全连接层:
- 一层用来将所有的特征进行组合,比如将卷积池化得到的多个组合成猫的毛发,另外多个组合成猫的耳朵等等;
- 一层用来将这些组合好的特征进行分类,判断是猫还是狗等。

一文读懂卷积神经网络(CNN)

总结:
卷积神经网络主要应用了视觉感知中的局部感知原理来进行提取特征,增强记忆能力,达到特征的功能,并用池化处理进行特征降维特征采样,最后用全连接层对特征进行重组并分类。在深度神经网络里面,特征提取工程、表征学习的过程不再手工提取或者单独处理,而是将其嵌入在神经网络里面进行监督学习。所以卷积处理、池化处理相当于表征学习的过程。
一文读懂卷积神经网络(CNN)
那么卷积神经网络中的卷积池化处理有哪些应用呢?
我们都知道卷积神经网络在视觉领域发挥了绝佳的优势,尤其是现在的人脸识别,图片分类、无人驾驶等。计算机视觉比赛ImageNet每年一次的进行,出现了很多经典基于卷积神经网络的模型结构,将卷积神经网络推向了高潮。事实上,只要是网格结构,包括时空图片、时空信号中,均可以用卷积池化处理,所以卷积神经网络被经常用于视频处理、运动分析、信号处理,语音识别、自然语言处理等应用中。