前言Neural Network Design,Second Edition本书介绍基本的神经网络结构和学习规则,重点阐述网络的数学分析、训练方法,以及网络在非线性回归、模式识别、信号处理、数据挖掘和控制系统等领域实际工程问题中的应用。
我们尽最大努力以清晰和一致的方式安排本书内容,以期本书易懂易用。书中使用了许多例子来解释每个讨论的主题。在书的最后几章,我们提供了一些学习实例,以展示神经网络在实际应用中可能遇到的问题。
由于本书是关于神经网络设计的,因此在内容的选择上依据了两个原则。首先,我们希望提供最有用且实际的神经网络结构、学习规则和训练技巧。其次,我们希望本书能够自成体系,并且章节间的过渡自然流畅。为了实现这个目的,我们将有关应用数学的各种介绍材料和章节放在了需要用到这些材料的特定主题之前。简言之,一些内容的选择是因为它们对神经网络的实际应用有重要作用,而另一些内容的选择则是由于它们对解释神经网络的运行机制有重要意义。
我们省略了许多本可以包含的内容。例如,我们没有把本书写成一个涵盖所有已知神经网络结构和学习规则的目录或纲要,而是集中精力介绍基础概念。其次,我们没有讨论神经网络的实现技术,如VLSI、光学器件和并行计算机等。再有,我们没有提供神经网络的生物学和心理学方面的基础知识。虽然这些内容都是重要的,不过,我们希望重点讨论那些我们认为对神经网络设计最有用的内容,并进行深入阐释。
本书可作为高年级本科生或一年级研究生一个学期的神经网络导论课程教材(也适合短期课程、自学或参考)。读者需要具有一定的线性代数、概率论和微分方程的基础知识。
书中每章按如下方式分节:目标、理论与例子、小结、例题、结束语、扩展阅读和习题。理论与例子是每章的主要部分,包含基本思想的发展以及例子解析。小结部分提供一个方便的列表,包含重要方程和概念,以易于工程参考。每章将大约1/3的篇幅用在例题部分,为所有关键的概念提供详细的例题解析。
下页的框图说明了各章之间的依赖关系。
第1~6章涵盖后面所有章节需要的基本概念。第1章是本书的引言,简要介绍神经网络的历史背景和一些生物学基础。第2章描述基本的神经网络结构,这一章引入的记号体系将贯穿全书。第3章给出一个简单的模式识别问题,并展示该问题可以分别由三类不同的神经网络来解决。这三类网络是本书后面的网络类型的代表。此外,这里的模式识别问题也提供了本书解决问题的一般思路。
本书主要专注于训练神经网络完成各种任务的方法。在第4章中,我们介绍学习算法并给出第一个实际算法:感知机学习规则。感知机网络虽然有其本质的局限性,但却具有重要的历史意义,并且可作为一个有用的工具来引入后面章节中强大神经网络的关键概念。
本书的主要目的之一是阐述神经网络的工作原理。为此,我们将神经网络的内容和一些重要的辅助材料组织在一起。例如,在第5、6章中提供了线性代数的相关材料,这是理解神经网络所需的核心数学知识。这两章讨论的概念将广泛用于本书后面章节。
第7章和第15章阐述主要受生物学和心理学启发的神经网络及其学习规则。它们分为两类:联想网络和竞争网络。联想网络安排在第7章,而竞争网络安排在第15章。
第8~14章以及第16章论述一类称为性能学习的方法,该方法用于训练网络以优化其性能。第8、9章介绍性能学习的基本概念。第10~13章中将这些概念用于逐步强大和复杂的前馈神经网络。第14章将这些概念用于动态神经网络。在第16章中,这些概念则被用于径向基神经网络,这类网络也用到了来自竞争学习的概念。
第17~22章和前面的章节不同。前面的章节主要关注每种网络的基础理论和相应的学习规则,要点是理解核心概念。在第17~22章中,我们讨论神经网络在实际应用中的具体问题。第17章阐述许多实际的训练技巧,第18~22章给出一系列实例研究,这些实例包括将神经网络用于函数逼近、概率估计、模式识别、聚类和预测。
软件MATLAB软件并非是使用本书所必需的,上机练习可以用任何编程语言来完成。另外,本书提供的神经网络设计演示(Neural Network Design Demonstrations)程序虽然有助于理解书中内容,但非关键所在。
不过,我们还是采用MATLAB软件包来提供本书的辅助材料。该软件使用广泛,而且由于它的矩阵/向量表示法和图形化显示,为神经网络实验提供了方便的环境。我们用两种不同的方法使用MATLAB。第一种,我们为读者准备了一些用MATLAB去完成的练习。神经网络的一些重要特性仅在大型问题中才能体现出来,这需要大量计算,不适合手工演算。利用MATLAB可以快速实现神经网络算法,也可以方便地测试大型问题。(如果没有MATLAB软件,可以使用任何其他编程语言来完成这些练习。)第二种使用MATLAB的方法是利用Neural Network Design Demonstrations软件,你可以从网站hagan.okstate.edu/nnd.html下载它。这些交互式的演示程序解释了每章中的重要概念。把这个软件加载到你计算机的MATLAB目录下之后(或者放在MATLAB路径上),就可在MATLAB提示符下通过输入nnd命令进