当前位置: 首页 > news >正文

深度学习篇---LeNet-5

要理解 LeNet-5,我们可以先记住它的 “身份标签”:卷积神经网络(CNN)的 “开山鼻祖” 之一,1998 年由计算机科学家 Yann LeCun(杨立昆)提出,核心用途是解决 “手写数字识别” 问题(比如银行自动识别支票上的手写账号)。

它的设计思路特别像 “人类看数字”—— 先看整体轮廓,再聚焦细节,最后判断是什么数字。下面我们用 “三层视角” 拆解它:先讲核心原理,再一步步走流程,最后说它的意义,保证零基础也能懂。

一、先搞懂 2 个核心:为什么 LeNet-5 能 “看懂” 数字?

在 LeNet-5 之前,计算机识别数字靠 “暴力比对”(比如把输入的数字图片和模板逐像素对比),但只要数字写得歪一点、粗一点,就会认错。而 LeNet-5 靠两个 “黑科技” 解决了这个问题:

1. 卷积层(Convolution Layer):像 “放大镜” 找特征

人类看数字 “8”,会先注意到 “上下两个圈”;看 “1”,会注意到 “一条竖线”。卷积层的作用就是自动提取这些 “关键特征”,不用人手动定义。

怎么提取?可以想象成用一个 “小滤镜”(专业叫 “卷积核”,比如 3×3 大小的方块)在数字图片上 “滑动”:

  • 每滑一步,就计算 “滤镜” 和图片对应区域的 “相似度”—— 如果区域是 “竖线”,和 “竖线滤镜” 的相似度就高,输出一个亮值;如果是空白,相似度低,输出暗值。
  • 最后会生成一张 “特征图”:图里的亮斑就是提取到的特征(比如竖线、圆圈、拐角)。

关键优势:不管数字写在图片的左边还是右边,只要有 “竖线” 特征,卷积层都能找到 —— 这叫 “平移不变性”,解决了 “数字位置歪一点就认错” 的问题。

2. 池化层(Pooling Layer):像 “压缩照片” 减负担

卷积层提取的特征图可能很大(比如 28×28 像素),计算起来很慢。池化层的作用就是 **“压缩” 特征图,保留关键信息,去掉冗余细节 **。

最常用的是 “最大池化”(Max Pooling):用一个 2×2 的小窗口在特征图上滑动,每个窗口里只留 “最大的那个值”(比如窗口里是 [1,0; 3,2],就留 3)。

举个例子:一张 28×28 的特征图,经过 2×2 最大池化后,会变成 14×14(尺寸减半),但 “竖线、圆圈” 这些关键特征还在 —— 既减少了计算量,又让特征更 “鲁棒”(比如数字线条粗一点、细一点,池化后影响不大)。

二、LeNet-5 的完整流程:从 “图片” 到 “识别结果”

LeNet-5 的结构很固定,总共 7 层(注意:输入层不算在 “7 层” 里),我们用 “手写数字图片(比如 28×28 像素)” 为例,一步步看它怎么工作:

先明确输入:手写数字图片

我们要识别的数字,会先变成一张32×32 像素的灰度图(只有黑白,没有颜色,每个像素用 0-255 表示明暗,0 是黑色,255 是白色)—— 这是 LeNet-5 要求的 “标准输入格式”。

然后走 7 层流程:“卷积→池化→卷积→池化→全连接→全连接→输出”

我们用表格拆解每一层的作用,像 “工厂流水线” 一样清晰:

层级顺序层类型核心作用通俗例子(以识别 “8” 为例)输入→输出尺寸变化
1卷积层(C1)提取 “边缘、线条” 等简单特征找到 “8” 的外轮廓线条、内部交叉线32×32 → 28×28(6 个特征图)
2池化层(S2)压缩特征图,保留线条特征把 “8” 的轮廓线条 “变粗”,去掉细微的毛刺28×28 → 14×14(6 个特征图)
3卷积层(C3)组合简单特征,提取 “拐角、圆圈” 等复杂特征把 “8” 的上下两条弧线组合成 “两个圈”14×14 → 10×10(16 个特征图)
4池化层(S4)再压缩,强化 “圆圈” 等关键特征把 “8” 的两个圈变得更清晰,减少冗余10×10 → 5×5(16 个特征图)
5全连接层(C5)把所有特征图 “拼起来”,变成一个 “特征向量”把 “两个圈、交叉线” 等特征打包成一个 “8 的特征包”16×5×5 → 120(120 个数值)
6全连接层(F6)进一步筛选关键特征,减少维度从 “8 的特征包” 里挑出最关键的 3 个特征(比如圈的大小、交叉位置)120 → 84(84 个数值)
7输出层(Output)输出 “是 0-9 中每个数字” 的概率输出 “是 8 的概率 98%,是 0 的概率 1%,其他 0.2%”84 → 10(10 个概率值,对应 0-9)

最后出结果:选概率最大的数字

输出层会给出 10 个概率值(对应 0-9),比如 “8” 的概率是 98%,其他数字都很低,那 LeNet-5 就会判断:这张图片是数字 “8”。

三、LeNet-5 的 “高光时刻” 和意义

在 1990 年代,LeNet-5 就已经能在 “MNIST 手写数字数据集”(包含 7 万张 0-9 的手写数字图片)上达到99% 以上的识别准确率—— 这个水平和人类差不多,甚至比有些粗心的人更准。

它的意义远不止 “识别数字”,更在于奠定了现代 CNN 的框架

  • 现在我们用的 ResNet(识别图片)、YOLO(检测物体)、Transformer(AI 绘画、NLP),底层都沿用了 LeNet-5 的 “卷积→池化→全连接” 思路;
  • 它证明了 “让计算机自己学特征” 比 “人手动定义特征” 更有效,直接推动了深度学习的发展。

四、一句话总结 LeNet-5

LeNet-5 就像一个 “数字识别小专家”:它先通过 “卷积层” 找数字的线条、圆圈,再用 “池化层” 简化信息,最后用 “全连接层” 打包特征、判断数字 —— 虽然现在看它的结构很简单,但它是所有 “会看图片的 AI” 的 “老祖宗”。

http://www.xdnf.cn/news/1371187.html

相关文章:

  • 1Panel命令
  • 100种交易系统(6)均线MA识别信号与杂音
  • 深度学习----由手写数字识别案例来认识PyTorch框架
  • Python实现RANSAC进行点云直线、平面、曲面、圆、球体和圆柱拟合
  • Il2CppInspector 工具linux编译使用
  • 设计模式之命令模式
  • Vuex 和 Pinia 各自的优点
  • Linux之SELinux 概述、SSH 密钥登录、服务器初始化
  • 利用AI进行ArcGISPro进行数据库的相关处理?
  • Java数据结构速成【1】
  • 原则性 单一职责原则,第一性原则和ACID原则 : 安全/学习/节约
  • 从双重检查锁定的设计意图、锁的作用、第一次检查提升性能的原理三个角度,详细拆解单例模式的逻辑
  • Markdown学习笔记(4)
  • 矩阵微积分的链式法则(chain rule)
  • 在 Android Studio 中修改 APK 启动图标(2025826)
  • 从线到机:AI 与多模态交互如何重塑 B 端与 App 界面设计
  • 【RAGFlow代码详解-23】聊天系统架构
  • 【LeetCode 热题 100】75. 颜色分类——双指针
  • PWM控制实现呼吸灯
  • 家庭财务规划与投资系统的设计与实现(代码+数据库+LW)
  • Linux SSH 基于密钥交换的自动登录:原理与配置指南
  • (Arxiv-2024)VideoMaker:零样本定制化视频生成,依托于视频扩散模型的内在力量
  • 进程管理详解
  • 如何将视频从安卓设备传输到Mac?
  • 2025改版:npm 新淘宝镜像域名地址
  • 【数据结构】树和二叉树——二叉树
  • 使用字节旗下的TREA IDE快速开发Web应用程序
  • Python中函数的闭包和装饰器
  • 读懂支持向量机(SVM)
  • C++ STL 顶层设计与安全:迭代器、失效与线程安全