【手写数字识别】基于Lenet网络实现手写数字识别附matlab代码

1 内容介绍

当今社会,人工智能得到快速发展,而模式识 别作为人工智能的一个重要应用领域也得到了飞 速发展,它利用计算机通过计算的方法根据样本的 特征对样本进行分类,其中的光学字符识别技术受 到广大研究学者的青睐。手写数字识别是光学字 符识别技术的一个分支,主要研究如何利用电子计 算机自动辨认人手写在纸上的阿拉伯数字。现阶 段手写数字识别的主要研究方法有统计、聚类分析 和神经网络。 最小距离分类算法是模式识别中较传统、简单 的方法之一,但是对手写字体适应性不高1最 近邻算法(KNN)是一种基于统计学的分类算法,最 早于1968年由CoverHart提出,作为最简单的机 器学习方法,理论上研究已比较成熟2。支持向量 机(SVM)是由Corinna CortesVapnik等于1995年 首先提出的,该算法有很好的泛化能力与学习能 力,以结构风险最小化为目标,所求得的解是全局 最优解,克服“维数灾难”问题,大大增加效率3BPback propagation)神经网络是 1986 年由 Rumel⁃ hart 和 McCelland 为首的科学家小组提出的,作为 一种多层前馈网络,是在误差逆传播的基础上建立 的4,常与梯度下降法等最优化方法结合使用。BP 神经网络算法是一种有监督的训练方法,且激活函 数为非线性可导的5。以上这些传统的识别方法 对复杂分类问题的数学函数表示能力以及网络的 泛化能力有限,往往达不到高精度识别的要求6。 卷积神经网络(CNN)最初由美国学者Cun等提出, 是一种层与层之间局部连接的深度神经网络7,需 要经过信息的正反向传递。因为 CNN 的局部连 接、权值共享及池化操作等特性,CNN 可以有效降 低网络的复杂度和减少训练参数的数目8。 近年来,由于神经网络具有推广能力、记忆力、 非线性和自学习能力以及高速运算能力9,所以卷 积神经网络被广泛用于手写数字识别。LeNet-5模 型作为一种典型的用来识别数字的卷积神经网络 不断地被优化改进。本课题即在 LeNet-5 模型的基础上,利用 MNIST字符库,通过改变样本训练方式,从而获得一种更高效准确的手写数字信息自动 识别方法。

【手写数字识别】基于Lenet网络实现手写数字识别附matlab代码_第1张图片

2 仿真代码

function layer1_mp = max_pool( layer1 )[H,W,C] = size(layer1);col_odd = 1:2:W;col_even = 2:2:W;row_odd = 1:2:H;row_even = 2:2:H;f1 = layer1(row_odd,col_odd,:);f2 = layer1(row_odd,col_even,:);f3 = layer1(row_even,col_odd,:);f4 = layer1(row_even,col_even,:);layer1_mp = zeros(size(f4));for c = 1:C    max_val1 = max(f1(:,:,c),f2(:,:,c));    max_val2 = max(f3(:,:,c),f4(:,:,c));    max_val = max(max_val1,max_val2);    layer1_mp(:,:,c) = max_val;endend

3 运行结果

【手写数字识别】基于Lenet网络实现手写数字识别附matlab代码_第2张图片

【手写数字识别】基于Lenet网络实现手写数字识别附matlab代码_第3张图片

4 参考文献

[1]梅妍玭, 廖倩, 邵万灵. 基于LeNet神经网络的手写数字识别技术研究[J]. 新技术新工艺, 2020(6):3.

[2]丁娇, 丛爽, 林文瑞,等. MATLAB环境下LeNet网络的手写数字识别. 

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

你可能感兴趣的:(图像处理,网络,matlab,开发语言)