matlab+BP神经网络实现手写体数字识别

本文介绍如何使用MATLAB结合BP神经网络实现手写体数字识别。通过吴恩达机器学习课程的数据集,训练了一个包含25个隐藏层节点的BP网络。在5000个样本中,每种数字抽样10个作为测试集,最终测试准确率约92%。但模型对个人手写数字识别效果不佳,计划优化模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人博客文章链接:http://www.huqj.top/article?id=168

接着上一篇所说的 BP神经网络,现在用它来实现一个手写体数字的识别程序,训练素材来自吴恩达机器学习课程,我把打包好上传到了网盘上:

1

2

链接:https://pan.baidu.com/s/1_u8zXzkQcY0iS3cgq2k0xg 

提取码:4opy

    训练数据一共有5000条,10个数字(0~9,为了和matlab适配,0在这里统一用10表示),每个数字各500个手写体图片,像素统一处理为20*20,其中pics中是5000张图片,   data是一个.mat文件,可以直接加载到matlab中,包含两个变量X(5000x400 double矩阵)和y(5000x1 int矩阵)。

image.png

image.png

image.png

 

    可以看到,训练数据的输入是400个像素点的灰度值,虽然图片是20x20的,但是为了处理方便将其转换成1x400的输入,可以用matlab中的reshape函数进行转换。而对于输出而言,这可以看作一个多元分类问题,一共有10种分类,所以输出可以转换成一个10维向量。定义好输入输出格式之后,再考虑下神经网络的架构,平衡性能和效率,最终选择的架构是一个25元隐含层的BP网络。另外,为了衡量最终的模型效果,我们需要从5000个数据中抽取一部分作为测试集,这里我每个数字选了10条数据作为测试数据集,不过理论上训练集和测试集的比例可以达到 7:3

    利用之前编写好的BP网络训练函数和一些附加函数(sigmoid,预测函数等),最终的

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值