1 笨笨的孩子慢慢学stay hungry stay foolish 2 学习,思考,实践,改变

0%

卷积神经网络CNN

1 图像基础

1.1 位图与矢量图

位图称为点阵图像、像素图或栅格图像,是由称作像素(图片元素)的单个点组成。他的单位是像素。位图有个缺点是放大后看到边缘是有些模糊的,这就是因为像素点组成的缘故。

位图的参数有:

像素:像素大小决定图像大小。

深度:色彩位数,每个像素使用的信息位数越多,可用的颜色就越多

通道:通常把RGB三种颜色信息称为红通道、绿通道和蓝通道,相应的把透明度称为Alpha通道,alpha通道存储图片的明暗信息等

矢量图的图形元素(点和线段)称为对象,每个对象都是一个单独的个体,它具有大小、方向、轮廓、颜色和屏幕位置等属性。矢量图形软件就是用数学的方法来绘制矩形等基本形状,因此它放大后不会模糊。

1.2 图像特征

图像具有视觉特征,即颜色、纹理、形状等。还具有空间关系特征,即物体与物体之间的空间关系等等(目前的研究热点 目标检测 yolo网络等)。

目前的卷积网络就是基于位图的,基于像素值、深度、通道等数值进行的计算。

2 卷积核

2.1 卷积介绍

卷积核其实是一个小的方阵。训练过程中的参数。

卷积的意义?

卷积运算就是在数据矩阵上做滑动的内积(向量内积是向量模长×cos夹角)。他的直观意义就是卷积核和图像的相似程度(余弦距离),可以发现局部的特征在什么位置明显,输出的feature map则提现了图片局部与卷积核的相似程度。

20200225CNN_kernel

为什么做卷积?

可以减少参数数量,如果采用DNN全连接网络的方式,这样导致每一个像素点都有权重等参数,参数量太大了。另一方面,卷积可以提取图像特征,将图像局部看做是一个输入,卷积核看做是一个权重。

卷积可以提取哪些特征?

局部特征:卷积核提取。

整体特征:多个卷积核提取汇总可以提取整体特征。

2.2 常见卷积核

垂直、水平边缘检测核。

Laplacian 高反差检测核

eg: 发丝,高反差,加色之后,发丝更明显.

2.3 卷积过程

20200225CNN_process

假设输入图像为矩阵A,大小4×4,卷积核为3×3的下图。

卷积的过程(注意是做内积):

中间L-1层到L层的正向传播表达式(加上激活函数):

若最后一场将特征地图进行全连接输出为$y$ (概率输出) ,真实是 $\hat{y}$

根据链式求导得最后一层全连接的权重 $w$:

中间卷积核(主要是看哪些对 $\delta$ 误差有贡献,反向传播乘以其相应权重,与DNN的思想类似):

上式由于激活函数中间:

反向传播将 $\delta \times \Delta w_{i j}$ 将误差传递回来,即$\frac{\partial L}{\partial x_{i j}^{(l)}}$,代入上述公式就可以求出 $\Delta k_{p q}$。

其实将卷积核作为一个整体来看,这个传播过程就跟DNN很类似了。CNN里损失函数对临时变量的偏导数,和DNN的全连接不同的是这是一个矩阵:

损失函数对卷积核的偏导数实际上就是输入图像矩阵与误差矩阵的卷积:

(后续看reference1的详细介绍)

2.4 池化

池化可以压缩特征(压缩信息):有最大池化,平均池化,加权池化等。

20200225CNN_maxpool

池化层没有参数,没有激活函数,故池化的反向传播直接将$\delta$ 传回来即可。如果是平均池化,则粉色 6 反向到 1,1,5,6那里,这四个数的误差项就是 $\frac{\delta}{4}$ , 最大池化的话就是 6 的误差是 $\delta$。

3 对比

DNN CNN
参数多 使用卷积核,全局共享,参数较少
不适用与图片处理,没有考虑局部结构信息 卷积核存储图片特征,本例中不断检测一些边缘
DNN可能陷入局部最优 池化层也可以减小图片
卷积神经网络更独立于数据输入维度
保留了原始输入数据的信息 但CNN可能损失原始数据细节信息

4 典型的CNN结构

LeNet 商用级别的手写数字识别系统,邮政编码等。

AlexNet

VGGNet

Reference

1,https://zhuanlan.zhihu.com/p/41392664 CNN的反向传播