DL之LeNet-5:LeNet-5算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

简介: DL之LeNet-5:LeNet-5算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

LeNet-5算法的简介(论文介绍)

image.png


      LeNet-5模型是Yann LeCun教授于1998年在论文《Gradient-based learning applied to document recognition》中提出。它是第一个成功应用于手写数字识别问题并产生实际商业(邮政行业)价值的卷积神经网络。


Abstract

     Multilayer neural networks trained with the back-propagation algorithm constitute the best example of a successful gradient based learning technique. Given an appropriate network architecture, gradient-based learning algorithms can be used to synthesize a complex decision surface that can classify high-dimensional patterns, such as handwritten characters, with minimal preprocessing. This paper reviews various methods applied to handwritten character recognition and compares them on a standard handwritten digit recognition task. Convolutional neural networks, which are specifically designed to deal with the variability of 2D shapes, are shown to outperform all other techniques.

     利用反向传播算法训练的多层神经网络构成了一种成功的基于梯度的学习技术。在适当的网络结构下,基于梯度的学习算法可以用来合成一个复杂的决策曲面,该曲面可以用最少的预处理对高维模式(如手写字符)进行分类。本文综述了手写字符识别的各种方法,并在一个标准的手写数字识别任务上进行了比较。卷积神经网络是专门设计用来处理二维形状变化的,它的表现优于其他所有技术。

     Real-life document recognition systems are composed of multiple modules including field extraction, segmentation recognition, and language modeling. A new learning paradigm, called graph transformer networks (GTN), allows such multimodule systems to be trained globally using gradient-based methods so as to minimize an overall performance measure.

     现实生活中的文档识别系统由多个模块组成,包括字段提取、分割识别和语言建模。一种新的学习范式称为图变网络(GTN),它允许使用基于梯度的方法对这种多模块系统进行全局训练,从而最小化总体性能度量。

     Two systems for online handwriting recognition are described. Experiments demonstrate the advantage of global training, and the flexibility of graph transformer networks.

     介绍了两种在线手写识别系统。实验表明,该方法具有全局训练的优点,并具有图形变压器网络的灵活性。

     A graph transformer network for reading a bank cheque is also described. It uses convolutional neural network character recognizers combined with global training techniques to provide record accuracy on business and personal cheques. It is deployed commercially and reads several million cheques per day.

     本论文还描述了一种用于读取银行支票的图形变压器网络。它使用卷积神经网络字符识别器,结合全局训练技术,为企业和个人支票提供准确的记录。它已投入商业使用,每天可读取数百万张支票。



论文

https://ieeexplore.ieee.org/document/726791

http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

image.png

1998 年《Gradient-Based Learning Applied to Documnet Recognition》

http://yann.lecun.com/exdb/lenet/




LeNet-5算法的架构详解


DL之LeNet-5:LeNet-5算法的架构详解

image.png




LeNet-5算法的案例应用


PyTorch之LeNet-5:利用PyTorch实现最经典的LeNet-5卷积神经网络对手写数字图片识别CNN



1、LeNet-5算法的代码实现(LeNet-5——PyTorch)

PyTorch:利用PyTorch实现搭建最经典的LeNet卷积神经网络CNN——Jason niu

class LeNet(nn.Module):

   def __init__(self):

       super(LeNet,self).__init__()

       #Conv1 和 Conv2:卷积层,每个层输出在卷积核(小尺寸的权重张量)和同样尺寸输入区域之间的点积;

       self.conv1 = nn.Conv2d(1,10,kernel_size=5)

       self.conv2 = nn.Conv2d(10,20,kernel_size=5)

       self.conv2_drop = nn.Dropout2d()

       self.fc1 = nn.Linear(320,50)

       self.fc2 = nn.Linear(50,10)

   def forward(self,x):

       x = F.relu(F.max_pool2d(self.conv1(x),2)) #使用 max 运算执行特定区域的下采样(通常 2x2 像素);

       x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)),2))

       x = x.view(-1, 320)

       x = F.relu(self.fc1(x))  #修正线性单元函数,使用逐元素的激活函数 max(0,x);

       x = F.dropout(x, training=self.training) #Dropout2D随机将输入张量的所有通道设为零。当特征图具备强相关时,dropout2D 提升特征图之间的独立性;

       x = self.fc2(x)

       return F.log_softmax(x, dim=1)  #将 Log(Softmax(x)) 函数应用到 n 维输入张量,以使输出在 0 到 1 之间。

#创建 LeNet 类后,创建对象并移至 GPU

model = LeNet()

cuda_gpu = torch.cuda.is_available()

if cuda_gpu:

   model.cuda()

print ('MNIST_net model:\n')

print (model)





相关文章
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的优化算法及其应用
本文旨在探讨深度学习中常用的优化算法,包括梯度下降、动量方法、AdaGrad、RMSProp和Adam等。通过分析每种算法的原理、优缺点及适用场景,揭示它们在训练深度神经网络过程中的关键作用。同时,结合具体实例展示这些优化算法在实际应用中的效果,为读者提供选择合适优化算法的参考依据。
|
6天前
|
算法 前端开发 机器人
一文了解分而治之和动态规则算法在前端中的应用
该文章详细介绍了分而治之策略和动态规划算法在前端开发中的应用,并通过具体的例子和LeetCode题目解析来说明这两种算法的特点及使用场景。
一文了解分而治之和动态规则算法在前端中的应用
|
13天前
|
算法 调度
贪心算法基本概念与应用场景
尽管贪心算法在许多问题中都非常有效,但它并不总是会产生最优解。因此,在应用贪心算法前,重要的是先分析问题是否适合采用贪心策略。一些问题可能需要通过动态规划或回溯等其他算法来解决,以找到确切的全局最优解。
45 1
WK
|
16天前
|
机器学习/深度学习 算法 数据挖掘
PSO算法的应用场景有哪些
粒子群优化算法(PSO)因其实现简单、高效灵活,在众多领域广泛应用。其主要场景包括:神经网络训练、工程设计、电力系统经济调度与配电网络重构、数据挖掘中的聚类与分类、控制工程中的参数整定、机器人路径规划、图像处理、生物信息学及物流配送和交通管理等。PSO能处理复杂优化问题,快速找到全局最优解或近似解,展现出强大的应用潜力。
WK
19 1
|
25天前
|
机器学习/深度学习 算法 Python
群智能算法:深入解读人工水母算法:原理、实现与应用
近年来,受自然界生物行为启发的优化算法备受关注。人工水母算法(AJSA)模拟水母在海洋中寻找食物的行为,是一种新颖的优化技术。本文详细解读其原理及实现步骤,并提供代码示例,帮助读者理解这一算法。在多模态、非线性优化问题中,AJSA表现出色,具有广泛应用前景。
|
6天前
|
算法 前端开发
一文了解贪心算法和回溯算法在前端中的应用
该文章深入讲解了贪心算法与回溯算法的原理及其在前端开发中的具体应用,并通过分析LeetCode题目来展示这两种算法的解题思路与实现方法。
|
1月前
|
机器学习/深度学习 算法 数据挖掘
R语言中的支持向量机(SVM)与K最近邻(KNN)算法实现与应用
【9月更文挑战第2天】无论是支持向量机还是K最近邻算法,都是机器学习中非常重要的分类算法。它们在R语言中的实现相对简单,但各有其优缺点和适用场景。在实际应用中,应根据数据的特性、任务的需求以及计算资源的限制来选择合适的算法。通过不断地实践和探索,我们可以更好地掌握这些算法并应用到实际的数据分析和机器学习任务中。
|
1天前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
|
28天前
|
算法 BI Serverless
基于鱼群算法的散热片形状优化matlab仿真
本研究利用浴盆曲线模拟空隙外形,并通过鱼群算法(FSA)优化浴盆曲线参数,以获得最佳孔隙度值及对应的R值。FSA通过模拟鱼群的聚群、避障和觅食行为,实现高效全局搜索。具体步骤包括初始化鱼群、计算适应度值、更新位置及判断终止条件。最终确定散热片的最佳形状参数。仿真结果显示该方法能显著提高优化效率。相关代码使用MATLAB 2022a实现。
|
28天前
|
算法 数据可视化
基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
奇异谱分析(SSA)是一种基于奇异值分解(SVD)和轨迹矩阵的非线性、非参数时间序列分析方法,适用于提取趋势、周期性和噪声成分。本项目使用MATLAB 2022a版本实现从强干扰序列中提取趋势线,并通过可视化展示了原时间序列与提取的趋势分量。代码实现了滑动窗口下的奇异值分解和分组重构,适用于非线性和非平稳时间序列分析。此方法在气候变化、金融市场和生物医学信号处理等领域有广泛应用。
下一篇
无影云桌面