基于MATLAB的数字识别

合集下载

MNIST 手写数字识别 matlab

MNIST 手写数字识别 matlab

文结构如下:第二章介绍了实验目标和实验 原则和结构,第三章对手写数字特征进行了 全面总结,第四章应用单特征和多特征对 MNIST 数据库手写数字进行了识别,并引入 了一种新的特征提取方法改进了识别能力, 第五章对实验内容进行了总结和展望。
另外实验数据采用 NEC 研究中心的 MNIST 手 写 数 字 数 据 库, 许 多 实 验 研 究 基 于此库 [4] ,里面包含了 60000 个训练样本 和 10000 个测试样本,每个样本为 28 × 28 像 素的 bmp 图片。我们在文中默认有以下定 义: 识别率 错误识别数/样本 总数 ×100%
样本和 10000 个测试样本,每个特征提取都 对所有的训练样本进行了学习,提取出特征 值,每次识别测试都对所有的测试样本进行 了识别,与测试样本正确值比较(test.txt) , 并把记录错误(log.txt), 最后根据记录进行 比较。
4.2
单特征识别
图 6: 4×4 粗网格特征每个数字识别 该方法选取了 4×4=16 个特征值,经实 验 10000 个测试中正确识别了 6628 个,识别 率达 66.28%,具体每个数字识别如图 6 ,横 轴代表每个数字,纵轴红色代表每个数字测 试样本个数,蓝色代表失误识别个数(下文 均同此) 。 4×4 粗网格特征识别对每个数字 的识别率都不高,最好的数字 6 识别率也不 过 80% 左右,部分是因为选取的网格过大所 致。 4.2.2 7×7 粗网格特征识别
单特征识别是指仅采用第三章中一种特 征值的方法对手写数字进行识别。本实验中 采用了 4×4 粗网格和 7×7 粗网格特征,以 及一种新的特征对手写数字进行了识别,得 到了不同的效果。 4.2.1 4×4 粗网格特征识别
粗网格的特征提取过程主要是将处理后 的样本图像分划为不重叠的局部块,将每个 块中的黑色像素个数占全部像素的百分比 作为特征。本文实验中如图 3 将 28 × 28 样 本 数 字 手 写 图 像 横 向、纵 向 各 用 间 距 为 4 pixels 和 7 pixels 的水平线和竖直线将图像分 为 7 × 7 = 49 块和 4 × 4 = 16 块区域,统 计每块区域黑色像素所占比例作为特征值。 所取块越小,对数字分辨能力相对越强。考 虑一种极端情况:当块大小只有一个像素点, 判断标准即此像素点是否为黑色像素,特征 值只有 0 、 1 两个可能,这样相当于有一个 模块对测试数字进行匹配。

基于MATLAB软件的罗马数字模式识别

基于MATLAB软件的罗马数字模式识别

基于MATLAB软件的罗马数字模式识别
袁慧梅;宋宇
【期刊名称】《计算机应用与软件》
【年(卷),期】2007(24)9
【摘要】提出了利用神经网络的分类功能,并借助于MATLAB软件的神经网络工具箱,采用具有自适应学习速率和附加动量因子的BP型神经网络,实现罗马数字模式识别的新方法.该方法同样适用于其它符号的模式识别.
【总页数】3页(P143-144,183)
【作者】袁慧梅;宋宇
【作者单位】首都师范大学信息工程学院,北京,100037;首都师范大学信息工程学院,北京,100037
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于仿生模式识别与传统模式识别的人脸识别效果比较研究 [J], 王守觉;曲延锋;李卫军;覃鸿
2.基于Matlab软件的绘图效果及算法设计研究 [J], 孙韶华;徐志
3.基于MATLAB软件的动车组转向架悬挂系统半主动控制仿真分析 [J], 曲双;王雷;王浙东;徐强;石昀杭
4.基于Matlab软件的满堂支架体系结构优化 [J], 涂述林
5.基于MATLAB软件的超高层建筑供热间歇模式识别方法 [J], 于利尧
因版权原因,仅展示原文概要,查看原文内容请购买。

matlab 模式识别案例

matlab 模式识别案例

matlab 模式识别案例一、介绍模式识别是一种通过学习样本数据集合中的规律,从而对未知数据进行分类或预测的技术。

在实际应用中,模式识别广泛应用于图像识别、语音识别、生物信息学等领域。

而MATLAB作为一种强大的数学计算软件,提供了丰富的工具包和函数用于模式识别的实现。

本文将介绍十个基于MATLAB的模式识别案例。

二、案例一:手写数字识别手写数字识别是模式识别中的经典问题之一。

利用MATLAB的图像处理工具箱,可以实现对手写数字图像的分割、特征提取和分类。

通过对训练集的学习,建立一个分类器,然后用测试集进行验证,即可实现对手写数字的识别。

三、案例二:人脸识别人脸识别是模式识别中的重要应用之一。

利用MATLAB的人脸识别工具箱,可以实现对人脸图像的特征提取和分类。

通过对训练集的学习,建立一个人脸模型,然后用测试集进行验证,即可实现对人脸的识别。

四、案例三:语音识别语音识别是模式识别中的重要应用之一。

利用MATLAB的语音处理工具箱,可以实现对语音信号的特征提取和分类。

通过对训练集的学习,建立一个语音模型,然后用测试集进行验证,即可实现对语音的识别。

五、案例四:信号识别信号识别是模式识别中的重要应用之一。

利用MATLAB的信号处理工具箱,可以实现对信号的特征提取和分类。

通过对训练集的学习,建立一个信号模型,然后用测试集进行验证,即可实现对信号的识别。

六、案例五:文本分类文本分类是模式识别中的重要应用之一。

利用MATLAB的自然语言处理工具箱,可以实现对文本的特征提取和分类。

通过对训练集的学习,建立一个文本模型,然后用测试集进行验证,即可实现对文本的分类。

七、案例六:图像分割图像分割是模式识别中的重要问题之一。

利用MATLAB的图像处理工具箱,可以实现对图像的分割。

通过对图像的像素进行聚类,将图像划分为不同的区域,从而实现图像分割。

八、案例七:异常检测异常检测是模式识别中的重要问题之一。

利用MATLAB的统计工具箱,可以实现对数据的异常检测。

基于Matlab的语音识别系统的设计本科毕业设计

基于Matlab的语音识别系统的设计本科毕业设计

摘要语音识别主要是让机器听懂人说的话,即在各种情况下,准确地识别出语音的内容,从而根据其信息执行人的各种意图。

语音识别技术既是国际竞争的一项重要技术,也是每一个国家经济发展不可缺少的重要技术支撑。

本文基于语音信号产生的数学模型,从时域、频域出发对语音信号进行分析,论述了语音识别的基本理论。

在此基础上讨论了语音识别的五种算法:动态时间伸缩算法(Dynamic Time Warping,DTW)、基于规则的人工智能方法、人工神经网络(Artificial Neural Network,ANN)方法、隐马尔可夫(Hidden Markov Model,HMM)方法、HMM和ANN的混合模型。

重点是从理论上研究隐马尔可夫(HMM)模型算法,对经典的HMM模型算法进行改进。

语音识别算法有多种实现方案,本文采取的方法是利用Matlab强大的数学运算能力,实现孤立语音信号的识别。

Matlab 是一款功能强大的数学软件,它附带大量的信号处理工具箱为信号分析研究,特别是文中主要探讨的声波分析研究带来极大便利。

本文应用隐马尔科夫模型(HMM) 为识别算法,采用MFCC(MEL频率倒谱系数)为主要语音特征参数,建立了一个汉语数字语音识别系统,其中包括语音信号的预处理、特征参数的提取、识别模板的训练、识别匹配算法;同时,提出利用Matlab图形用户界面开发环境设计语音识别系统界面,设计简单,使用方便,系统界面友好。

经过统计,识别效果明显达到了预期目标。

关键词:语音识别算法;HMM模型;Matlab;GUIABSTRACTSpeech Recognition is designed to allow machines to understand what people say,and accurately identify the contents of voice to execute the intent of people.Speech recognition technology is not only an important internationally competed technology,but also an indispensable foundational technology for the national economic development.Based on the mathematical model from the speech signal,this paper analyze audio signal from the time domain,frequency domain proceeding,and discussed the basic theory of speech recognition technology.Five algorithm are discussed:Dynamic Time Warping(DTW)、Rule-based Artificial Intelligence,Artificial Neural Network(ANN),Hidden Markov Model(HMM),HMM combined with ANN.The focus is put in the theoretical studies of Hidden Markov(HMM) model algorithm,and the classical HMM algorithm is improved.Speech recognition algorithm is realized in various programs,this article taking the method is to use Matlab powerful mathematical operation ability to realize the recognition of speech signal isolation. Matlab is a powerful mathematic software with a mass of toolboxes dealing with signal processing. It gives a terrific shortcut to the research of signal processing,especially the wave analysis. We can characterize the sound with key parameters such as intensity, frequency etc. In this paper, hidden Markov model (HMM) recognition algorithm using MFCC (MELfrequency cepstral coefficients) as the main voice characteristic parameters, the establishment of a Chinese digital speech recognition system, including the preprocessing of the speech signal,the extraction of characteristic parameters the training of the recognition template,identifying matching algorithm;the same time,the use of Matlab graphical user interface development environment designed speech recognition system interface,is designed to be simple,easy to use,friendly interface. Besides,to have a simple exploration of the voice recognition is another target.After statistics,recognition result obviously is made out as the expected goal.Key words:Speech recognition algorithm;HMM model;Matlab;GUI目录一、前言 (1)1.1语音识别的发展历史 (1)1.2语音识别研究现状 (1)1.3语音识别系统的分类 (2)1.4语音识别系统的基本构成 (3)1.5语音识别技术难点 (3)1.6语音识别发展前景 (4)二、语音信号分析 (4)2.1语音学知识 (4)2.1.1音素和音节 (5)2.1.2汉语的声调 (5)2.1.3语音信号产生模型 (6)2.2语音信号数字化和预处理 (7)2.2.1数字化 (7)2.2.2预加重处理 (7)2.2.3防混叠滤波 (8)2.2.4加窗处理 (8)2.3语音信号的时域分析 (9)2.3.1短时能量分析 (9)2.3.2短时平均过零率 (11)2.3.3短时自相关函数和短时平均幅度差函数 (12)2.3.4语音端点检测 (13)2.4语音信号的频域分析 (14)2.4.1滤波器组法 (14)2.4.2傅立叶频谱分析 (14)2.5特征参数提取 (15)2.5.1 LPCC倒谱系数 (15)2.5.2 Mel频率倒谱系数 (16)三、语音识别主要算法 (17)3.1动态时间伸缩算法 (17)3.2基于规则的人工智能方法 (18)3.3人工神经网络方法 (19)3.4隐马尔可夫方法 (20)3.5 HMM和ANN的混合模型 (21)四、隐含马尔可夫模型算法 (23)4.1 HMM的基本理论和数学描述 (23)4.2 HMM的三个基本问题及解决算法 (24)4.3 HMM算法的改进 (31)4.4 HMM的结构和类型 (33)4.5 HMM算法实现的问题 (34)五、基于Matlab环境下的语音识别算法实现 (35)5.1识别系统平台介绍 (35)5.2在Matlab中HMM算法的实现 (36)5.2.1端点检测 (36)5.2.2特征参数提取 (36)5.2.3训练和识别 (37)5.3实验结论分析 (38)六、结束语 (39)6.1回顾 (39)6.2展望 (39)七、致谢 (40)参考文献 (40)一、前言1.1语音识别的发展历史作为智能计算机研究的主导方向和人机语音通信的关键技术,语音识别技术一直受到各国科学界的广泛关注。

基于MATLAB的身份证号码的识别算法

基于MATLAB的身份证号码的识别算法
第 3 第 2期 3卷21 0 _ 4月 2年 Nhomakorabea华









Vo No 2 L33 . Apr 2 2 , 01
J un lo r h n n t u e o a e n e v n y a d Hy r e e ti P w r o r a f t C i a I s tt f No h i W trCo s r a c n d o l cr o e c
见 表 1 .
表 1 阿拉 伯 数 字 的 欧 拉 数
相 差很 大 .
2 欧拉 数为 0时 , 体上 下 比大 于 1的是 数 字 ) 整
1 7, 于 1的是 4 和 1 不 多 的是 3 上 部 左 右 和 小 , 差 , 比中, 右多 的是数 字 7 对 称 的是 1 , .
第3 3卷 第 2期
邱 道 尹 , : 基 于 MA L B 的身 份 证 号 码 的识 别 算 法 等 TA
9 3
8的欧 拉 数 与其 他 9个 数 字 的欧 拉 数 不一 样 , 字 数 0 6 9的欧拉数 一样 , ,, 剩下 的 6个 数 字 欧拉 数 一样 , 所 以 欧 拉 数 为 一 个 特 征 . 0个 数 字 的 欧 拉 数 1
(笪 H 堡 堡 一 f 坌 堡 f !坌 坚}
图 1 总 体 方 案 流 程
化 的影 响 , 防止拍 摄 到 的 身份 证 图像 表 面有 很 亮 的 反光 , 造成 号 码体 被遮盖 等 , 图 3所示 . 如 构成 装置 的光 源采 用稳 定 的 内置环 形光 源近距 离照 射 , 管为 1 , 灯 OW 固定 于装 置最上 方 . 了避免 为 获得 的身 份证 图像 出现 很 亮 的 白斑 点 , 管 下方 一 灯

基于MATLAB软件的罗马数字模式识别

基于MATLAB软件的罗马数字模式识别
K e wor s y d M ATL AB ANN Pat r r c g iin ten e o t n o
0 l0 0 0 1 0 0 0 0 0
0 引 言
MA L B软件包含 了被称为 Tobx的各类 应用 问题 的求 TA olo
10000010000 ] 每个罗马数 字都可 以用 1 7= 7个 元 素组 成一 个列 矩 1 7 阵, 输入样本矩阵则 由分别表示 1 罗马数 字 的列 矩阵 , 0个 组成
基 于 MA L B软 件 的 罗马 数 字 模 式 识 别 T A
袁慧梅 宋 宇
( 首都师范大学信息工程学院 北京 10 3 ) 00 7
摘 要
提出 了利用神经网络的分类功能 , 并借助 于 MA L T AB软件 的神 经 网络工 具箱 , 采用具 有 自适 应 学习速率和 附加 动量 因
本文就是利用神经 网络 的分类功能 , 并借助 于 M T A A L B软 件的神经 网络工具箱 , 采用具 有 自适应 学 习速率和 附加动量 因
子的 B P型神经 网络 , 而实现罗 马数 字的模式 识别。 从
1 3 网络结 构 的设计 .
由以上分析可知 , 设计 的神经 网 络需 要具 有 1 7=7 所 1 7
维普资讯
第 2 第 9期 4卷
20 0 7年 9 月
计 算机应 用与软件
Co u e p i ain n ot r mp t rAp lc to s a d S fwa e
V0 . 4 No 9 12 .
S p. 0 7 e 2 0
含层 的 B P网络 。
对 于隐含层 神经元个 数的选取 , 理的办法是 : 合 在能解决 问 题 的前 提下 , 再到

利用Matlab神经网络工具箱在VC++.net中进行手写体数字识别

利用Matlab神经网络工具箱在VC++.net中进行手写体数字识别
( b i tmoieId sre n t ue hy n4 2 0 , ia Hu e o t n u t sIsi t ,S ia 4 0 2 Chn ) Au v i t
Ab t a t A meh d i + . e a r s n e sr c : t o n VC + n tw s p e e td.wh c s c ri d o t t t b e gn al g te i h i a r u h Ma l n i e c l n e wi a i h f n t n r vd d b t b n u a ew r o l o .h a d r t n d gt lr c g i o s i l - u c i s p o i e y Mal e r l n t o k t ob xT e h n w t ii e o n t n wa mp e o a i e a i me td w t h d a tg s o h o ru n e a e p o r mmi g c p b l y i n e i t e a v n a e f t e p we l i tr c r g a h f f n a a i t n VC+ n ta d t e i +.e n h f n t n d ai g w t o l a e r b e t b t r g a i t r c iey i + .e n t b u ci e l i c mp i t d p o l msi Ma l p o m e a t l VC +n t d Mal . o n h c n a o r n v n a a Ke r s C+ . e ;n u a ewo k;Mal b e gn y wo d :V + n t e r ln t r t n i e;h n w t n d gt l e o n t n a a d r t ii c g i o i e a r i

基于Matlab的神经网络数字识别系统实现

基于Matlab的神经网络数字识别系统实现

写体 数 字 字符 有 所 限制 , 即 需要 有 一 定 的 工 整 度 。 通 过 对 真 实 图 片 的 处 理 , 本 系统 可对 印 刷 体 数 字 达 到 近 百 分之 百 的 识
别率 ,对较工 整的手 写体 数字 能到达近 百分之八 十 的识别 率。 关键 词:M t b al 编程 ;数字识别 ; 图像预处理 ;特征提取 a


要:通过 M t b al 编程 能形 成一种 可 以识 别扫描 到 计算机 里的 图片上 的数字 的神经 网络 数字识 别 系统 ,此 系统 能达 到 a 定的识别精度 ,其 有别于一般 的数字识 别 系统 将印刷体和 手写体 字符分开 考虑 ,而是 将 两者 结合 在一起 考虑 ,并对手
D : 1 .9 9 Ji n1 71 5 62 1 .9 0 OI 3 6 / .s.6 —6 9 .0 1 . 1 0 s 0 1
l 系统实现思想 字符识别系 统一般分为预处理 、特征提取和 分类 器三
部 分 。 其 中 , 预 处 理 包 括 将 图 片 从 模 拟 图像 到 进 行 二 值 化 、 字 符 分 割 、 归一 化 等 过 程 ; 特 征 提 取 和 分 类 器 的 设 计 是 整 个 系 统 的核 心 部 分 。 通 过 对 各 个 部 分 分 别 进 行 编 程 处 理 来 实 现 ,将 每 部 分 编 为 可 调 用 的 函数 ,最 后 统 一 对 函 数 进 行 调 用 , 清 晰 方 便 。下 面 分 别 对 每 部 分 模 块 实现 进 行 介

9 c t* O ) : :n 2 l) )
l t ( c t 1 * + n 2 = u ( t m ) e t (n - ) 5 c t ) s m A e p ;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机与信息工程学院本科生毕业论文基于BP神经网络的手写数字识别算法的设计与实现班级: 13汉班学号: ************名:***指导教师:***2017 年 3 月 31 日毕业论文目录1 绪论 (1)1.1 图像识别的提出 (1)1.2 图像识别的现状与发展趋势 (1)2 BP神经网络的概述 (2)3 手写体数字识别的实现过程 (4)3.1 整体线路图 (4)3.2 算法流程 (5)3.3 图像预处理 (10)3.4 结果分析 (10)4 结论 (11)参考文献 (12)全文共13 页4834 字基于BP神经网络的手写数字识别算法的设计与实现计算机与信息工程学院 2013级汉班江晓雪 20131102507指导教师李艳玲副教授摘要本文实现了基于MATLAB关于神经网络的手写数字识别算法的设计过程,采用神经网络中反向传播神经网络(即BP神经网络)对手写数字的识别,由MATLAB对图片进行读入、灰度化以及二值化等处理,通过神经网络进行训练和测试。

实验证明:该神经网络对手写数字的识别可以达到95.65%。

关键词手写数字识别;BP神经网络;MATLAB语言1 绪论1.1 图像识别的提出图像识别在信息技术发达的今天已经占据了很重要的地位,在我们实际生活中也有很多应用。

所谓的图像识别,就是指通过计算机对图像进行相应的处理、分析,来达到识别不同模型的目标和任务的一种技术。

对于它的提出,简单的来说,它的发展经历了三个阶段:第一个是文字识别、第二个是数字图像处理与识别、第三个是物体识别。

第一种相对来说比较简单,它的研究是从1950年开始的,一般情况是识别字母、符号和数字,无论是印刷体识别还是手写体识别,它的应用都非常广泛,但是也伴随着,这个识别的过程会更加的耗时、费力,无论是人力还是物力,都会有很大的损失;第二种就是我们所说的数字图像处理与识别,在图片的识别过程中,图片识别会有一定的误差,也会带来小小的麻烦;第三就是物体识别,而物体的识别主要指的是:在三维世界中,对于个体、环境的感知和认识进行识别,这不同于二维世界的认知,相对来说是更高级的计算机图像识别,它是以二维世界中对数字图像和模拟图像处理的办法为依据,进行更高一级的,并且结合了现代人工智能技术等学科的研究目标,研究成果已经被广泛的应用在各种工业探测机器人上,为人们的安全提供了很大的帮助。

1.2 图像识别的现状与发展趋势随着网络的发达、电子的信息化,图像识别的应用已经非常广泛,而主要的研究工作也包括各行各业,整理以下几点对其应用的广泛度进行说明:⒈在生物学中,对生物的原型进行研究。

从生物的脑细胞结构、物体解剖等其他科学研究的方向对生物的体系结构、神经结构、神经细胞组织等生物的原型结构及其功能机理进行研究,增强对生物学更加全面的理解。

⒉在实际应用中,建立我们需要的理论模型。

根据需要应用的信息在生物学中的应用,建立需要的生物原型,也可以建立类似神经元、神经网络这样不可见的理论模型,以便可以让其更加有效的应用在生活中。

建立我们生活中不能直观表现的事物模型,以便我们可以更方便的、更直观的理解事物的本质。

⒊在信息时代中,建立网络模型以及算法研究。

就是通过上面所说的,建立相应的理论模型,在这个基础上加以理解,建立我们所需要的网络模型,实现计算机应用,主要应用在网络学习算法的研究,这方面的研究工作也被人们称为技术模型研究。

⒋信息时代的发展,让我们在生活中有很多的应用,例如:完成某种函数图像的绘制以及对其变化的形式进行分析、对图片信号的处理、模式识别等功能,建立需要的应用系统、制造机器人等等。

通过上面的说明,也就是说从开始根据生物学原理的应用,直到建立需要的神经网络模型,最后应用到图像识别当中,可以看出其模型的建立是在生活中实例的基础上,其可靠性和准确性是显而易见的,这样就大大的增加了可信度,与此同时,也减少了工作中不必要的麻烦与困扰。

而在网络信息发达的今天,人类在基本粒子、宇宙空间、生命起源等科学领域方面都已经显现出很高的兴趣度,而这其中难免会有图像提取后的处理工作,所以图像识别的应用就会越来越广泛。

2 BP神经网络的概述反向传播(Back-Propagation,BP)学习算法简称BP算法,采用BP算法的前馈型神经网络简称BP网络。

BP网络是多层感知器的一种,它具备多层感知器的特点,同时也有自己的特点。

多层感知器包括输入层、隐藏层、输出层,其中隐藏层可以有多个,而我们BP网络中隐藏层只有一个,其简单构造如图所示:图1 多层感知器结构图而我们用到的BP 网络中的具体信号流如图所示,它有一个反向传播的过程,这也是对传播进行调整,使精确度更高的一种办法。

如图所示,其中有两种信号流通:图2 多层感知器的信号流第一:函数信号简单来说就是信号进入输入层,然后通过隐藏层到达输入层,通过输出层输出所得值,就可以完成一个函数信号。

第二:误差信号误差信号就是在逆向的传播的过程中传输的信号。

其中,有两个重要参数。

一个是函数信号即sigmoid 函数,还有一个就是权值的梯度运算即梯度向量。

(注:sigmoid 函数、权重的修正函数,如图所示。

)e z z g z sigmoid -+==11)()( (1))()()()(1)(l ij l ij l ij l ij mm D J ∆+∆==∂∂λθθ (2) 通过对两个参数的调整,完成整个算法的应用。

3 手写体数字识别的实现过程3.1 整体线路图整体流程图如图3所示:部分文件调用流程图如图4所示:图3 整体流程图图4 整体流程图3.2 算法流程图片识别要经过训练好的模型来提取我们要得到的手写数字,而模型是经过多次的训练得到的,为了提高程序的准确度、增加可信度的一种数据集,所以,程序的开始,我们设计了多个可用的数据,来训练我们的神经网络。

如图3所示,一开始可视化我们的手写体测试数据,每个数字都保存在20*20的像素里,其中设置25个隐藏单位,0到9共10个数字标签。

将我们需要的参数保存到需要的函数中,也就是我们用到的θ1和θ2中。

也就是保存在我们用的.mat文件中的数据,如图5所示。

图5 手写体训练数据图6 数据保存文件注:其中,.mat文件中保存的是二位数组,用来保存我们测试需要的数据。

其次,使用前馈神经网络,当参数λ=0时,运行nnCostFunction.m文件,而文件再调用sigmoidGradient.m、sigmoid.m两个参数文件(其中,sigmoid- GradiEnt.m文件,就是对sigmoid函数的求导,为得就是得到sigmoid函数的梯度值,以便更好的了解数值变化的程度。

而sigmoid.m文件中保存的就是sigmoid函数)。

运行结果是损失函数J=0.287629。

其中也会实现损失函数的正规化和梯度。

而为了检测它的正确性,又使λ=1进行测试,调式,看结果是否符合要求,来检测正确性,得到的结果如图8所示,也是通过两组数据的对比,让我们更加清晰的体会它的不同之处。

图7 实验数据对比图∑∑==----=m i K k k i i k k i i k x h y x h y m J 11)()()()()]))((1log()1()))(log(([1)(θθθ (3)])()([2)]))((1log()1()))(log(([1)(1012512)2(,25140012)1(,11)()()()(∑∑∑∑∑∑======++----=j k k j j k k j m i K k k i i k k i i k m x h y x h y m J θθλθθθ (4)第三,sigmoid 函数的运行。

运行文件ex4.m 文件中,提到函数g = sig- moidGradient (),是指调用sigmoidGradient.m 文件,文件中写了sigmoid 函数的梯度表达式,而其中的g(z)函数,是sigmoid 函数的方程式, ))(1)(()()(z g z g z g dzd z g -==' (5)e z z g z sigmoid -+==11)()( (6)通过对文件的调用,输入测试值1、-0.5、0、0.5、1,可以得到输出的梯度数,而当z=0时,可以得到导数值为0.25。

越接近于0,它的变化越明显。

sigmoid 函数梯度指的是标量场中变化的方向,而梯度值的大小就是用来表示变化的大小,简单来说就是我们数学中的斜率,而这么说也只是为了让人们更好的接受。

对于sigmoid 函数的测试,我们用一组数据对它进行测试,得到的结果如图 8所示:图8 梯度函数测试值初始化参数(权重W文件的调用说明),文件中使用randInitializeWei- ghts.m文件,来初始化θ1,θ2,产生随机变量,为下边的调用起到很重要的作用。

上文BP神经网络中也曾提到过,权重值是整个过程中很重要的一个参数。

而我们的randInitializeWeights.m文件中,也对其进行了新的定义,给定一个较小的ε值,计算出新的W值。

这个文件的作用是为了让我们打破对称而训练神经网络。

其中初始化W的一部分代码如图所示:图9 初始化权重值其中,L_out,L_in是ex4.m文件中传输的数据。

最后,就是这个程序最重要的部分,神经网络的应用。

而神经网络的形成与训练又被分为以下几个部分来实现:初始化神经网络、实现反向传播、实现正则化、训练NN。

而具体的函数调用部分可以从图3代码调用流程图看见,初始化神经网络用randInitializeWeights.m文件进行数据初始化。

而我们的显示界面并没有显示初始化以后的数据,这部分是不可见的。

通过文件调用图可见,实现反向传播和正规化都是运用了同一个文件,也就是说,内部调用的文件也是相同的,只是λ值不同,实现反向传播时λ=0,写在函数内部,进行数据判断,正则化则定义好了λ值,即λ=3,可以看到,因为λ值得不同,运行结果的输出情况也有所不同。

在checkNNGradients.m文件中,还引用了三个.m文件。

运行后得到两列相似的数列,如图10所示。

图10 检查神经网络这就是用于检测神经网络正确性的测试数据,通过测试数据得到相对偏差,即数字输出是产生的偏差值。

这个数值小于1e-9,则可以使用于数字识别的过程中,得到的结果如图11所示,可以看出,相对偏差小于要求值,则可以进行接下来的运行。

图11相对偏差文件中通过对nnCostFunction.m文件的调用,可得到相应的测试数据,如图12所示:图12 成本函数的调试参数训练神经网络,给出训练循环次数,本次循环次数为50,调用fmincg.m文件。

得到下列一组训练次数为50的数字,得到如图13所示。

相关文档
最新文档