卷积神经网络是一种分层的数据表示模型,通常由数据输入层、卷积层、池化层、 非线性激活函数、全连接层以及输出结果预测层等组成,其中卷积层、池化层和非线 性激活函数是卷积神经网络中的重要组成部分。此外,有些模型会增加其他的层(归一 化层等)以满足系统特定功能需求。卷积网络以各个单层为基础,按照一定的规律,一 层一层堆叠,卷积神经网络就可以逼近各种复杂函数的空间分布。
- 卷积层
滤波器(也称为卷 积核),滤波器的数量越多,卷积神经网络的深度越深。卷积 层的设计和参数设置,对于卷积神经网络的性能具有重大影响。
卷积核多大,输出就多大。
2.非线性激活函数
设计卷积神经网络时,以激活函数作为卷积层下一步的运算,可以兼顾计算的 简单性和网络的灵活性。卷积层计算是所有前一层输入的线性组合,这里的激活函数 则是计算所有输入值与非线性激活函数的乘积,这样的安排能够降低网络的运算复杂 度,兼容非线性组合运算。
要激活函数中包含充分的梯度信息,以便于能从输入的数据中 捕获更多的信息。
常用的激活函数是 Sigmoid 函 数、ReLU(Rectified Linear Unit,ReLU)函数以SiLU(Sigmoid Linear Unit, SiLU) 函数等,这些函数有更好的光滑性,被广泛应用于卷积神经网络。
3.池化层
池化层的工作原理是定 义多个池化核进行池化运算,池化核的主要参数也包含池化核大小等。
最大池化突出局部区域中最重要的信息,而平均池化 更关注于局部区域的平均效果。
4.卷积神经网络的训练
卷积神经网络工作流程,可分为训练阶段和预测阶段两个阶段。卷积神经网络的 工作流程可分为训练阶段和预测阶段。以图像分类为例,在预测阶段,网络通过卷积 层、激活函数、池化层等操作对数据进行前向计算,从而获取不同的特征图,如相对 简单的纹理特征和更加丰富、抽象的语义信息,最后整合这些特征信息,并执行推理 以获取结果;在训练阶段,利用反向传播算法、损失函数、优化算法,使网络有效学 习图像相关特征及相应映射关系。网络的训练和预测阶段涉及不同的操作和方法,但 都是卷积神经网络的重要组成部分。
5.反向传播算法
误差反向传播算法(Backpropagation,BP)是训练人工神经网络最主要的方法。
6.损失函数
常见的损失函数有均方误差损失函数、交叉熵损失函数和基于 IOU(Intersection over Union, IOU)的系列损失函数,网络中为更新损失函数(Loss Function)的相关参数, 需要进行偏导计算,通过计算损失函数得到损失值,该值将衡量预测值与真实值之间 的差距。
7.优化算法
常见的优化算法有 SGD 算法[48]、Momentum 算法[49]以及 Nesterov 算法等,梯度下 降法是深度学习模型最常用的优化算法。
8.基于卷积神经网络的目标检测
目标检测是一种应用广泛的计算机视觉技术,能够对图片、视频中的目标进行分 类和定位,基于卷积神经网络的目标检测算法主要分为 Two-stage 和 One-stage 两种类 型。 Two-stage 算法会先生成一些候选框,再对每个候选框进行分类和定位优化。虽然 它们的准确率通常较高,但需要更多时间和计算资源。而 One-stage 算法则能在特征解码时,一并生成目标所属的种类和区域信息,在执行速度上更具优势,近年来已不断 优化,在检测精度比肩甚至超过了 Two-stage 算法。常见的 Two-stage 算法有 RCNN 系 列,如 R-CNN、Fast-RCNN、Faster-RCN等;常见的 One-stage算法有 YOLO系 列,如 YOLOv1~v8 和 YOLOX 等
9.基于卷积神经网络的图像分割
采用卷积神经网络进行特征提取,使用反卷积层进行特征恢复,从而实现对图像深层语 义的理解和精确的像素级别分割。其中,三种常见的语义分割模型包括:FCN、UNet 和 DeepLab。