一文彻底搞懂CNN - 手写数字识别(LeNet-5)

2024-08-26 14:36

本文主要是介绍一文彻底搞懂CNN - 手写数字识别(LeNet-5),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

LeNet-5是Yann LeCun在1998年设计的用于手写数字识别的卷积神经网络,是深度学习领域中的早期重要里程碑之一。它是第一个成功应用于手写数字识别的卷积神经网络,标志着深度学习在计算机视觉领域的初步应用。

MNIST数据集

LeNet-5以其简洁而有效的结构,成为了早期卷积神经网络中最具代表性之一。它成功奠定了卷积神经网络在计算机视觉领域的地位。

LeNet-5

一、CNN奠基论文

在深度学习领域,卷积神经网络(CNN)的奠基之作非Yann LeCun与Yoshua Bengio(花书《深度学习》作者之一)等人所著的《Gradient-Based Learning Applied to Document Recognition》莫属。

人工智能三巨头

该论文深入解析了LeNet网络架构,其在手写体识别上的突破性成就,为CNN的后续发展奠定了坚不可摧的基石。

LeNet-5

首先,论文介绍了传统模式识别方法在处理复杂图像数据时面临的挑战,特别是手工设计特征提取器的局限性。

  • 传统方法局限性:传统模式识别方法依赖于手工设计的特征提取器,这些方法在处理复杂图像数据时存在局限性,如无法有效应对图像中的平移、形变和扭曲等变化。

  • 全连接网络的不足:全连接网络虽然可以作为分类器,但在处理图像数据时存在两个问题:一是参数过多,导致训练困难;二是忽略了输入数据的拓扑结构(如图像的空间相关性)。

传统模式识别方法

随后,作者提出了使用多层神经网络(特别是卷积神经网络)来解决这些问题,因为这些网络能够从大量数据中学习复杂的、高维的、非线性的映射。

  • 局部感受野:CNN通过局部感受野机制,每个神经元只连接输入数据的一个局部区域,这有助于提取图像的局部特征。

  • 权值共享:同一特征图中的所有神经元共享相同的权值,这使得网络能够检测图像中不同位置的相同特征,从而实现位移不变性。

  • 下采样(池化):通过池化操作降低特征图的维度,减少计算量,并增强模型对形变的鲁棒性。

CNN识别方法

二、LeNet-5网络结构

**LeNet-5是论文中提出的经典卷积神经网络结构,主要由两个卷积层、两个池化层、两个全连接层和一个输出层组成,用于手写数字识别。**其结构主要包括以下几个部分:

LeNet-5

  1. 输入层:接收归一化大小的字符图像,通常图像中的字符位于中心位置。

  2. 卷积层(C1):

  • 使用多个卷积核(6@28*28)对输入图像进行卷积操作,每个卷积核对应一个特征图。

  • 每个特征图的神经元通过局部感受野连接输入图像的一个局部区域,并共享相同的权值。

  1. 池化层(S2):
  • 对C1层的特征图进行下采样操作(6@14*14),通常采用最大池化或平均池化。

  • 减少特征图的维度,降低计算量,并增强模型的鲁棒性。

  1. 第二个卷积层(C3):
  • 对S2层的输出进行进一步的卷积操作(16@10*10),提取更高级别的特征。

  • C3层的特征图与S2层的特征图之间可能存在复杂的连接模式,具体取决于网络设计。

  1. 第二个池化层(S4):
  • 对C3层的特征图进行下采样操作(16@5*5),进一步减少特征图的维度。
  1. 全连接层(C5):
  • 将S4层的输出展平为一维向量,并连接到全连接层。

  • 全连接层中的每个神经元都与前一层的所有神经元相连。

  1. 输出层:
  • 全连接层的输出连接到输出层,输出分类结果。

  • 对于手写体识别任务,输出层通常包含与类别数相等的神经元,每个神经元对应一个类别的概率。

三、LeNet-5模型训练__

LeNet-5模型训练: 论文深入探讨了利用梯度下降法,特别是结合反向传播算法,来训练LeNet-5网络模型。

该过程通过计算损失函数对网络参数的梯度,随后沿梯度的负方向迭代更新参数,使网络逐步优化,从而精准学习从输入图像到输出类别的复杂映射关系。

模型训练

反向传播(Back Propagation): 反向传播算法利用链式法则,通过从输出层向输入层逐层计算误差梯度,高效求解神经网络参数的偏导数,以实现网络参数的优化和损失函数的最小化。

反向传播

损失函数(Loss Function): 用于衡量模型预测值与真实值之间的差距。损失函数越小,模型的预测性能就越好。

损失函数

梯度下降(Gradient Descent 从一个初始点出发,沿着损失函数的负梯度方向不断更新参数,直到达到一个局部最小值或者全局最小值。

梯度下降

随机梯度下降(SGD): 随机梯度下降在每次迭代中仅随机选择一个样本来计算损失函数的梯度,并根据这个梯度来更新模型的一个或多个参数。

随机梯度下降

批量梯度下降(BGD):与随机梯度下降不同, 在每次迭代中,批量梯度下降使用整个数据集来计算损失函数的梯度,并根据这个梯度来更新模型的所有参数。

批量梯度下降

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

学习路线

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

这篇关于一文彻底搞懂CNN - 手写数字识别(LeNet-5)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108836

相关文章

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

一文详解Java Condition的await和signal等待通知机制

《一文详解JavaCondition的await和signal等待通知机制》这篇文章主要为大家详细介绍了JavaCondition的await和signal等待通知机制的相关知识,文中的示例代码讲... 目录1. Condition的核心方法2. 使用场景与优势3. 使用流程与规范基本模板生产者-消费者示例

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

一文带你搞懂Nginx中的配置文件

《一文带你搞懂Nginx中的配置文件》Nginx(发音为“engine-x”)是一款高性能的Web服务器、反向代理服务器和负载均衡器,广泛应用于全球各类网站和应用中,下面就跟随小编一起来了解下如何... 目录摘要一、Nginx 配置文件结构概述二、全局配置(Global Configuration)1. w

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推