是什么
卷积神经网络(CNN)也是一种网络结构的数学模型,擅长于于图像处理,并且默认的输入是图像。
其特点有:
能够有效提取图像特征——卷积操作
能够将大数量级的图像降维为小数量级——池化操作
原理
结构
卷积神经网络的结构为:输入层(Input)、卷积层(Conv)、池化层(Pool)、全连接层(FC)、输出层(Output)
![img](https://pic1.zhimg.com/v2-f91e88cee5b0d44012a67da8853a8aa2_1440w.jpg#pic_center?%20source=172ae18b)
输入层通常为图片。
卷积层对图片进行特征提取。
池化层对数据进行降维。
全连接层就是隐藏层。
输入层、隐藏层、输出层是神经网络的通用结构。
FC到Output的过程同神经网络的隐藏层和输出层——通过对数据进行权重矩阵相乘(还有偏移量的相加)最后经由输出层最终计算得出结果。
什么是卷积层
卷积层是卷积核对原图像进行卷积操作的一层结构。
卷积操作:设定一个卷积核(矩阵),然后对原图像的像素矩阵进行运算。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2c84bc7246590e89b31dd54fa1d96f32.png#pic_center)
在这里,卷积核(也叫过滤器filter) 被设置为3*3的矩阵,将filter与原图像的像素点进行相乘,这里选择与蓝色区域进行相乘,但是相乘的操作不是一般的矩阵相乘形式,而是向量的形式来进行,所得结果如图所示。而左右边的方格中的-5是卷积核对输入图像左上角的3*3矩阵相乘的结果。
以上只是卷积操作中的一环
卷积操作的全过程如下图所示:(对一张图像的所有像素矩阵用卷积核进行遍历,然后输出结果,这里步长设置为1)
通过卷积层输出的结果有什么用?
卷积操作的目的是特征提取。
不同的卷积核,对图像的影响是不同的:
去噪:
![img](https://i-blog.csdnimg.cn/blog_migrate/f5d86f0407d2b56e2b1a352470a61d4c.png#pic_center)
这里我们使用的卷积核对图像进行卷积操作之后可以使得原图像更加的平滑。——这里就相当于对3*3矩阵的像素做一个平均值处理,将这个矩阵的颜色变为9个像素点(3*3矩阵)的均值μ,然后μ就为原像素图像那9个像素点的值。
挑出垂直边界或水平边界 :
![img](https://i-blog.csdnimg.cn/blog_migrate/c0367e62aa12f5b47a68748afd3ad6c2.png#pic_center)
为什么不同的卷积核可以做到不同的输出?
不同卷积操作就是对原图像进行不同特征的提取/输出。
具体什么样的卷积操作能对应什么样的特征提取一般是通过尝试所了解,也可以根据别人的经验来参考。
什么是池化层
池化操作:
![img](https://i-blog.csdnimg.cn/blog_migrate/0eb35492febd9faecc3edded78b42e94.png#pic_center)
具体作用:
![img](https://i-blog.csdnimg.cn/blog_migrate/4c2380ed816f1f6cf49d9dc9064bfb11.png#pic_center)
上图中,虽然写了三个卷积核,但是其实是一个卷积核的三个通道(RGB),这里要十分注意,
卷积核的个数和特征种类是一一对应的,而不是图片的通道数。
三个通道的的特征最后要汇总,还是归为一个特征。
通过卷积核来进行各个通道的特征提取,然后根据池化层进行最大池化操作获得的特征汇总——一定程度上减少了数据维度。
应用
参考资料
[1] CNN卷积神经网络(图解CNN)_WGS.的博客-CSDN博客_cnn卷积神经网络