从卷积神经网络到深度学习视觉应用
一、为什么需要卷积神经网络?
在图像任务中,如果直接使用全连接网络,会遇到一个非常明显的问题:参数量太大。
例如一张较大的图像,如果每个像素都和下一层每个神经元相连,那么权值数量会迅速膨胀。参数越多,计算越慢,模型越难收敛,也更容易过拟合。更重要的是,全连接网络没有充分利用图像的空间局部性。
图像中的信息往往是局部相关的。比如边缘、纹理、角点、局部轮廓等特征,通常只和附近像素有关,而不需要每个像素都和所有神经元建立连接。因此,卷积神经网络引入了局部连接和权值共享的思想。
局部连接让每个神经元只关注图像的一小块区域,权值共享则让同一个卷积核在整张图像上滑动,从而提取相同类型的特征。这样既减少了参数量,又保留了图像的空间结构。
这也是我认为卷积神经网络最重要的地方:它不是简单地“堆更多层”,而是针对图像数据的特点设计了一种更合适的网络结构。
二、卷积:从原始图像中提取特征
卷积层可以理解为特征提取器。卷积核在图像上滑动,与局部区域进行加权计算,得到新的特征图。不同卷积核可以学习不同特征,比如边缘、纹理、方向、形状等。
在早期层,卷积核可能提取比较低级的特征,例如边缘和颜色变化;随着网络加深,后面的卷积层可以组合前面的低级特征,逐渐形成更高级的语义特征,例如物体局部结构甚至整体类别信息。
卷积中还有几个重要概念:
填充 Padding:在图像边界补充像素,避免卷积后图像尺寸过快缩小,也可以更充分利用边缘信息。
步长 Stride:卷积核每次移动的距离。步长越大,输出特征图越小,计算量也会降低。
多通道卷积:彩色图像通常有RGB三个通道,卷积核也要对应多个通道一起计算。后续网络中的特征图也可能有多个通道,每个通道代表一种特征响应。
所以,卷积层的作用不是简单地压缩图像,而是在局部区域中寻找有意义的模式。
三、池化:降低特征维度,提高鲁棒性
池化层通常接在卷积层之后,用于下采样。常见方式包括最大池化和平均池化。
最大池化会取局部区域中的最大值,相当于保留最显著的特征;平均池化则取局部平均值,更关注整体统计信息。
池化的作用主要有三个:
第一,减少特征图尺寸,降低计算量。
第二,减少参数和过拟合风险。
第三,使模型对小范围平移、变形有一定鲁棒性。
例如图像中某个边缘或纹理稍微移动一点,池化后仍然可能保留相似的响应,这有助于模型稳定识别图像内容。
因此,典型卷积神经网络往往由“卷积层 + 激活函数 + 池化层”反复堆叠,再接全连接层完成分类或回归任务。
四、LeNet-5:卷积神经网络的经典开端
LeNet-5 是卷积神经网络发展史上的经典结构,常用于手写数字识别任务。它的基本思想是通过卷积层提取局部特征,通过池化层降低维度,最后用全连接层进行分类。
虽然今天的深度学习模型已经远比 LeNet-5 复杂,但它展示了CNN的基本范式:
输入图像 → 卷积提取特征 → 池化压缩特征 → 多层组合 → 分类输出。
从这个角度看,后来的 AlexNet、VGG、ResNet 等模型,本质上都是在这个思路上不断加深、改进和优化。比如更深的网络、更好的激活函数、更强的正则化方法、更高效的连接结构等。
五、PyTorch:深度学习从理论走向实践
PyTorch 是目前深度学习中非常常用的框架,它的核心包括 Tensor、Dataset、DataLoader 和计算图。
Tensor 可以理解为多维数组,是深度学习中数据和参数的基本表示形式。图像、标签、权重、梯度,最终都可以用张量表示。
Dataset 和 DataLoader 负责组织和读取数据。对于机器学习来说,数据读取并不是小问题,因为训练通常需要按批次加载样本、打乱顺序、进行预处理。
计算图则用于描述模型中的数学计算过程。通过计算图,框架可以自动完成梯度计算,这也是神经网络能够训练的基础。
从学习角度看,掌握PyTorch不仅是为了会写代码,更重要的是理解深度学习的基本流程:准备数据、定义模型、计算损失、反向传播、更新参数、评估效果。
六、计算机视觉中的典型任务
深度学习视觉应用并不只是“图像分类”这么简单。课件中提到的视觉任务可以分成几个层次:
图像分类:判断整张图像属于哪一类,例如识别一张图片是猫、狗还是汽车。
目标定位:不仅判断图像中有什么,还要给出目标的大致位置。
目标检测:识别图像中的多个目标,并用边界框标出每个目标的位置和类别。
语义分割:对图像中的每个像素进行分类,判断它属于道路、天空、行人、车辆还是其他类别。
实例分割:不仅区分类别,还要区分同一类别中的不同个体。
关键点检测:识别人脸、人体、动物等对象中的关键点位置。
这些任务从粗到细,逐渐从“看出图像是什么”发展到“理解图像中每个区域代表什么”。这也是计算机视觉从识别走向理解的重要过程。
七、目标检测与YOLO
目标检测是计算机视觉中非常重要的任务。相比图像分类,目标检测更复杂,因为它既要判断类别,又要预测目标位置。
YOLO 的全称是 You Only Look Once,它的核心思想是把目标检测看成一个统一的预测问题。模型只需要看一次图像,就同时输出目标类别和边界框位置。
这种思想非常适合实时检测任务,因为它将检测流程变得更加直接和高效。与传统方法相比,YOLO强调端到端预测,不再把候选区域生成、特征提取、分类回归分成多个复杂步骤。
目标检测中常见评价指标包括 IoU、Precision、Recall、AP 和 mAP。IoU衡量预测框和真实框的重叠程度,mAP则综合衡量不同类别上的检测性能。
从我的理解来看,目标检测任务的难点不只是“识别是什么”,还包括“在哪里”“有几个”“框得准不准”。这也是它比普通分类更接近真实场景应用的原因。
八、全卷积网络与语义分割
语义分割比目标检测更进一步。目标检测只需要画出矩形框,而语义分割需要对每个像素进行分类。
比如自动驾驶场景中,模型不仅要知道画面里有车和行人,还要知道哪些像素属于道路,哪些像素属于天空,哪些像素属于车辆或行人。这种像素级理解对无人驾驶、医学影像、遥感分析等场景非常重要。
全卷积网络的思想是用卷积层替代传统全连接层,使网络可以输出空间结构更完整的预测图。然后通过上采样等方法,把低分辨率特征图恢复到接近原图大小,从而得到像素级分类结果。
这说明卷积神经网络不仅能做分类,也可以作为通用视觉特征提取器,服务于检测、分割、定位等更复杂任务。
九、常用视觉数据集
MNIST 是手写数字数据集,常用于入门实验。
Fashion-MNIST 与 MNIST 格式类似,但内容换成了服饰商品图像,难度更高一些。
CIFAR-10 包含10类彩色图像,常用于图像分类实验。
PASCAL VOC 是目标分类、检测和分割领域的经典数据集。
MS COCO 包含更复杂的日常场景,覆盖目标检测、分割、语义标注等任务,是视觉领域非常重要的基准数据集。
ImageNet 则是大规模图像分类数据集,对深度学习视觉发展具有重要推动作用。
这些数据集的意义不只是提供训练样本,更重要的是提供了统一评价标准。只有在相同数据集和指标上比较,模型性能才有可比性。
十、CNN的本质是让网络更懂图像结构
全连接网络的问题在于,它对图像结构没有先验认识,只是把所有像素当成普通向量处理。而卷积神经网络通过局部连接、权值共享、池化和层级特征提取,把图像的空间结构融入了模型设计中。
所以CNN的成功并不是偶然的。它在结构上符合图像数据的特点,在训练上可以通过反向传播学习参数,在应用上又可以扩展到分类、检测、分割等多种视觉任务。
同样是学习数据中的规律,不同结构的网络会决定模型能否高效地表达这些规律。CNN之所以适合视觉任务,是因为它不是盲目增加参数,而是用更合理的方式提取图像特征。
最后可以把这部分课程浓缩成一句话:
卷积神经网络通过卷积提取局部特征,通过池化降低维度,通过多层结构形成高级语义表示,并最终支撑图像分类、目标检测和语义分割等视觉应用。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)