基于人工神经网络的模式识别
网络识别系统, 在输出端会输出字符 H, 并
(a )不带噪声的数字 H
(b) 带噪声的数字 H 图 7 不带噪声和带有噪声的字母 H
(a )不带噪声的数字 8
(b) 带噪声的数字 8 图 7 不带噪声和带无 噪 声 的 进 行 对 比 。如 图 7 所示。
图 1 字母 A 的网格图
1 0 0 0 1 ... 1 0 0 0 1 ... 1 0 0 0 1 ]’; number8 = [0 1 1 1 0 ... 0 1 1 1 0 ]’; 字母的表示如图 1、图 2 所示。
图 2 数字 8 的网格图 另外一个很重要的需要考虑的因素 是: 所要设计的网络应当具有抗干扰能力, 即 设 计 出 的 网 络 应 当 能 够 处 理 噪 声 。具 有 在由一定不规范的输入情况下辨识出正 确 的 字 母 输 入 的 能 力 。假 设 设 计 的 网 络 能 够有一定的容错能力, 对于输入向量, 若其 噪 声 均 值 为 0, 标 准 差 不 大 于 0.2, 则 能 够 分辨出来。
(alphabet+randn(R,Q)*0.2)] ; [ netn,tr] =train(netn,P,T); pause end 在输入端字母表向量上加入噪声信 号后, 网络的训练过程误差变化情况如图 5 所示。可以从图 5 上看到它们的变化规 律。
(a )
(b)
(c) 图 5 有噪声训练过程误差变化情况 ( 3) 再次进行无噪声信号训练 为了保证网络总是能够正确地对理 想输入信号进行分类, 我们需要再一次用 无 噪 声 的 理 想 信 号 对 网 络 进 行 训 练 。所 用 的 代 码 与 “有 噪 声 信 号 训 练 ”中 的 代 码 相
使用机器来进行模式识别是一项有 价 值 的 工 作 。比 如 用 机 器 来 辨 别 银 行 的 签 字和邮政编码, 那么它就能在相同的时间 里 做 比 人 多 得 多 的 工 作 。模 式 识 别 不 仅 省 时, 而且经济, 同时还能将劳动者从繁杂 的 重复 劳动 中解 脱出 来[3]。
2 模式识别系统的要求
同样, 再输入数字如 8, 经过神经网络 识别系统, 在输出端会输出带有噪声的和 无噪声的 8。如图 8 所示。
6 结论
在本文中讨论了设计一个简单的模 式 识 别 系 统 的 设 计 方 案 。需 要 引 起 注 意 的 是: 训练过程不只是包含一个训练函数, 它还需要用不同的输入向量进行很多次 训练。
首先必须将每个字符进行数字化处 理 , 以 便 构 造 输 入 样 本 。 本 程 序 中 用 5×7 矩阵的布尔值表示。如字母 A 和数字 8 分 别可以用 0、1 矩阵表示为:
letterA = [0 0 1 0 0 ... 0 1 0 1 0 ... 0 1 0 1 0 ... 1 0 0 0 1 ... 1 1 1 1 1 ... 0 1 1 1 0 ...
图 4 无噪声训练过程误差变化情况 间内达到。
( 2) 有噪声信号训练 为了保证设计的网络对噪声不敏感, 可用理想的字母表向量和加了噪声的字 母 表 向 量 分 别 训 练 网 络 。设 置 向 字 母 表 向 量 加 入 的 噪 声 信 号 平 均 值 分 别 为 0.1 和 0.2。 这 样 就 可 以 保 证 神 经 元 网 络 学 会 在 辨别带噪声信号的字母表向量时, 也能对 理想的字母表向量进行正确的识别。 另外, 设置网络对含噪声信号的向量 进行 训练 的最 大时 间 为 300 个 单 位 时 间 , 并且把误差参数也增加到 0.6。之所以要提 高误差参数, 是因为这次的训练向量增加 了 4 倍。 etn=net;
就 只 使 用 理 想 的 向 量 进 行 训 练 。这 样 就 可 以保证在输入端输入理想字符信号时, 网 络能够最好地对其做出反应。
网络学习的速率和冲量参数设置为 自适应改变, 使用函数 traingdx 进行训练。 ( 1) 无噪声信号训练 开始时使用无噪声的信 号 对 网 络 进 行 训 练 。当 训 练 时 间 达 到 5000 个 时 间 单 位 或 者 是网络平方和误差小于 0.1 时 停止网络的训练。 P=alphabet;
如果需要有更高的精度, 一种办法是 增长网络的训练时间, 另一种办法是增加 网络隐含层的神经元数目。当然, 把输入的 字 母 表 向 量 从 5×7 的 网 络 增 加 到 10×14 的网格也是一种办法。另外, 如果网络要求 对误差信号有更高的可靠性, 还可以在训 练 时 增 加 输 入 向 量 的 误 差 的 数 量[6]。在 本 文 中, 使用了不同的噪声向量作为输入来训 练网络, 使得网络具有了容错的能力, 这 样更适合在现实环境中使用。
神经网络自身仅能够处理数据, 所以 对于需要神经网络完成的任务, 都必须首 先将其转化成神经网络所能够接收的输 入 和 输 出 数 据 。即 使 对 邮 政 编 码 辨 识 这 样 较简单的任务, 也必须先对签字部位和信 封编码部位进行扫描, 并对图像进行预处 理, 将含有数字的部分用点阵画出其图 形, 产生一定数目的用 0 和 1 数字表示的 数字符号的数组后, 才能将其送入神经网
软件导刊·2007·2 月号 87
图形学与辅助设计
log- sigmoid 网络。之所以选择 log- sigmoid 函数 , 是因 为它 的输 出范 围( 0- 1) 正 好 适 合 在 学 习 后 输 出 布 尔 值[5]。其 网 络 结 构 如 图 3 所示。
图 3 网络结构 在 网 络 的 隐 含 层 ( 第 一 层 ) 设 计 了 10 个 神 经 元 。训 练 网 络 就 是 要 使 其 输 出 向 量 中正确的位置设置为 1, 其余位置为 0。然 而, 由于噪声信号的存在, 网络可能不会 输出正确的 1 或 0 信号。只有在网络被训练 后, 网络才会在正确的位置上得到 1 和 0。 4.2 初始化 使用函数 newff 创建一个两层网络。 [ alphabet,targets] =sample;% 初 始 赋 值, sample 是输入样本; [ R,Q] =size (alphabet);% alphabet 在 sample 函数中有定义; [ s2,Q] =size (targets);%targets 在 sam- ple 函数中有定义; P=alphabet; net =newff(minmax(P), [ s1,s2] , {' logsig' , ' logsig' },' traingdx'); net.LW{2,1}=net.LW{2,1}*0.01; net.b{2}=net.b{2}*0.01; 4.3 网络训练 为了使网络对输入向量有一定的容 错能力, 最好的办法是既使用理想的信号 又使用带有噪声的信号对网络进行训练。 具体做法是先用理想的输入信号对网络 进行训练, 直到其平方和误差足够小。 接下来, 使用 10 组理想信号和带有噪 声 的 信 号 对 网 络 进 行 训 练 。在 输 入 带 有 误 差的向量时, 要输入两倍重复的无误差信 号, 这样做的目的是为了保证网络在分辨 理想输入向量时的稳定性。 在网络进行了上述的训练以后, 网络 对无误差的信号可能也会采用对付带有 噪 声 信 号 的 办 法 。这 样 做 就 会 付 出 较 大 的 代价。因此, 可以再一次训练网络。这一次
T=targets; % 误差平方和性能函数 net.performFcn=' sse' ; net.trainParam.goal=0.1; net.trainParam.show=20; net.trainParam.epochs=5000; net.trainParam.mc=0.95; [ net,tr] =train(net,P,T); 训练过程误差变化情况如图 4 所示。 观察其曲线可知训练指标能在较快的时
88 软件导刊·2007·2 月号
图形学与辅助设计
同。
5 模式识别系统的测试
5.1 模式识别系统的识别错误率曲线 在本程序中, 使用不同级别的误差信
号, 并且给出了网络输出错误与噪声信号 比较的曲线, 如图 6 所示。
图 6 识别错误率曲线 加到网络输入向量上的噪声均值为 0, 标准差 范围 为 0 ̄0.5。在 每 个 噪 声 级 别 上, 分 别有 100 个不 同 版 本 的 噪 声 信 号 被 加到每个字母向量上, 然后用设计的网络 计算其输出。将输出通过竞争传递函数, 保证 36 个输出中只有一个的值为 1, 其余 为 0。 图 6 中的实线显示的是既经过噪声 信号又经过非噪声信号训练后的网络的 可 靠 性 。而 虚 线 显 示 的 是 同 样 的 网 络 只 经 过非噪声信号而没有经过噪声信号训练 的网络的可靠性。从图 6 可以看出, 网络 经过含噪声信号的输入训练后, 其容错能 力有了非常明显的增强。 当输入向量的误差平均值为 0 或 0.05 时, 网 络识 别 没 有 错 误 。但 是 当 误 差 平均值达到 0.2 时, 网络开始产生误差。 5.2 识别结果比较 在 MATLAB 的 运 行 环 境 下 , 根 据 交 互式的提示输入要识别的字符, 然后通过 程序的测试就可以在输出端正确地将它 识别出来。 比如说你输入一个字母 H, 经过神经
络的输 入端 进行 辨识[4]。
3 模式识别系统的初步设想
设计训练一个神经网络能够识别字 母、数 字、汉 字, 意 味着 每当 给 训 练 过 的 网 络 一个 表示 某一 个字 母、数 字或 汉 字 的 输 入时, 网络能够正确地在输出端指出它, 那 么该 网络 记忆 了输 入的 所有字 母 、数 字 和 汉 字 样 本 。神 经 网 络 的 训 练 应 当 是 有 监 督 地 训 练 神 络 网 络 识 别 分 别 表 示 字 母 、数 字 、汉 字 的 数 组 。
图形学与辅助设计
基于人工神经网络的模式识别
但小容, 王 瑞, 杨 莉 ( 中国地质大学, 湖北 武汉 430074)
摘 要: 利用数学软件 MATLAB 研究了基于人工神经网络的模式识别, 这种基于人工神经网络的模式识别