神经网络应用于手写数字识别-matlab(精.选).docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
"神经网络应用于手写数字识别-matlab" 神经网络是机器学习中的一种常用技术,它可以应用于各种领域,包括图像识别、自然语言处理、语音识别等。本文主要介绍了神经网络在手写数字识别中的应用,使用 MATLAB 进行实现。 神经网络的基本结构包括输入层、隐含层和输出层。BP 神经网络是一种常用的神经网络模型,它可以通过反向传播算法进行训练。在本文中,我们使用 BP 神经网络来识别手写数字。 实验要求: 1. 使用 MATLAB 编程进行神经网络的实现。 2. 使用 BP 神经网络来识别手写数字。 实验过程: 一、BP 神经网络 BP 神经网络是由很多神经元组成,可以分为输入、输出、隐含层。BP 神经网络的特点是信号前向传递,信号反向传播。若输出存在误差,根据误差调整权值和阈值,使网络的输出接近预期。 在使用 BP 神经网络进行预测之前,需要训练网络。训练过程包括: 1. 网络初始化:确定输入、输出、隐含层的节点数,输入和隐含、隐含和输出层之间的权值,隐含、输出层的阈值,学习速度和激励函数。 2. 计算隐含层输出 3. 计算输出层输出 4. 误差计算 5. 权值更新 6. 阈值更新 7. 判断迭代是否结束 二、模型建立 数据集包含 0-9 这 10 个数字的手写体,是放在 10 个文件夹里,每个文件夹下有 500 张图片,每张图片的像素统一为 28*28。 识别流程: 首先要对数据进行处理,这个主要是批量读取图片和特征提取的过程。特征提取的方法很多,这里只挑选最简单的来实现。然后是训练出一个神经网络的模型,最后用测试数据进行测试。 分类结果训练运行流程: 1. 确定神经网络的输入、输出。输入是 BP 神经网络很重要的方面,输入的数据是手写字符经过预处理和特征提取后的数据。 2. 神经网络的训练 使用 MATLAB 的 rands 函数来实现网络权值的初始化,网络结构为输入层 35,隐藏层 34,输出层 10,学习速率为 0.1,隐藏层激励函数为 sigmoid 函数。 3. 神经网络的预测 训练好神经网络之后,用随机抽取的 500 个数字字符对网络进行预测,输入特征向量,计算隐含层和输出层输出,得到最后预测的数据。同时计算每个数字的正确率和全体的正确率。 主函数: ```matlab clc; img=read_train(root); %% 提取特征 img_feature=feature_lattice(img); %% 构造标签 class=10; numberpclass=500; ann_label=zeros(class,numberpclass*class); for j=numberpclass*(i-1)+1:numberpclass*i %% 选定训练集和测试集 ntraindata=4500; ntestdata=500; accuracy=size(find(error==0),2)/size(label,2) ``` 批量读取图片函数: 文件存放特点:在 data 下有 10 个子文件夹,每个子文件夹下有 500 张图片。函数可以利用于任何批量图片的读取,传入的是文件夹路径,输出的是一个 n(对应图片数目)维 cell,每个 cell 存放的是图片的数据。 ```matlab function [imglist] = read_train(root) %========读取文件夹======== out_Files = dir(root); %展开 tempind=0; n=length(out_Files); %========读取文件======== for i = 1:n ni=length(in_filelist); for j=1:ni if strcmp(in_filelist(j).name,'.')|| strcmp(in_filelist(j).name,'..') continue end imglist{tempind}=imread(strcat(rootpath,'/',in_filelist(j).name)); end end end ``` 特征提取函数: 提取所有图像的特征,二值化—resize-提取特征 ```matlab function feature = feature_lattice(img) % 输入:黑底白字的二值图像。 % 输出:35 维的网格特征 % ======提取特征,转成 5*7 的特征矢量,把图像中每 10*10 的点进行划分相加,进行相加 Atemp=sum(bw_7050); ... ``` 实验结果: 通过实验,我们使用 BP 神经网络成功地识别了手写数字,总体正确率为 0.8620。这证明了神经网络在手写数字识别中的应用价值。
- 粉丝: 1w+
- 资源: 6万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助