专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档
共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。
文档为本人课程实验结果绝对原创,处理分析对象是图像基于一维的信号处理,分析相關频谱图设计滤波器等,含有完整MATLAB代码
0 | 0 |
为了良好体验不建议使用迅雷下载
会员到期时间: 剩余下載个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
为了良好体验不建议使用迅雷下载
0 | 0 |
为了良好体验,不建议使用迅雷下載
您的积分不足将扣除 10 C币
为了良好体验,不建议使用迅雷下载
开通VIP会员权限免积分下载
基于 MATLAB 的手写体数字识别算法的实現与分析
手写数字识别是模式识别领域的一个重偠分支,它研究的核心问题是:如何 利用计算机自动识别人手写在纸张上的阿拉伯数字手写体数字识别问题,简而 言之就是识别出 10 个阿拉伯数字由于数字的清晰程度或者是个人的写字习惯 抑或是其他,往往手写体数字的性状、大小、深浅、位置会不大一样手写体识 别┅般包括 3 个阶段:预处理、特征提取、分类识别。 手写数字识别前景广阔 广泛应用于表格中数字的识别、 汽车牌照的数字自 动识别和成績单的识别等。 实现数字的自动识别能够给人们的工作和生活带来很 大的方便对于该领域的研究具有重要的理论价值: 一方面, 阿拉伯數字是唯一的被世界各国通用的符号 对手写数字识别的研 究与文化背景无关,这样就为各国、 各地区的研究工作者提供了一个自由平等嘚 舞台大家可以在这一领域施展才智,各抒己见 另一方面,由于数字识别的类别数较少(只有 0 到 9 十个类别) 有助于做 深入分析及验證一些新的理论。 这方面最明显的例子就是人工神经网络相当一 部分的人工神经网络模型都以手写数字识别作为具体的实验平台, 验证悝论的有 效性评价各种方法的优缺点。 数字识别的算法较多 当前运用较好的主流算法以统计、 聚类和分类算法为 主,如 Bagging 算法、支持向量机算法、神经网络等手写数字识别难度在于: 一、数字相似性大,但字形相差不大;二、数字虽然只有 10 种但笔划简单, 同一个数字寫法差别大;三、手写数字存在断笔和毛刺对识别造成影响。本文 选择分类算法中的决策树算法、支持向量机算法、神经网络对 MNIST 数据集進 行数字识别并对分类效果进行比较分析。
分类器识别是实现手写体数字识别的最终关键 基于距离的分类器和神经网 络分类器这两大類是目前现有的最主要的分类器。分类是数据挖掘的重要分支 可用于提取、描述重要数据的模型或预测未来的数据趋势[1]。
ID3 算法存在着属性偏向,对噪声敏感等问题
CART 算法生成的决策树精度较高,但是当其生成的决策树复杂度超过一定 程度后随着复杂度的提高,分类精确喥会降低因此,用该算法建立的决策树 不宜太复杂[4]
2.1.6 經典决策树算法的比较
图 2-1 支持向量机
可以计算出分类间隔为 2/||w||因此构造最优超平面的问题就转化为在约 束式下求:
为了解决该个约束最优化问题,引入 Lagrange 函数:
式中ai>0 为 Lagrange 乘数。约束最优化问题的解由 Lagrange 函数的鞍点 决定并且最优化问题的解在鞍点處满足对 w 和 b 的偏导为 0,将该 QP 问题转 化为相应的对偶问题即:
计算最优权值向量 w*和最优偏置 b*,分别为:
对于线性不可分情况SVM 的主要思想是将輸人向量映射到一个高维的特
征向量空间,并在该特征空间中构造最优分类面将 x 做从输入空间 Rn 到特征 空间 H 的变换Φ ,得:
2.3.1 人工神经网络的原理
应线性网络和交替投影网络等。 前馈网络是一种具有佷强学习能力的系统结构 比较简单, 且易于编程 前馈网络通过简单非线性单元的复合映射而获得较强的 非线性处理能力,实现静态非線性映射BP 网络主要特点是能够实现从 n 维到 m 维的非线性映射,它还可以采用梯度下降法实现快速收敛模型如下图所示:
图 3-3 反向传播网络 反向传播算法的具体流程如下: (1)对于给定的样本集 D = {(x,t )},初始化网络结构 d ×nH ×c 初始化权 系数 ω ,学习率 η,阈值 θ 。 (2)根据样本集 D 更噺权系数 ω : ω ← ω - η?J( ω )/ ?ω jk jk jk (17)
(18) 如果 ΔJ < 0 结束训练,并认为此时的 ω 为最
优否则转第 2 步继续进行循环。 对于反向传播模型的初始化洳下: 输入层:单元 i 的输入:xi 单元数量:d 单元 i 的输出:xj 单元 i 的激活函数:线性函数 隐层:单元 j 的净输入:netj 单元数量:nH 单元 j 的输出:yj 单元 j 的噭活函数:非线性函数 输出层:单元 k 的净输入:netk 单元数量:c
单元 k 的输出:zk 单元 k 的激活函数:非线性函数 (1)学习速率 学习速率? 直接影响权系数调整时的步长学习速率过小,导致算法收敛速 度缓慢学习速率过大,导致算法不收敛学习速率的典型取值? ? 0.1 。另外学 习速率可变 误差函数的局部极小值调整权系数的目标是使误差函数取得最小值。 但是 采用梯度下降法(Gradient Descent Procedure)不能保证获得最小值, 而只能 保证得到一个極小值 如果训练过程无法使误差函数降低到预期的程度,一种常 用的方法是:再一次对权系数进行随机初始化并重新训练网络。 (2)學习曲线 样本集的划分: 一般情况下 可把已知的样本集划分为三个子集, 即训练集、 确认集、测试集 训练集:用来调整权系数,使误差函数尽可能变小 确认集: 用来初步验证神经网络对未来新样本的分类能力,并据此确定最佳的权 系数神经网络的训练过程需要采用訓练集及确认集共同完成。 测试集: 在训练过程最终结束后再采用测试集对网络的分类性能进行最后 测试,用以评估神经网络在实际应鼡中的实际性能
图 3-4 Hopfield 网络 Hopfield 网络中神经元之间的权值一般是对称嘚但每个神经元都没有到自 身的联接。 神经元 i 和神经元 j 之间相互连接的权值相等 即 wij=wji。 因此此时 网络一定能够收敛到一个稳定值。否則则网络可能会不稳定,无法收敛 离散 Hopfield 网络每个单元均有一个状态值,它取两个可能值之一 设在某一个时刻 t,神经元 i 的状态为 Ui(t)则茬 t+1 时刻的状态为:
其中,wij 为神经元 i 何 j 之间的连接权值?i 为第 i 个神经元的阈值。 Hopfield 网络算法的流程如下: (1)设置互联权值
式中 为 S 类采样的苐 i 个分量,可为+1 或-1;采样类别数为 m节点数 为 n。 (2)对未知类别的采样初始化 yi(0)=xi 式中yi(t)为节点 i 在时刻 t 的输出;当 t=0 时,yi(0)就是节点 i 的初始值 xi 为輸入采样的第 i 个分量,也可为+1 或-1 (3)迭代运算
图 3-2 预处理之后的数据集
3.4 决策树分类实验
图 3-4 决策树预测类别与实际类别的对比
Step2:对训练数据集及测试数据集进行归一化将数据映射到[0,1]區间,这 里使用的方法是将每一项数据除以最大值 255也可以使用 Matlab 自带的归一 化函数 mapminmax(),效果一样。 TrainItem=TrainItem/255; TestItem=TestItem/255; Step3:利用训练集及其类标签建立分类模型并输絀分类模型的相关参数。 %训练模型
实验结果表明,随着使用的训练数据集样本数目的增多 SVM 训练模型的 准确率逐渐升高,對测试数据的预测效果越好没有出现过拟合现象。在时间开 销上其增长速率要高于准确率的增长速度,但是在可接受的范围内
3.6 人工鉮经网络分类实验
图 3-5 神经网络界面
Step3:点击 Import,将输入数据和输出数据导入工作空间
图 3-6 导入数据 Step4:点击 New 按钮,创建一个新的神经网络并设置它的名称、类型、 输入输出及隐层神经元的个数等参数。确认无误后点击 Create 按钮神经网络 创建成功。创建好的神经网络抽象模型如下图所示:
图 3-7 神经网络模型 Step5:导入训练数据集及训练数据标签点击 Train 按钮使用训练样本对神 经网络模型进行训练,训练过程的相关参数如下图:
图 3-8 模型参数 Step6:模型训练完成之后点击 Simulate 按钮对测试数据集进行分类,将 分类结果和实验误差输出
图 3-9 性能 b. Training State 图 3-10 显示了神经网络模型训练过程的相关状态在第 153 次迭代时,神 经网络梯度为 0.0010172交叉验证的次数为 6 次。该数据表示在神经网络利用 训练数据集进行训练的过程中验证数据集的误差曲线连续 6 次迭代不再下降。 如果随着网络的训练验证数据集的误差已经不再减小,甚至增大那么就没有 必要再去训练网络了, 因为继续训练下去的话再利用测试测试集对模型进行测 试的话,测试数据集的误差将同樣不会有所改善甚至会出现过度拟合的现象。
图 3-12 性能 b. Training State 图 3-13 显示了神经网络模型训练过程的相关状态在第 263 次迭代时, 神经网络梯度为 1.9263交叉验证的次数为 6 次。
此次实验利用 Matlab 工具箱对三种分类算法:决策树算法、SVM 算法和神 经网络算法进行实现通过对 MNIST 数据集进行分类,并且使鼡其真实数据标 签与预测标签进行比较能够得到各个分类算法的准确率。通过比较发现三种 分类算法在算法的执行速度以及分类的准確率方面表现出了显著地差异。
4.1 三种分类算法的比较
通过分析表 4-1 可以得出以下结论: (1)在汾类的准确率方面神经网络的准确率最高,SVM 算法次之决策 树算法的准确率最低。 (2)在算法的执行速度方面决策树算法的的运行速喥最快,神将网络算 法的运行速度较慢SVM 算法的运行速度最慢。 (3)对 MNIST 数据集的分类而言综合考虑应该选择神经网络算法,因为 该算法汾类的准确率几乎达到 100%而执行速度相对来说不是最慢的,在可接 受的范围内
4.2 决策树算法的分析
预测为 1;对数据进行归一化之后算法的准确率达到 94.53%。因此可以得出 结论:SVM 算法对于分布不均的数据集是较敏感的。 (2)随着训练数据集样本数目的增加算法的准确率越来越大,算法执荇 时间越来越长如表 4-3 所示。因此可以得出结论:使用 SVM 算法对 MNIST 数 据集进行分类时使用的训练数据集的样本越多,分类效果越好 表 4-3 SVM 算法實验结果
4.4 神经网络算法分析