- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
还有一种途径可用于确定隐单元的数目。首先使隐单元的数目可变,或者放入足够多的隐单元,通过学习将那些不起作用的隐单元剔除,直到不可收缩为止。同样,也可以在开始时放入比较少的神经元,学习到一定次数后,如果不成功的话则增加隐单元的数目,直到达到比较合理的隐单元数目为止。 3.6 初始值的选取 由于系统是非线性的,初始值对于学习能否达到局部最小和是否能够收敛的结果关系很大。一个重要的要求是:初始权值在输入累加时使每个神经元的状态值接近零,权值一般取随机数,数值要比较小。输入样本也同样希望进行归一化处理,使那些较大的输入仍落在传递函数梯度大的地方。 一般取初始权值在(-1,1)之间的随机数 3.7 期望误差的选取 在设计网络的训练过程中,期望误差值也应当通过对比训练后确定一个合适的值。 这个所谓的“合适”,是相对于所需要的隐含层的节点数来确定,因为较小的期望误差值是要靠增加隐含层的节点,以及训练时间来获得的。 一般情况下,作为对比,可以同时对两个不同期望误差值的网络进行训练,最后通过综合因素的考虑来确定采用哪一个网络。 3.8 应用举例 例1:求解函数逼近问题 有21组单输入矢量和相对应的目标矢量,试设计神经网络来实现这对数组的函数关系。 P=-2:0.2:2; T=[1.0000 1.7600 2.4400 3.0400 3.5600 4.0000 4.3600 4.6400 4.8400 4.9600 5.0000 4.9600 4.8400 4.6400 4.3600 4.0000 3.5600 3.0400 2.4400 1.7600 1.0000]; 测试集 P—test=-2:0.1:2; T—test=[1.3900 2.1100 2.7500 3.3100 3.7900 4.1900 4.5100 4.7500 4.9100 4.9900 4.9900 4.9100 4.7500 4.5100 4.1900 3.7900 3.3100 2.7500 2.1100 1.3900]; 目标矢量相对于输入矢量的图形如下: 测试矢量与实际测试矢量的图形如下: 目标矢量与实际目标矢量的图形如下: 在上述图形中,BP网络取N1,8,1,训练目标为0.01,训练次数为4,网络误差为0.3847 目标矢量与实际目标矢量的误差图形如下: 测试矢量与实际测试矢量的图形如下: 目标矢量与实际目标矢量的图形如下: 在上述图形中, BP网络取N1,8,1 训练目标为0.001 训练次数为6 网络误差为0.1281 目标矢量与实际目标矢量的误差图形如下: 测试矢量与实际测试矢量的图形如下: 目标矢量与实际目标矢量的图形如下: 在上述图形中, BP网络取N1,8,1 训练目标为0.0001 训练次数为9 网络误差为0.0207 目标矢量与实际目标矢量的误差图形如下: 测试矢量与实际测试矢量的图形如下: 目标矢量与实际目标矢量的图形如下: 在上述图形中, BP网络取N1,2,1 训练目标为0.001 训练次数为29 网络误差为0.1327 目标矢量与实际目标矢量的误差图形如下: 测试矢量与实际测试矢量的图形如下: 目标矢量与实际目标矢量的图形如下: 在上述图形中, BP网络取N1,5,1 训练目标为0.001 训练次数为7 网络误差为0.0396 目标矢量与实际目标矢量的误差图形如下: 上表表明:在经过2000次训练后(训练函数为trainlm),隐含层神经元为5个的BP网络对函数的逼近效果最好,因为它的网络误差也比较小,而且网络经过7次训练就达到了目标误差。隐含层为3的网络误差也比较小,但他们所需要的训练时间比较长(10次)。考虑网络性能的训练速度,这里将网络隐含层的神经元数目设定为5。 从上表还可以发现:就是并不是隐含层神经元的个数越多,网络的性能就越好 神经元个数 2 3 4 5 6 7 8 网络误差 0.1327 0.1179 0.1435 0.0396 0.1402 0.1238 0.1281 网络的训练误差 在上述的几种情况中,网络的隐含层神经元的传递函数为tansig,输出层神经元的传递函数为purelin,网络的训练函数为trainlm。 下面我们研究一下不同训练函数对网络性能的影响,比如收敛速度和网络推广能力等。为了比较,下面采用不同的训练函数对网络进行训练,并观察结果。 以上都是采用函数trainlm对网络进行训练,该函数的学习算法为Levenberg-Marquadt反传算法,该训练函数的优点在于收敛速度很快。当隐含层神经元数目为8,训练目标为0.001时,网络的逼近误差为0.1281,训练次数为6
文档评论(0)