定义问题

脚本 prprob 定义了一个包含 26 列的矩阵 X,每列对应一个字母。每列有 35 个值,值可能是 1,也可能是 0。每列(包含 35 个值)定义一个字母的 5×7 位图。

矩阵 T 是一个 26×26 的单位矩阵,它将 26 个输入向量映射到 26 个类。

[X,T] = prprob;

以下命令将第一个字母 A 绘制为一个位图。

plotchar(X(:,1))

创建第一个神经网络

为求解此问题,我们将使用针对模式识别建立的具有 25 个隐藏神经元的前馈神经网络。

由于神经网络以随机初始权重进行初始化,因此每次运行该示例进行训练后的结果都略有不同。为了避免这种随机性,请设置随机种子以便每次都重现相同的结果。这对于您自己的应用情形不是必需的。

setdemorandstream(pi);

net1 = feedforwardnet(25);

view(net1)

训练第一个神经网络

函数 train 将数据划分为训练集、验证集和测试集。训练集用于更新网络,验证集用于在网络过拟合训练数据之前停止网络,从而保持良好的泛化。测试集用作完全独立的测量手段,用于衡量网络针对新样本的预期表现。

当网络针对训练集或验证集不再可能有改善时,训练停止。

net1.divideFcn = '';

net1 = train(net1,X,T,nnMATLAB);

Computing Resources:

MATLAB on GLNXA64

训练第二个神经网络

我们希望网络不仅可以识别形状标准的字母,还可以识别含噪的字母。因此,我们将尝试针对含噪数据训练第二个网络,并将其泛化能力与第一个网络进行比较。

以下命令为每个字母 Xn 创建 30 个含噪副本。值由 min 和 max 限制在 0 和 1 之间。还定义了相应的目标 Tn。

numNoise = 30;

Xn = min(max(repmat(X,1,numNoise)+randn(35,26*numNoise)*0.2,0),1);

Tn = repmat(T,1,numNoise);

以下是 A 的含噪版本。

figure

plotchar(Xn(:,1))

以下命令将创建并训练第二个网络。

net2 = feedforwardnet(25);

net2 = train(net2,Xn,Tn,nnMATLAB);

Computing Resources:

MATLAB on GLNXA64

测试两个神经网络

noiseLevels = 0:.05:1;

numLevels = length(noiseLevels);

percError1 = zeros(1,numLevels);

percError2 = zeros(1,numLevels);

for i = 1:numLevels

Xtest = min(max(repmat(X,1,numNoise)+randn(35,26*numNoise)*noiseLevels(i),0),1);

Y1 = net1(Xtest);

percError1(i) = sum(sum(abs(Tn-compet(Y1))))/(26*numNoise*2);

Y2 = net2(Xtest);

percError2(i) = sum(sum(abs(Tn-compet(Y2))))/(26*numNoise*2);

end

figure

plot(noiseLevels,percError1*100,'--',noiseLevels,percError2*100);

title('Percentage of Recognition Errors');

xlabel('Noise Level');

ylabel('Errors');

legend('Network 1','Network 2','Location','NorthWest')

由于存在噪声,在无噪声情况下训练的网络 1 的错误数多于在有噪声情况下训练的网络 2。

matlab实现字符识别,字符识别 - MATLAB Simulink Example - MathWorks 中国相关推荐

  1. matlab 读取mdf文件路径,访问 MDF 文件 - MATLAB Simulink Example - MathWorks 中国

    打开 MDF 文件 通过指定目标文件的名称来打开 MDF 文件.有关该文件的许多基本详细信息已提供.此示例文件是使用 Vector CANape 创建的. m = mdf("CANapeBa ...

  2. matlab中矩阵重排列,稀疏矩阵重新排序 - MATLAB Simulink Example - MathWorks 中国

    可视化稀疏矩阵 spy 图可以显示矩阵中的非零元素. 下面的 spy 图显示了从杠铃矩阵的一部分得到的稀疏对称正定矩阵.此矩阵描述类似杠铃的图中的连接. load barbellgraph.mat S ...

  3. 聚类 轮廓 matlab,聚类分析 - MATLAB Simulink Example - MathWorks 中国

    K 均值和层次聚类 Statistics and Machine Learning Toolbox 中的一些函数可执行 K 均值聚类和层次聚类. K 均值聚类是一种分区方法,它将数据中的观测值视为具有 ...

  4. matlab改成单精度运算,单精度运算 - MATLAB Simulink Example - MathWorks 中国

    创建双精度数据 首先创建一些数据,默认情况下为双精度. Ad = [1 2 0; 2 5 -1; 4 10 -1] Ad = 3×3 1 2 0 2 5 -1 4 10 -1 转换为单精度 可以使用 ...

  5. 矩阵指数 matlab,矩阵指数 - MATLAB Simulink Example - MathWorks 中国

    方法 1:加权平方 expmdemo1 是以下著作中算法 11.3.1 的实现: Golub, Gene H. and Charles Van Loan.Matrix Computations, 3r ...

  6. matlab地震振幅属性分析,洛马普列塔地震分析 - MATLAB Simulink Example - MathWorks 中国...

    加载地震数据 文件 quake.mat 包含圣克鲁斯山脉在 1989 年 10 月 17 日发生的洛马普列塔地震的 200Hz 数据.该数据由加州大学圣克鲁斯分校的 Joel Yellin 通过 Ch ...

  7. matlab 总谐波失真,分析谐波失真 - MATLAB Simulink Example - MathWorks 中国

    简介 在此示例中,我们将研究放大器的简化模型的输出,该放大器的噪声耦合到输入信号并且呈现非线性.我们将研究输入端的衰减如何降低谐波失真.我们还将举例说明如何对放大器输出端的失真在数学上进行校正. 查看 ...

  8. matlab 平面相交,使用matlab画相交的平面

    引子 matlab 作为科学计算神器,可以轻松的实现矩阵的计算和三维图形的绘制, 因此今天用matlab绘制了一道高数题中的图形. 题目如下: 其中 x+y = pi/2 已经证明是错题,应该是 x ...

  9. MATLAB 添加自定义的模块到simulink库浏览器

    在MATLAB开发环境中,Simulink仿真平 台可以建立用户自定义的库文件,并将它们显示在Library Browser窗口下,方便用户进行模块的操作.用户可以将一些平时使用比较频繁,或者自己建立 ...

最新文章

  1. GitHub上的“金矿”(236个Python开源项目,涵盖了15个领域)
  2. C语言函数怎么像python那样返回多个值?(三种方法:1、设置全局变量 2、传递指针 3、使用结构体返回不同类型的数据)
  3. Mathtype 免安装 | office自带UnicodeMath和LaTeX编辑功能
  4. [图形图像]一次光线追踪的尝试
  5. ArcGIS中属性域的使用
  6. 斯坦福大学自然语言处理第二课“文本处理基础(Basic Text Processing)”
  7. EDA 课程设计 实验报告及源文件
  8. International Journal of Intelligent Systems投稿经验分享
  9. 服务器配置选择、域名选择、域名解析、域名绑定服务器,ICP免费备案等,此文档配置节约大量时间
  10. PhysX碰撞检测之onContact和onTrigger
  11. python--Django快速入门之模板层详解
  12. 一个python文件调用另一个python文件
  13. 关于条件编译和预编译的一点学习心得
  14. 思科640-816最新认证资料-Pass4side权威考题大师提供
  15. Safari 与 Edge:哪种浏览器更适合 Mac
  16. 数据结构5.2图的存储与遍历
  17. echarts 中使用百度地图 bmap (基础使用:仅显示、定义样式)
  18. 树莓派设置WiFi上网
  19. WIN10无法上ipv6,解决方法,亲测有效
  20. 命令行窗口cmd中的python指令

热门文章

  1. 电力运维云平台:开启电力系统“无人值班、少人值守”新模式
  2. 计算机内存的故障,电脑内存损坏后的故障表现及其简单处理方法
  3. lol服务器什么时候修复,《英雄联盟》史上最慢服务器修复,官方修复公告阅读超过100万...
  4. 超级好用,发现一个爬虫逆向神器
  5. 笔记本电脑用hdmi连接电视机无反应-解决方法
  6. sharesdk第三方微博登录:你所访问的站点在微博认证失败,错误号:21322
  7. ENCODE30篇论文全摘要 聚焦人基因组功能研究
  8. 磐石云谈空号识别的几种方式
  9. mysql myisam引擎_MySQL常用存储引擎之MyISAM
  10. 基于html和vue的科技星球展示网页设计