DAY 41 从 MLP 到 CNN 的进化之路


Day 41 核心总结:从 MLP 到 CNN 的进化之路

今天的内容围绕"为什么需要 CNN "以及"如何搭建一个更强大的 CNN 分类器"展开,主要包含以下几个递进层次:

1. 痛点回顾:MLP 为什么不行?
  • MLP 将整张图片(如 CIFAR-10 的 3×32×32)直接展平成一维向量(3072 维)。
  • 这种操作彻底丢弃了空间结构,无法捕捉像素之间的局部关系(如边缘、纹理),导致特征提取能力弱,准确率天花板很低(约 50-55%)。
2. 解决思路:卷积神经网络(CNN)
  • 卷积层是特征提取器:通过可学习的卷积核在图像上滑动,提取局部空间特征(如边缘、角点)。
  • 池化层是特征压缩器:通过下采样缩小特征图尺寸,减少计算量,并增强特征的平移不变性。
  • CNN 天然具备局部感知 和权值共享两大优势,参数更少,效率更高,准确率显著提升(可达 70-80% 以上)。
3. 数据增强(Data Augmentation)

为了让模型学到更鲁棒的特征,在训练集 上应用多种随机变换,但不改变每批样本数量:

  • 几何变换:随机裁剪、翻转、旋转。
  • 像素变换:颜色抖动(亮度、对比度、饱和度、色调)。
  • 目的:扩大训练样本的多样性,有效减轻过拟合。
4. CNN 模型设计要点(以今日代码为例)
  • 结构:3 个卷积块 (Conv2d → BatchNorm → ReLU → MaxPool) + 展平 + 两个全连接层。
  • 通道数逐步增加:32 → 64 → 128,让网络能学习从简单到复杂的层次化特征。
  • 关键细节:
    • Batch Normalization:放在卷积后、激活前(代码中实际在 ReLU 前),用于稳定数据分布,加速收敛,允许更大学习率。
    • Dropout:放在全连接层之间,随机失活神经元,进一步防过拟合。
    • 输出层返回 logits (未经过 Softmax),直接与 CrossEntropyLoss 配合使用。
5. Batch Normalization 重点回顾
  • 解决的问题:内部协变量偏移------网络前层参数更新导致后层输入分布不断变化,训练困难。
  • 核心操作:对每个 mini-batch 的数据进行标准化(均值为 0,方差为 1),然后引入可学习的缩放(γ)和偏移(β)恢复表达能力。
  • 训练 vs 推理 :
    • 训练时:用当前 batch 的均值和方差。
    • 推理时:用训练过程中积累的全局滑动平均均值和方差。
  • 图像 vs 文本:图像任务常用 BatchNorm,文本任务(序列长度不一)常用 LayerNorm。
6. 特征图(Feature Map)与可解释性
  • 卷积层输出的多维数组就是特征图,它保留了空间维度。
  • 可以通过 Grad-CAM 等方法,可视化网络在做决策时最关注图像的哪些区域,提升模型的可解释性。
7. 学习率调度器(Scheduler)
  • 作用:在训练中动态调整基础学习率,帮助模型在初期快速收敛,后期精细寻优。
  • 今日使用的 ReduceLROnPlateau:监控验证损失,若连续 patience 个 epoch 不再下降,就将学习率乘以 factor(如 0.5)。
  • 与优化器的区别 :Adam 等优化器自适应地调整每参数更新步长 ,而调度器直接改变全局基础学习率。
8. MLP 与 CNN 对比总结(CIFAR-10)
对比项 MLP CNN
参数量 约 370 万(3072→1024→512→10) 约 10 万(3层卷积+全连接)
特征提取 全连接,无空间感知 局部连接 + 权值共享,保留空间结构
计算效率 低(参数爆炸,冗余计算) 高(卷积核复用)
典型准确率 50-55% 70-80%(简单 CNN)

一句话总结今天:我们抛弃了粗暴展平的 MLP,构建了一个带有数据增强、BatchNorm、Dropout 和学习率调度器的 CNN,用"局部感知+层次化特征提取"的思路,大幅提升了图像分类的准确率与泛化能力。

相关推荐
Solara2 分钟前
绿灯连亮 6 天、今天我真写了 4 KB:这盏灯从没看过我写的那一层
人工智能·程序员·ai编程
GlobalInfo5 分钟前
机器人线缆用无卤TPU料市场分析报告深度版:产业洞察、技术演进与路径
大数据·人工智能·机器人
加宝的起点雷达6 分钟前
跑了两周的信号日报,我把降级链改了四次
人工智能·后端
甲维斯6 分钟前
白嫖Tripo3D ?Kimi 3D Make可以玩起来!
人工智能·unity3d
甜到心里的蛋糕12 分钟前
从 QQ 机器人到 B 站 AI 运营:一套可复现的视频流水线踩坑实录
运维·人工智能·python·自动化·视频制作
TK泰妞13 分钟前
节日促销前,TikTok 商品视频应该提前准备什么?
前端·人工智能·节日
代立冬18 分钟前
927 个 PR:Apache SeaTunnel 3.0.0 正式发布!AI 时代,数据集成正在迎来新的可能
人工智能·apache
程序员清风20 分钟前
让 AI 编写与运行测试:从样例通过到回归验证
人工智能·数据挖掘·回归
qinglongcn26 分钟前
Agent 可能出什么事——五类异常与应对
人工智能·编辑器·ai编程
小易老师29 分钟前
用中间件把任务规划嵌入 Agent 循环:告别把计划写死在 Prompt 里
人工智能·agent