卷积神经网络基础与深度学习视觉应用学习笔记1. 为什么需要卷积神经网络传统全连接网络在处理图像时存在参数量过大、计算慢、难收敛和容易过拟合等问题。 例如一张1000 × 1000的图像如果直接连接到一个包含1M个节点的隐藏层参数量将达到$$1000 \times 1000 \times 10^6 10^{12}$$这显然难以训练。卷积神经网络 CNN 的核心思想是局部连接 参数共享 层次化特征提取也就是说每个神经元只关注局部区域并且不同位置共享同一个卷积核从而大幅减少参数量。课件中也提到全连接网络连接权过多容易造成计算慢、难收敛和过拟合问题因此需要局部连接结构。2. 二维卷积对于二维输入图像 X 和卷积核 K卷积输出 Y 中某个位置的值可以表示为$$Y(i,j)\sum_{u0}^{p-1}\sum_{v0}^{q-1}X(iu,jv)K(u,v)$$其中X输入图像或输入特征图K卷积核p,q卷积核的高和宽Y(i,j)输出特征图中第 (i,j) 个位置的值。可以简单理解为卷积 局部区域与卷积核逐元素相乘后求和卷积层的作用是从图像中提取边缘、纹理、形状等局部特征。3. 输出尺寸计算假设输入特征图大小为$$H \times W$$卷积核大小为$$K_h \times K_w$$填充为 P步长为 S则输出特征图尺寸为$$H_{out}\left\lfloor \frac{H2P-K_h}{S} \right\rfloor 1$$其中符号含义H,W输入高度和宽度K_h,K_w卷积核高度和宽度Ppadding 填充大小Sstride 步长H_{out},W_{out}输出特征图尺寸4. Padding 与 Stride4.1 PaddingPadding指在输入图像边界补充像素常见做法是补 0。作用保留边缘信息控制输出尺寸避免特征图尺寸过快变小。如果希望卷积前后尺寸不变常用$$P\frac{K-1}{2}$$例如 3 \times 3 卷积核通常使用$$P1$$4.2 StrideStride是卷积核每次滑动的距离。stride 1每次移动 1 个像素 stride 2每次移动 2 个像素步长越大输出特征图越小计算量也越低。课件中对 Padding 和 Stride 都有单独图示说明。5. 多通道卷积对于 RGB 图像输入通常是三通道$$X \in \mathbb{R}^{H \times W \times C}$$其中 C3。多通道卷积的计算方式是每个输入通道分别与对应的卷积核进行卷积然后求和$$Y(i,j)\sum_{c1}^{C}\sum_{u0}^{p-1}\sum_{v0}^{q-1}X_c(iu,jv)K_c(u,v)$$如果有 M 个卷积核就会得到 M 个输出通道$$Y \in \mathbb{R}^{H_{out} \times W_{out} \times M}$$简单理解一个卷积核生成一个输出通道 多个卷积核生成多个输出通道。课件中以 RGB 图像为例说明了多通道卷积。6. 池化 Pooling池化层用于压缩特征图常见方式有最大池化 Max Pooling平均池化 Average Pooling。最大池化公式$$Y(i,j)\max_{(u,v)\in R} X(iu,jv)$$平均池化公式$$Y(i,j)\frac{1}{|R|}\sum_{(u,v)\in R}X(iu,jv)$$其中 R 是池化窗口区域。池化的作用降低特征图尺寸减少计算量缓解过拟合增强局部平移不变性。课件中将池化解释为使用局部统计特征如最大值或均值来解决特征过多的问题。7. CNN 基本结构典型 CNN 结构如下输入图像 ↓ 卷积层 Conv ↓ 激活函数 ReLU ↓ 池化层 Pooling ↓ 卷积层 Conv ↓ 池化层 Pooling ↓ 全连接层 FC ↓ 分类输出其中卷积层负责提取局部特征激活函数增强非线性表达能力池化层压缩特征全连接层完成最终分类。ReLU 激活函数为$$f(x)\max(0,x)$$Softmax 分类函数为$$p_i\frac{e^{z_i}}{\sum_{j1}^{K}e^{z_j}}$$其中 p_i 表示样本属于第 i 类的概率。8. 图像分类损失函数多分类任务中常用交叉熵损失$$L-\sum_{i1}^{K}y_i\log(p_i)$$其中K类别数y_i真实标签的 one-hot 编码p_i模型预测为第 i 类的概率。如果真实类别是第 c 类则交叉熵可以简化为$$L-\log(p_c)$$含义是模型给真实类别的概率越高损失越小 模型给真实类别的概率越低损失越大。9. 常见视觉数据集9.1 MNISTMNIST 是手写数字识别数据集包含 0 到 9 共 10 类数字图片。 训练集 60000 张测试集 10000 张每张图像大小为$$28 \times 28$$灰度图。9.2 Fashion-MNISTFashion-MNIST 是替代 MNIST 的图像数据集包含 10 类商品图片共 70000 张。 训练/测试划分与 MNIST 一致$$60000 / 10000$$图像大小同样为$$28 \times 28$$9.3 CIFAR-10CIFAR-10 包含 10 类彩色图像共 60000 张$$50000 \text{ 张训练图像} 10000 \text{ 张测试图像}$$每张图片大小为$$32 \times 32 \times 3$$其中 3 表示 RGB 三通道。9.4 PASCAL VOCPASCAL VOC 常用于目标分类、目标检测和语义分割任务。 常用版本是 VOC 2012共包含 20 个目标类别。9.5 MS COCOMS COCO 面向复杂日常场景理解包含分类、检测、分割、语义标注等任务。 课件中提到MS COCO 提供 80 类标注超过 33 万张图片其中约 20 万张有标注实例数量超过 150 万。10. 目标检测与 YOLO目标检测不仅要判断图像中有什么还要判断目标在哪里。模型通常需要输出类别 class 置信度 confidence 边界框 bounding box边界框通常表示为$$B(x,y,w,h)$$其中x,y边界框中心点坐标w,h边界框宽度和高度。YOLO 的核心思想是将目标检测看作一个整体回归问题直接从图像预测类别和边界框。课件中将 YOLO 部分分为基本思想、损失函数设计以及分类问题与目标检测的区别。11. IoU 指标目标检测中常用 IoU 衡量预测框和真实框的重叠程度$$IoU\frac{Area(B_{pred}\cap B_{gt})}{Area(B_{pred}\cup B_{gt})}$$其中B_{pred}预测框B_{gt}真实框分子是交集面积分母是并集面积。IoU 越大说明预测框与真实框越接近。常见判断方式IoU 0.5通常认为检测正确 IoU 越接近 1定位越准确12. 精确率、召回率与 mAP目标检测任务中常用 Precision 和 Recall$$Precision\frac{TP}{TPFP}$$其中符号含义TP正确检测出的目标FP错误检测出的目标FN漏检的目标Average Precision简称 AP表示某一类别 Precision-Recall 曲线下的面积$$AP\int_0^1 P(R)dR$$mAP 是多个类别 AP 的平均值$$mAP\frac{1}{N}\sum_{i1}^{N}AP_i$$其中 N 是类别数。13. 语义分割与 FCN语义分割要求对图像中每个像素进行分类。分类任务输出一个类别image → class语义分割任务输出每个像素的类别image → pixel-level class map设输入图像为$$X \in \mathbb{R}^{H \times W \times C}$$语义分割输出为$$Y \in \mathbb{R}^{H \times W}$$每个位置 Y(i,j) 表示像素 (i,j) 的类别。FCN全卷积网络将传统 CNN 中的全连接层替换为卷积层使网络能够输出空间结构化预测结果。课件中提到FCN 是语义分割的经典方法DeepLab v3 是目前广泛使用的语义分割方法。14. 总结卷积神经网络通过卷积、池化和多层特征组合将图像从低级像素表示逐步转换为高级语义特征。核心知识点全连接网络处理图像时参数量过大CNN 通过局部连接和参数共享降低复杂度卷积操作用于提取局部特征Padding 控制边界与输出尺寸Stride 控制卷积核移动步长Pooling 用于降维和增强平移不变性YOLO 是典型实时目标检测方法IoU、Precision、Recall、mAP 是目标检测常用评价指标FCN 将全连接层替换为卷积层用于语义分割。一句话总结CNN 是深度学习视觉任务的基础结构目标检测关注“是什么”和“在哪里”语义分割进一步关注“每个像素属于什么类别”。