CNN卷积神经网络
时间:2023-11-13 03:07:02
图像卷积运算
图像的卷积运算是快速搜索图像矩阵与滤波器矩阵对应的相乘再求和运算
首先了解卷积运算
卷积运算
卷积运算是指从图像的左上角打开与模板大小相同的活动窗口。窗口图像与模板像元相对应,然后相乘,并用计算结果代替窗口中心的像元亮度值。然后,移动窗口向右移动一列,并进行相同的操作。等等,从左到右,从上到下,你可以得到一个新的图像。
AB的卷积通常表示:
A*B或convolution(A,B)
A图像矩阵:A=|X11 X12 X13|,F滤波器矩阵:F=|W11 W12|,卷积运算:
|X21 X22 X23| |W21 W22|
|X31 X32 X33|
A*F=|O11 O12|=|X11W11 X12W12 X21W21 X22W22 X12W11 X13W12 X22W21 X23W22|
|O21 O22||X21W11 X22W12 X31W21 X32W22 X22W11 X23W12 X32W21 X33W22|
矩阵M*N P*Q卷积运算后会得到一个(M-P 1)*(N-Q 1)的矩阵
值得注意的是,矩阵卷积运算不同于一般矩阵
矩阵相乘是
寻找垂直轮廓:
垂直轮廓过滤器|1 0 -1|,运行后,包含垂直轮廓的区域灰度值将非常高(亮)
|1 0 -1|
|1 0 -1|
寻找横向轮廓:
垂直轮廓过滤器|1 1 1|,含横向轮廓的区域运行后灰度值会很高(亮)
|0 0 0|
|-1 -1 -1|
卷积图片和轮廓滤波器,可以快速定位特定的轮廓特征
卷积神经网络的核心:寻找合适的轮廓过滤器
彩图的卷积运算
RGB图像卷积:是的 R/G/B三个通道分别要求卷积加
经过N个过滤器的卷积运算,红、绿、蓝三通道图片变成N个通道
图像池化
Pooling(又称欠采样或下采样),按照一定的规则处理图像矩阵,实现信息压缩和数据降维
功能:减少过拟合,提高模型的容错性
最大法池化(Max-pooling)
pooling_size:(x,y) /池化窗的大小,原图像矩阵M*N上选取为x*y的窗口
stride:(x,y) /窗户滑动步长,窗户水平滑动2,垂直滑动2
新矩阵是每个窗口的最大值
平均法池化(Avg-pooling)
pooling_size:(x,y) /池化窗的大小,原图像矩阵M*N上选取为x*y的窗口
stride:(x,y) /窗户滑动步长,窗户水平滑动2,垂直滑动2
新矩阵是每个窗口所有元素的平均值
若滑动步长为(X,Y)则
矩阵M*N P*Q卷积运算后会得到一个((M-P)/X 1)*((N-Q)/Y 1)的矩阵
卷积神经网络(CNN)
将卷积、池化(转化为全连接层作为输入层)Mlp、连接在一起,形成一个神经网络,可以有效地提取图像的重要信息
激活函数将在积累和池化之前增加,以筛选和保留重要信息
通常选用Relu函数:
f(x)=max(x,0) ///取输入数据和0里最大值
功能:使部分神经元为0,过滤噪声信息,防止过拟合,迭代快,易于解决
卷积神经网络的特点
1.参数共享:同一特征的过滤器可用于整个图片
2.稀疏连接:每个节点生成的特征图片只与原图片中的特定节点连接
图像填充
图像卷积的两个常见问题
1.边缘信息使用少,容易被忽视
2.图像杯压缩,信息丢失
通过在图像周围添加新的像素来利用边缘信息
经典CNN模型
LeNet-5(简单灰度图像)
流程
图像素矩阵->(卷积)->CONV1->(平均池化)->(卷积)->CONV2->(平均池化)->(卷积)->(转化为全连接层)->(激活函数)->(输入层)mlp->softmax 10 labels
图像:32X32,单通道
特点
1、filter均为5*5(stride=1)、池化为avg pool (pooling_size=2,stride=2)卷积和池化成对使用
2.随着网络越深,图像的高度和宽度在缩小,通道数量在增加
论文:
http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf
AlexNet(彩色RGB图像)
流程
图像素矩阵->(卷积)->CONV1->(最大池化)->(填充)->(卷积)->CONV2->(最大池化)->(卷积)->CONV3->(填充)->(卷积)->CONV4->(填充)->(卷积)->(最大池化)->(转化为全连接层)->(激活函数)->(输入层)mlp->softmax 1000
图像:227X227*3,3通道
特点:
1.引入图像填充,使用max pool
2.更复杂的结构可以提取更丰富的特征
3.适用于复杂的彩色图纸,可识别1000种类型
论文:https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
VGG-16(RGB)
流程:
图像素矩阵->{(卷积)->CONV}X2->(填充)->(最大池化)->{(卷积)->CONV}X2->(填充)->(最大池化){(卷积)->CONV}X3->(填充)->(最大池化)->{(卷积)->CONV}X3->(填充)->(最大池化)->{(卷积)->CONV}X3->(填充)->(最大池化)->(转化为全连接层)->(激活函数)->(输入层)mlp->softmax 1000
图像:224X224*3,3通道
特点:
1、filter均为3*3(stride=1)池化前使用图像填充padding(same convolution)
2、池化均为max pool,窗户尺寸均为2*2,步长都是2
3.多用.filter提取轮廓信息,进一步提高识别准确性
论文:
https://arxiv.org/pdf/1409.1556.pdf