发布于2021-05-30 18:51 阅读(1165) 评论(0) 点赞(20) 收藏(0)
基于matlab GUI界面BP网络之手写体大写字母识别
人工神经网络概述:
人工神经元模型:
神经网络的分类:
按照连接方式,可以分为:前向神经网络 vs. 反馈(递归)神经网络;
按照学习方式,可以分为:有导师学习神经网络 vs. 无导师学习神经网络;
按照实现功能,可以分为:拟合(回归)神经网络 vs. 分类神经网络。
数据归一化:将数据映射到[0, 1]或[-1, 1]区间或其他的区间。
数据归一化的原因:
1.输入数据的单位不一样,有些数据的范围可能特别大,导致的结果是神经网络收敛慢、训练时间长。
2.数据范围大的输入在模式分类中的作用可能会偏大,而数据范围小的输入作用就可能会偏小。
3.由于神经网络输出层的激活函数的值域是有限制的,因此需要将网络训练的目标数据映射到激活函数的值域。例如神经网络的输出层若采用S形激活
函数,由于S形函数的值域限制在(0,1),也就是说神经网络的输出只能限制在(0,1),所以训练数据的输出就要归一化到[0,1]区间。
4.S形激活函数在(0,1)区间以外区域很平缓,区分度太小。例如S形函数f(X)在参数a=1时,f(100)与f(5)只相差0.0067。
归一化算法:
1.y = ( x - min )/( max - min );
2.y = 2 * ( x - min ) / ( max - min ) - 1。
部分函数:
参数对BP神经网络性能的影响:
隐含层神经元节点个数
激活函数类型的选择
学习率
初始权值与阈值
交叉验证
训练集
测试集
验证集
留一法
- %Example1 手写体大写字母识别
- %形成用户界面
- clear all;
- %添加图形窗口
- H=figure('Color',[0.8 0.8 1],...
- 'position',[400 300 500 400],...
- 'Name','基于BP神经网络的手写体大写字母识别',...
- 'NumberTitle','off',...
- 'MenuBar','none');
- %画坐标轴对象,显示原始图像
- h0=axes('position',[0.1 0.6 0.3 0.3]);
- %添加图像打开按钮
- h1=uicontrol(H,'Style','push',...
- 'Position',[350 300 80 60],...
- 'String','选择图像',...
- 'FontSize',14,...
- 'Call','op');
- %画坐标轴对象,显示经过预处理之后的图像
- %preprocess
- p1=ones(16,16);
- bw=im2bw(X,0.5);%转换成二值图像
- %用矩形框截取图像
- [i,j]=find(bw==0);
- imin=min(i);
- imax=max(i);
- jmin=min(j);
- jmax=max(j);
- bw1=bw(imin:imax,jmin:jmax);
完整代码或仿真咨询QQ1575304183
原文链接:https://blog.csdn.net/weixin_50197058/article/details/117386183
作者:bbjbbh
链接:http://www.phpheidong.com/blog/article/86767/9cbcb85368d8114b58f0/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!