第7章多层神经网络设计.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章多层神经网络设计

第7章:多层神经网络设计 前面分析可知,神经网络的性能主要取决于神经元类型、神经网络结构及相应的学习算法。因此可以说神经网络的设计,其实质就是如何选取神经元及其连接形式、如何选择学习算法,确保神经网络性能达到期望值。我们知道虽然神经网络的形式有许多种,但是用于控制系统的神经网络绝大部分属层状结构。因此,这里着重讨论多层神经网络的设计问题。 7.1 多层感知器网络设计 神经网络的设计涉及到网络的结构、神经元的个数及网络的层数、神经元的激活函数、初始值以及学习算法等。对于多层感知器网络而言,输入与输出层的神经元数可以根据需要求解的问题来确定。因此,多层感知器网络的设计一般应从网络的层数、隐含层中的神经元个数、神经元的激活函数、初始值和学习速率等几个方面来进行考虑。 在设计中应当尽可能地减小神经网络模型的规模,以便缩短网络的训练时间。下面简要地讨论一下各个环节的设计原则。 7.1.1 训练数据的处理 一、获取样本数据 设计有监督学习的神经网络,获取样本数据集是第一步,也是十分重要和关键的一步。样本数据的获取包括原始数据的收集、数据分析、变量选择以及数据的预处理,只有经过上述步骤的处理后,神经网络的学习和训练才更加有效。 二、输入数据的变换 由于Sigmoid函数的导数计算十分方便,因此神经元的作用函数多选Sigmoid型。如果神经元的作用函数为一Sigmoid函数,那么根据Sigmoid函数的导数可知,随着的增大,其导数迅速减小。当很大时,趋于0。这时,若采用BP学习算法训练神经网络,网络的权值调整量几乎为零。因此,设计者总是希望神经元工作在较小的区域,这样就需要对神经网络的输入给予适当地处理,一般取。 由于神经网络的输入取决于实际问题,如果提供给神经网络的实际数据很大,则需要做归一化处理,才能保证神经元工作在较小的区域。由于输入数据发生了变化,那么对神经网络的输出也要进行相应的处理。如将输出放大倍,的大小视实际而定,且需经验知识的积累。 三、神经网络的泛化能力 神经网络的泛化能力(Generalization Ability)也称综合能力或概括能力,是指用较少的样本数据进行训练,使神经网络能在给定的区域内达到要求的精度。或者说,用较少的样本数据进行训练,使神经网络对样本数据之外的输入也能给出合适的输出。为了提高神经网络的泛化能力,需要对数据进行相关性分析,尽量用相关性较低的数据训练神经网络。 四、神经网络的期望输出 当神经元采用标准Sigmoid型作用函数时,由于神经网络输出层各神经元的输出只能趋于1或0,而不能达到1或0。在设置各训练样本时,期望的输出分量不能设置为1或0。而将期望输出设置为0.9或0.1较为适宜。否则,可能导致神经网络熟训练不收敛。 7.1.2 神经网络的结构设计 一、神经网络的层数 对于可用单层神经元网络解决的问题,应当首先考虑用感知器或自适应线性网络来解决,尽量不用多层感知器网络,因为自适应线性网络的运算速度更快。对于一些复杂的非线性问题,单层神经网络无法解决或精度不能达到要求,只有增加层数才能达到期望的结果。这是因为单层网络的神经元数被要解决的问题本身限制,不能发挥出非线性作用函数的特长。 理论上已经证明:隐含层采用Sigmoid函数,输出采用线性函数的三层神经网络能够以任意精度逼近任何非线性函数。虽然增加神经网络层数可以更进一步降低误差,提高精度,但同时也会使神经网络复杂化,从而增加了网络权值的训练时间。而误差精度的提高实际上也可以通过增加隐含层中的神经元数目来获得,其训练效果也比增加层数更容易观察和调整。所以一般情况下,应优先考虑增加隐含层中的神经元数。 二、隐含层的神经元数 神经网络训练精度的提高,可以通过采用一个隐含层,而增加其神经元数的方法来获得。这在结构实现上,要比增加更多的隐含层简单得多。那么究竟选取多少个隐含层节点才合适?这在理论上并没有一个明确的规定。在具体设计时,比较实际的做法是通过对不同神经元数进行训练对比,然后适当的加上一点余量。 7.1.3 神经网络的参数选取 一、初始权值的选取 在神经网络设计时,初始值的选择直接影响到学习是否能够收敛及训练时间的长短。如果初始权值太大,使得加权后的输入落在Sigmoid型作用函数的饱和区,从而导致其导数非常小,而在权值修正公式中,因为,当时,则有。这使得,从而使得调节过程几乎停顿下来。所以,一般总是希望经过初始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在它们的Sigmoid型激活函数变化最大之处进行调节。所以,一般取初始权值为非常小的非零随机数。 二、学习速率 学习速率直接决定每一次循环训练中所产生权值的调整量。学习速率取得过大,可能导致学习算法不稳定;但学习速率取得过小,将

文档评论(0)

shaofang00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档