bk?bk?ekk?1,??2,?…,m (4-7)
其中:
4.2.4 BP神经网络参数
1.隐含层节点数
隐含层节点数在一定程度上对预测准确的比率起不少作用,有: ①节点数太少:限制了网络的学习,影响训练的准确率; ②节点数太多:会加大训练的时长,容易过拟合了网络。 可借助以下(4-8)的式子进行确定:
l?n?1
l?(m?n)?a
l?log2n (4-8)
其中,n、l、m分别是输入层、隐含层、输出层的节点数量;a是介于0到10范围内的常数[8]。一般是先根据公式(4-8)估计l的大概范围,再用试凑来找到最佳值。普遍来说,适当增多节点数,分类的误差值一般是先减小而后增大。
2.隐含层
隐含层分两种,第一种是单层,另一种是多层。它们的区分,在于层数的不同,当然,它们之间也有联系。多个单隐含层一起构成了多隐含层,因此后者具有更高的测试准确度,更强的泛化性能和更长的时训。根据网络训练时长和精准度决定隐含层层数的多少,在精度要求实现下,单一的映射选取单层可以加快效率;为了提高网络测试的精准度,复杂的则需要选取多层的。 3.学习速率
学习率?的大小在[0,1]范围之内,要得到越大程度的权值修改和越快的网络学习速率,就需要选取越大的?。?过大会导致震荡现象在权值的学习过程中出现,?过小将造成网络过慢收敛,难以得到不变动的权值。变学习速率方法是指伴随着学习不停地进行,在进化一开始拥有较大的学习率?和收敛快速的网络,将会持续地减小并最终趋向稳定。 变学习速率计算公式如下:
?(t)??max?t(?max??min)/tmax(4-9)
式中,?max为最大学习速率;?min为最小学习速率;tmax为最大迭代数;t为当前迭代数。 4.附加动量
22
利用梯度修正法进行权值和阈值的学习,过程很缓慢,因为并未考虑经验的积累,而是从预测误差的负梯度角度进行修正。利用附加动量的途径可以使得该问题有所改善。 附加动量的权值学习公式:
??(k)???(k?1)????(k)?a?[??(k?1)???(k?2)](4-10)
式中,??(k)、??(k?1)、??(k?2)分别为k、k?1、k?2时刻的权值;a为动量学习率。
4.2.5 BP神经网络函数
P:输入数据矩阵;T:输出数据矩阵;S:隐含层节点数;
TF:节点传递函数。有:handlim、handlims、purelin、tansig、logsig等; BTF:训练函数。有:traingd、traingdm、traingda、traingdx、trainlm等; BLF:网络学习函数[8]。
NET:待训练网络;X:输入数据矩阵;T:输出数据矩阵;
Pi:初始化输入层条件;Ai:初始化输出层条件;
[8]
net:训练好的网络;tr:训练过程记录。
x:输入数据;y:网络预测数据[8]。
4.节点传递(转移)函数
1)logsig函数:y?1/?1?exp(?x)?。 2)tansig函数:y?2/?1?exp(?2x)??1。 3)purelin函数:y?x。
由于BPNN中预测精准度受到隐含层同输出层节点传递函数影响,一般来说,
logsig函数多用于前者,而purelin函数多用于后者。
23
4.3本章小结
本章概述了BPNN的相关理论,介绍了该网络特点,着重介绍了其原理技术、以及其如何构建、训练和实现预测的能力,并说明了相关函数。
第5章 手写数字识别的设计和实现
5.1 基于SVM的手写数字识别
本次设计采用的开发平台是MATLAB,SVM工具为LIBSVM工具箱。MATLAB自带的SVM实现函数与LIBSVM的差别:
① MATLAB中的SVM实现函数仅有的模型是C-SVC;而LIBSVM工具箱有C-SVC、nu-SVC、one-class SVC和nu-SVR等多种模型可供使用。
② MATLAB中的SVM实现函数只能解决分类问题;而LIBSVM工具箱不仅支持分类问题,也支持回归问题。
③ MATLAB中带有的SVM实现函数只能解决二分类,而对于多分类问题是无法应对的;而LIBSVM采用一对一法支持多分类。
24
④ MATLAB中带有的SVM实现函数若是使用RBF核函数时是不能对核参gamma作调整处理;而LIBSVM工具箱可以。
⑤ LIBSVM工具箱采用序列最小最优算法(SMO)处理最优问题;而MATLAB中的SVM处理最优问题有:经典二次规划、序列最小最优和最小二乘法等等。
5.1.1 设计目标
SVM可用于模式类别区分及非线性回归,并且在其他领域中也体现了其优异的泛化性能。关于SVM的研究和拓展,包括算法本身的改进和实际应用,都持续被提出来。因此,借助SVM这种方式作识别的辨认处理已成为大致的趋向。
对于SVM在手写数字识别中的应用,目前已经从不同的方面提出了许多改进算法,但仍然存在以下问题:
(1)训练大规模数据集的问题。目前尚未找到同大范围样本有作用的SVM及分类算法。 (2)核函数与核参数的选择问题。支持向量机方法目前存在最大的困难就是核的攫取,怎样按照现实样本数据选择和建立合适的核函数、怎样设置参数等尚缺少相关的知识来决定。
针对这些问题,本设计做了较好的平衡,设计了一个简单实用的识别程序,设计目标为:找到恰当的分类方法和训练数据集,将识别过程流程化,找到适合的核函数,对SVM的有效性作检验。
5.1.2样本图片选取
为提高识别的准确度和识别速度,分析识别率和误判情况,选取了两组样本图片进行实验。从“0”至“9”,每个手写数字图片名称统一为“num*_*”,第一个*为图片上的数字值,第二个*为该数字的编号。如此给每张图片制作标签,用来判断识别的准确率。 (1)样本图片I
训练样本I:数字图片从“0”到“9”各有5张,像素大小是50?50,格式为“.jpg”。 测试样本I:数字图片从“0”到“9”各有3张,像素大小是50?50,格式为“.bmp”。
25
图5-1 训练样本I图片
图5-2 测试样本I图片
(2)样本图片II
训练样本II:数字图片从“0”到“9”各有10张,像素大小是240?240,格式为“.bmp”。 测试样本II:数字图片从“0”到“9”各有3张,像素大小是240?240,格式为“.bmp”。
26
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于SVM和BP神经网络的手写数字识别(6)在线全文阅读。
相关推荐: