当下,计算机视觉在人工智能领域中扮演着至关重要的角色。而卷积神经网络(Convolutional Neural Network,CNN)则是计算机视觉任务中最为常用且高效的模型之一。本文将介绍CNN的基本原理、架构和一些经典网络模型。并且解释上面这幅图。
1. 什么是卷积神经网络:
卷积神经网络 = 神经网络 + 其他层次
看到了吗,上图中只有绿色的部分是全连接神经网络,其余都是CNN加入的其他层次
2. 应用领域:
主要应用与计算机视觉领域(视频等于一张张图片)(一般用gpu(图像处理单元)比CPU快几百倍)
- 检测任务
- 分类与检索
- 超分辨率重构
- 人脸识别
3. 架构:
我们正式开始介绍CNN的架构,包括四个部分:
- 输入层
输入图像(h×w×c)
- 卷积层(CONV)
新概念:
卷积核(filter W)(权重参数矩阵)
过程:
通道的每个像素点(起初是 图像颜色通道:RGB(R channel,G channel,B channel))与每个卷积核维度卷积(与卷积核内积)后得到一个特征值
对每个颜色通道都要做卷积(这三个卷积核可以不一样),算完之后这三个通道结果加起来再加上偏置b,得到一个特征图(可以用多个卷积核卷积得到多个特征图)
总结就是:卷积核把箱子拍扁成一个一维度的更小的纸(等于 内积之和+偏置)
- 池化层(POOL)(压缩、下采样)
池化方法:
最大池化(MAX POOLING):提取最大值代替
不改特征图个数c,只缩减高h和宽w
- 全连接层(FC)
全连接开始前 卷积、激活函数(非线性变换 激活函数 RELU)、池化 循环使用,把最后结果拉成一条特征向量
后交给全连接层
全连接层结构在这里就不多赘述了
4. 卷积层的参数和名词
参数:
- 边缘填充(pad):在最外层添加一圈数字(一般是0,因为0×任何数字都是0,防止干扰数据)从而防止对边缘的计算过少
- 卷积核个数:有多少个则得到多少个特征值
- 步长(S):卷积核移动的步长
卷积结果计算公式:
如果输入数据是32*32*3的图像,用10个5*5*3的filter来进行卷积操作指定步长为1,边界填充为2,最终输入的规模为?
(32-5+22)/1+1=32,所以输出规模为3232*10经过卷积操作后也可以保持特征图长度、宽度不变。
名词:
感受野:卷积后的一个像素点是由原来多少个像素计算得到的(比如上图的感受野就是3*3)
5. 注意:
带参数计算的(有w和b的、要根据设定更新东西的)层叫做一层,只有卷积层和全连接层被叫做层
堆叠小的卷积核比用一个大的卷积核需要的参数少(可以自己计算)
6. 经典网络:
在计算机视觉领域,有几个经典的CNN模型:
AlexNet:是2012年ImageNet竞赛的冠军,它引入了深度学习在计算机视觉中的重要性,并采用了多层卷积和全连接层的架构。
VGG:由牛津大学的研究团队提出,其特点是网络结构非常深,使用了连续的小卷积核进行卷积操作,参数量较大。
ResNet:引入了残差连接的思想,解决了深层网络训练中的梯度消失和梯度爆炸问题,使得网络可以更深。