Matlab的神经网络工具箱实用指南
文章摘要:第一章是神经网络的基本介绍,第二章包括了由工具箱指定的有关网络结
构和符号的基本材料以及建立神经网络的一些基本函数,例如new、init、adapt和train。第
三章以反向传播网络为例讲解了反向传播网络的原理和应用的基本过程。
第一章 介绍
1.神经网络
神经网络是单个并行处理元素的集合,我们从生物学神经系统得到启发。在自然界,网络功能主要由神经节决定,我们可以通过改变连接点的权重来训练神经网络完成特定的功能。
一般的神经网络都是可调节的,或者说可训练的,这样一个特定的输入便可得到要求的输出。如下图所示。这里,网络根据输出和目标的比较而调整,直到网络输出和目标匹配。作为典型,许多输入/目标对应的方法已被用在有监督模式中来训练神经网络。
神经网络已经在各个领域中应用,以实现各种复杂的功能。这些领域包括:模式识别、鉴定、分类、语音、翻译和控制系统。
如今神经网络能够用来解决常规计算机和人难以解决的问题。我们主要通过这个工具箱来建立示范的神经网络系统,并应用到工程、金融和其他实际项目中去。
一般普遍使用有监督训练方法,但是也能够通过无监督的训练方法或者直接设计得到其他的神经网络。无监督网络可以被应用在数据组的辨别上。一些线形网络和Hopfield网络是直接设计的。总的来说,有各种各样的设计和学习方法来增强用户的选择。
神经网络领域已经有50年的历史了,但是实际的应用却是在最近15年里,如今神经网络仍快速发展着。因此,它显然不同与控制系统和最优化系统领域,它们的术语、数学理论和设计过程都已牢固的建立和应用了好多年。我们没有把神经网络工具箱仅看作一个能正常运行的建好的处理轮廓。我们宁愿希望它能成为一个有用的工业、教育和研究工具,一个能够帮助用户找到什么能够做什么不能做的工具,一个能够帮助发展和拓宽神经网络领域的工具。因为这个领域和它的材料是如此新,这个工具箱将给我们解释处理过程,讲述怎样运用
它们,并且举例说明它们的成功和失败。我们相信要成功和满意的使用这个工具箱,对范例和它们的应用的理解是很重要的,并且如果没有这些说明那么用户的埋怨和质询就会把我们淹没。所以如果我们包括了大量的说明性材料,请保持耐心。我们希望这些材料能对你有帮助。
这个章节在开始使用神经网络工具箱时包括了一些注释,它也描述了新的图形用户接口和新的运算法则和体系结构,并且它解释了工具箱为了使用模块化网络对象描述而增强的机动性。最后这一章给出了一个神经网络实际应用的列表并增加了一个新的文本--神经网络设计。这本书介绍了神经网络的理论和它们的设计和应用,并给出了相当可观的MATLAB和神经网络工具箱的使用。
2.准备工作 基本章节
第一章是神经网络的基本介绍,第二章包括了由工具箱指定的有关网络结构和符号的基本材料以及建立神经网络的一些基本函数,例如new、init、adapt和train。第三章以反向传播网络为例讲解了反向传播网络的原理和应用的基本过程。
帮助和安装
神经网络工具箱包含在nnet目录中,键入help nnet可得到帮助主题。 工具箱包含了许多示例。每一个例子讲述了一个问题,展示了用来解决问题的网络并给出了最后的结果。显示向导要讨论的神经网络例子和应用代码可以通过键入help nndemos找到。
安装神经网络工具箱的指令可以在下列两份MATLAB文档中找到:the Installation Guide for MS-Windows and Macintosh 或者the Installation Guide for UNIX。
第二章 神经元模型和网络结构 1.符号 数学符号
下面给出等式和数字中用到的基本符号: 标量--小写的斜体字.....a,b,c
向量--小写加粗的非斜体字.....a,b,c 矩阵 - 大写加粗的非斜体字.....A,B,C 向量表示一组数字 数学符号和字符的等价
从数学符号到字符的转换或者反过来可以遵循一些规则,为了便于今后引用我们将这些规则列出。为了从数学符号变为MATLAB符号用户需要:
变上标为细胞数组标号
例如
变下标为圆括号标号 例如
和
变圆括号标号为二维数组标号 例如
变数学运算符为MATLAB 运算符和工具箱函数 例如
2.神经元模型 单神经元
下图所示为一个单标量输入且无偏置的神经元。
这个输入标量通过乘以权重为标量w的连结点得到结果wp,这仍是一个标量。这里,加权的输入wp仅仅是转移函数f的参数,函数的输入是标量a。右边的神经元有一个标量偏置b,你既可以认为它仅仅是通过求和节点加在结果 wp上,也可以认为它把函数f左移了b个单位,偏置除了有一个固定不变的输入值1以外,其他的很像权重。标量n是加权输入wp和偏置b的和,它作为转移函数f的参数。函数f是转移函数,它可以为阶跃函数或者曲线函数,它接收参数n给出输出a,下一节将给出各种不同的转移函数。注意神经元中的w和b都是可调整的标量参数。神经网络的中心思想就是参数的可调整使得网络展示需要和令人感兴趣的行为。这样,我们就可以通过调整权重和偏置参量训练神经网络做一定的工作。或者神经网络自己调整参数以得到想要的结果。
在这个工具箱里所有的神经元都提供偏置,我们的许多例子中都用到了偏置并且假定它在这个工具箱的大多数情况下都要用到。可是,如果你愿意的话,你也可以在一个神经元中省略偏置。
正如上面所提到的,在神经元中,标量b是个可调整的参数。它不是一个输入。可是驱动偏置的常量1却是一个输入而且当考虑线性输入向量时一定要这样认为。
转移函数
在这个工具箱里包括了许多转移函数。你能在\Function Graphs\中找到它们的完全列表。下面列出了三个最常用的函数。
上图所示的阶跃转移函数限制了输出,使得输入参数小于0时输出为0,大于或等于0时输出为1,在第三章中我们将用它来进行分类。
工具箱中有一个函数hardlim来数学上的阶跃,如上图所示。我们可以输入以下代码