卷积神经网络 Convolutional Neural Networks(CNN)一、什么是卷积首先回顾一下,数字图像处理中我们用卷积模板和原始图像的像素卷积。过程如下:Step 1、先将模板旋转180 度(又称折叠)Step 2、然后让模板依次和原始图像重叠,并且计算重叠部分的数值乘积之和以 2D 为例先对模板 K 做折叠,然后依次覆盖图像I,并且计算重叠部分的数值乘积之和依次进行到最后,会多出一圈,得到最后的卷积结果卷积的意义(图像处理而言);对图像使用不同的卷积模板,对图像做不同的处理。比如平滑模板可以使图像模糊,并且可以减少噪声、锐化模板可以使图像的轮廓变得清晰。二、卷积网络的结构2.1 从 BP 网络到卷积网络回想一下 BP 神经网络。 BP 网络每一层节点是一个线性的一维排列状态,层与层的网络节点之间是全连接的。这样设想一下,如果BP 网络中层与层之间的节点连接不再是全连接,而是局部连接的。这样,就是一种最简单的一维卷积网络。如果我们把上述这个思路扩展到二维,这就是我们在大多数参考资料上看到的卷积神经网络。具体参看下图:图 1:全连接的2D 网络( BP 网络)图 2:局部连接的2D 网络(卷积网络)现在我们考虑单隐层结构,上图左:全连接网络。如果我们有1000x1000 像素的图像,有1 百万个隐层神经元,每个隐层神经元都连接图像的每一个像素点,就有 1000x1000x1000000=10^12 个连接, 也就是 10^12 个权值参数。上图右:局部连接网络,每一个节点与上层节点同位置附近10x10 的窗口相连接,则1 百万个隐层神经元就只有100w 乘以 100,即 10^8 个参数。其权值连接个数比原来减少了四个数量级。因此,卷积网络降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。2.2 卷积网络的结构卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。卷积神经网络中的每一个特征提取层(C-层)都紧跟着一个用来求局部平均与二次提取的下采样层(S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。图 3 经典的卷积神经网络结构图原始图像的大小决定了输入向量的尺寸,隐层由C-层(特征提取层)和S-层(下采样层)组成,每层均包含多个平面。 C1 层神经元提取图像的局部特征,因此每个神经元都与前一层的...