backpropagation, such as D.E Rumelhart, G.E. Hinton, R.J. Williams, “Learning internal representations by error propagation,” D. Rumelhart and J.McClelland, editors.
The primary objective of this chapter is to explain how to use the backpropagation training functions in the toolbox to train feedforward neural networks to solve specific problems. There are generally four steps in the training process: 1 Assemble the training data 2 Create the network object 3 Train the network
4 Simulate the network response to new inputs
This chapter discusses a number of different training functions, but in using each function we generally follow these four steps.
The next section describes the basic feedforward network structure and demonstrates how to create a feedforward network object. Then the simulation and training of the network objects are presented.
27
附录2:英文文献中文译文
1 神经元模型
简单的神经元
一个带有单个标量输入和左边没有偏置出现的神经元在下图中。 输入 没有偏置的神经元 输入 有偏置的神经元
标量输入p通过一个连接关系乘以一个标量权w进行传输,为了形成乘积又一个标量wp。这个加权的输入量wp是传递函数f的唯一参考常量:wp是标量输出a。右边的神经元有一个标量偏置量b。你可能注意到了这个偏置量只是想图中所示的那样简单的被加到乘积wp中,然后通过求和函数进行运算。或将函数f左移b个数量单位。其实这个偏置量就好像是一个加权量,只是它有一个常量输入1。
传递函数网络的输入量为n,它也是一个标量,是加权量wp和偏置量b的和。这个和是传递函数f的参量。(第七章将会讨论用一种不同方法形成网络的输入量n)。这里的f是一个传递函数,典型的阶跃函数或曲线函数,带有参量输入n和输出量a。多种传递函数的例子将在下面的部分给出。值得注意的是w和b是神经元中两个可以调节的标量参数。神经网络的核心想法是让这样的参数可以调节,从而使网络能够达到希望的或有意思的性能。因此,我们可以通过调节权参数或偏置参数来训练神经网络,或者也许这个神经网络自己可以调节这些参数从而达到最终的理想状态。
工具箱中的所有的神经元的每个偏置都有规定,偏置用在了在我们的很多的例子中,在这个工具箱中大多数情况下将会被假定。不管怎样,如果你需要的话,你可以忽略一个神经元的偏置。正如之前提到的,偏置量b视神经预案中可以调节的参数,它不是输入。但是,常熟i使得偏置量成为输入,当在第四章《滤波器》中考虑输入矢量的线性关系时就必须把偏置量看成是一个输入。
28
2 传递函数
在这个工具箱中包含了很多传递函数。完整的列表在第14章《传递函数》的图表中。大多数情况下常用的函数如下所示:
阶跃传递函数 a为单位阶跃输入
上面所示的阶跃传递函数限制了神经元的输出可以是0:如果网络的输入参数n小于0;或是1:如果n大于或等于0.我们将会在第三章《感知器》中用这个函数去创建神经元做分类决定。
工具箱中有阶跃函数,为了认识上面所说的数学的阶跃传递函数,试试下面所示的编码。
n = -5:0.1:5;
plot(n,hardlim(n),'c+:');
它生成了一个函数变化量在-5和+5之间变化的表。工具箱中所有的数学传递函数都能够用一个相同的名字的函数实现。 线性传递函数如下图所示:
线性传递函数 a为单位速度输入
这种类型的神经元用在第4章所讲的《线性滤波器》中作为线性逼近。
下面所示的曲线传递函数的输入可以是正的或负的无穷大间的任何一个值,输出限制在0和1的变化范围内。
29
双曲传递函数
这个函数经常用在反向传播神经网络中,部分是因为它的微分性。符号与上面所描述的相关的传递函数与右边每个传递函数图所示的一致。这个标准将会代替神经网络表箱中的一般函数f去显示正在备用的特殊函数。 3 带有矢量输入的神经元
下面所示的带有单一的R元素输入矢量的神经元。这里是独立的元素输入p1,p2,?,pR乘以权值w1.1,w1.2,?w1.R,这些权值的有效值进入求和函数,它们的和简单的记为wp,这个点就是矩阵W和矢量p的乘积。 输入 神经元w的矢量输入
R为输入矢量中元素的数量
这个神经元有一个偏置量b,它与权值输入量的和形成网络的输入量n。和值n是传递函数f的参量。
n = w1,1p1+w1,2p2+ ... +w1,RpR +b
当然了,这个表达式在MATLAB中的编码可以写为:
n =W*p+b
但是,使用者会很少写这个编码用这么低的水平,应为这样的编码已经加入到定义或模拟整个神经网络的函数中。
上面所示的单一的神经元图形包含着许多的细节。当我们考虑有很多神经元或很多神经元层的神经网络时,有如此多的细节以至于主要的想法可能会丢。因此,作者为每个神经元设计出了一个简短的注释。这个注释将会应用在以后的多种神经元的电路中。
30
输入 神经元
R为输入矢量中元素的数量
这里的输入矢量p代表左边的固定的黑暗的棒,p的大小将会在下面的Rx1图形中解释。(注意我们要用大写字母,例如在之前句子中提到的R;涉及到一个矢量大小时。)因此,p是输入元素R的一个矢量。这些输入形成了多层的单一的行,R列矩阵w。正如之前讲到的,一个常数1作为一个输入加入神经元中,然后乘以一个数量级的偏置量b。这个神经网络相对于传递函数f的输入为n即偏置量b的和乘积wp的和。这个和通过传递函数f得到神经元的输出a,这样的话,a也是一个标量。注意,如果我们有多余一个的神经元,神经网络输出将是一个矢量。
神经网络的一个层已经在上面的图中定义了。一层包含权值的组合:乘法和和的运算(这里提到wp作为一个矢量乘积),偏置量和传递函数f,不包括输入阵列标量p或叫做一层。
每次这个简短的神经网络注释被用时,矩阵的大小正好会在它们矩阵名字的下面。我们希望这个注释将会帮助你去理解神经网络的结构以及随着矩阵的数学运算联系到神经网络。
正如之前所讨论的,当一个特殊的传递函数用在图中是,那个传递函数的符号将会代替上面所示的f。 4 总结
一个神经元的输入包含了它的偏置值和它的权值输入的和,(用内部乘积)。一个神经元的输出要看神经元的输入和它的传递函数。有很多有用的传递函数。单一的神经元不能做很多,但是,几个神经元能结合成一个层或多个层那样作用就大了。可观的是,这个工具箱可以是创建和理解这样大的神经网络变得容易。描述一个神经网络的结构组成要看:一个神经网络有多少层、每层神经元的数量、层与层之间彼此是怎样连接的。用最好的结构要看神经网络所描述的问题的类型。
神经网络通过绘输入到输出的值的图影响计算结果,特别的操作绘图包含着许多
31