近期完成李宏毅机器学习第十讲卷积神经网络(CNN)内容的系统学习,结合此前回归、误差分析、梯度下降等基础理论,完整打通了传统全连接网络存在的缺陷与卷积网络优化思路。本次学习围绕CNN核心四大特性、网络层结构、对比全连接网络的优势、经典网络思路展开,让我理解图像任务专属模型的设计逻辑,也完善了从基础机器学习到计算机视觉模型的知识体系。

一、传统全连接神经网络的固有缺陷

在接触卷积神经网络前,课程先剖析了普通全连接网络处理图像任务时的短板,这也是CNN诞生的核心动因。

1. 参数量爆炸问题
一张常规彩色图片尺寸稍大时,像素展开后会形成海量一维输入向量,全连接层每一个输入像素都要和隐藏层全部神经元建立权重连接,模型参数规模急剧膨胀。大量参数不仅会大幅提升硬件计算负担,还极易引发过拟合,泛化能力严重下降。

2. 丢失图像空间关联信息
全连接网络会直接把二维图像平铺为一维数组,完全割裂像素间的位置关系。图像识别依赖局部特征、相邻像素的组合规律,比如边缘、纹理、五官位置,平铺操作让模型无法感知空间结构,识别效率与精度都很低。

3. 无特征复用机制
对于图像中重复出现的同类局部特征(如图片里多处相同线条),全连接网络需要单独学习每一处特征对应的权重,不存在参数共享,学习效率极低。

我认识到:CNN所有设计逻辑,都是针对性解决全连接网络处理图像的上述痛点。

二、卷积神经网络四大核心特性

李宏毅老师结合图像实例,拆解CNN区别于全连接网络的四大核心设计思想,也是卷积层的底层逻辑:

1. 局部感受野
模型不再让单个神经元接收整张图片所有像素,仅聚焦一小块局部区域提取特征。视觉识别本身依靠局部细节组合成整体,局部感受野贴合人眼视觉机制,大幅削减单次运算的参数量。

2. 参数共享(权重共享)
同一个卷积核(滤波器)在整张图像滑动过程中,全程使用同一套权重。只要是图像里相同的基础特征,无论出现在左上角还是右下角,都用同一组参数检测,极大压缩模型参数量,同时实现特征通用提取。

3. 平移等变性
依托参数共享特性,若图像中目标物体发生小幅平移,卷积核依然能检测到该特征,输出的特征图会同步平移,模型不会因为物体位置偏移就无法识别,大幅提升图像识别鲁棒性。

4. 下采样(池化操作)
通过池化层压缩特征图尺寸,舍弃冗余细节信息,进一步减少计算量,同时赋予模型轻微缩放不变性,物体大小小幅变化时依旧可识别。

三、CNN基础网络层完整流程与作用

课程完整梳理图像输入CNN的标准前向传播流程,逐层拆解各层功能:

1. 卷积层(Convolution Layer)

核心特征提取模块,使用固定尺寸卷积核在图像特征图上按设定步长滑动,对应位置像素相乘求和,生成新特征图。浅层卷积核负责捕捉基础特征:边缘、明暗、纹理;深层卷积核可组合基础特征,识别轮廓、部件(眼睛、车轮等)。可通过Padding填充像素,保证卷积后特征图尺寸不变。

2. 激活层

卷积输出为线性运算结果,叠加ReLU等激活函数引入非线性。若无激活函数,多层卷积堆叠等价于单层线性变换,无法学习复杂图像特征,非线性激活是模型拟合复杂视觉规律的关键。

3. 池化层(Pooling Layer)

分为最大池化、平均池化两类。最大池化取窗口内最大像素值,保留最显著特征;平均池化取窗口均值,柔和保留整体信息。池化压缩特征图长宽,降低计算开销,同时过滤无关噪声。

4. 全连接层

经过多轮卷积+池化提取深层抽象特征后,将二维特征图展平为一维向量,接入全连接层,最终输出分类/预测结果,衔接损失函数完成误差计算。

四、经典网络思路与训练逻辑

1. 网络堆叠逻辑
浅层卷积提取基础视觉特征,深层卷积融合局部特征形成高级语义特征,越靠后的网络层对完整目标物体具备识别能力,层级越深特征抽象程度越高。

2. 训练与优化衔接前置知识
CNN训练依旧沿用此前学习的梯度下降与反向传播机制:前向传播计算图像预测结果,通过损失函数计算预测与真实标签误差;反向传播从输出层逐层回传梯度,更新卷积核、全连接层所有权重参数。小批量梯度下降依旧是训练主流方案,配合合适学习率避免震荡或收敛过慢。

3. 正则化缓解过拟合
CNN虽依靠参数共享天然抑制过拟合,课程仍补充配套优化手段:Dropout随机丢弃神经元、数据增强(翻转、裁剪、色彩扰动扩充图像数据集),进一步提升模型泛化能力。

五、学习收获与后续规划

通过卷积神经网络章节的学习,我搭建起完整递进的知识链条:回归基础建模→误差与优化算法→CNN视觉专用模型,彻底明白为何图像任务必须使用卷积网络而非简单全连接网络。李宏毅老师结合可视化特征图演示卷积核提取过程,把抽象的二维卷积运算变得直观易懂,清晰展示出参数共享、池化等设计的实际效果。

本次学习也让我发现自身短板,仅掌握理论框架缺少实操落地。后续计划:

1. 巩固反向传播在卷积层的梯度推导逻辑,弄懂卷积核参数更新全过程;

2. 使用Python搭配PyTorch搭建简易CNN,完成手写数字图像分类实操;

3. 继续学习更深层经典卷积网络(LeNet、AlexNet),对比不同网络结构的优化创新;

4. 结合数据集尝试数据增强、动态调整学习率等调参技巧,将梯度下降、误差平衡等基础理论落地到视觉模型训练中。

更多推荐