首页 理论教育 多层前馈神经元网络

多层前馈神经元网络

时间:2022-02-11 理论教育 版权反馈
【摘要】:加入隐层的好处在于它扩大了网络能够表示的假设空间。设想我们要为餐馆问题构造一个隐层网络。神经元网络学习效果的确很好,虽然不如决策树学习那么快。作为比较的学习曲线显示出:在多层网络中,决策树学习要稍微好于反向传播当然,神经元网络有能力处理复杂得多的学习任务,虽然我们不得不承认需要经历一些调整才能得到正确的网络结构,并收敛到在权空间中接近于全局最优值的值。差不多有上万种已发表的神经元网络应用。

20.5.4 多层前馈神经元网络

现在我们来看一看包含隐单元的网络。最一般的情况涉及单隐层,如图20.24所示 [22]。加入隐层的好处在于它扩大了网络能够表示的假设空间。每个隐单元可以视为一个感知器,它表示了一个在输入空间上的软阈值函数,如图20.19(b)所示。然后再将输出单元视为若干这种函数的一个软阈值线性合并。例如,将两个反相的软阈值函数叠加,再对结果进行阈值过滤,我们可以得到一个如图 20.23 (a)所示的“脊”函数。将两个这样的脊彼此正交地合并起来(也就是对4个隐单元的输出进行合并),我们得到一个如图20.23(b)所示的“突起”。


图20.23 (a)两个反相的软阈值函数合并的结果是产生了一个脊。(b)两个脊合并的结果是产生了一个突起

如果有更多的隐单元,则我们可以在更多的地方产生更多不同大小的突起。事实上,只要一个足够大的隐层,就可能以任意精度表示关于输入的任何连续函数;如果有两层,甚至不连续的函数都可以表示 [23]。不幸的是,对于任何特定的网络结构,很难准确描述哪些函数能够被表示而哪些不能。

设想我们要为餐馆问题构造一个隐层网络。我们有10个属性来描述每个实例,所以我们需要10个输入单元。那么需要多少个隐单元?在图20.24中,我们显示了一个有4个隐单元的网络。事实说明它还比较适合这个问题。不过对于如何预先选择合适的隐单元数目,还没有得到很好的理解。(参见第20.5.5节。)

多层网络的学习算法和图 20.21 中所示的感知器学习算法相似。一个微小的不同在于我们可以有多个输出,所以我们有一个输出向量hw(x)而不是单一值,并且每个实例都有一个输出向量y。主要的不同之处在于,虽然输出层的误差y − hw是明确的,但隐层的误差还是很神秘的,因为训练数据无法告诉我们隐节点应该具有什么样的值。不过,我们可以从输出层向隐层反向传播误差。反向传播过程直接从总体误差梯度的导数中涌现出来。首先我们用直觉判断来描述这个过程;然后,我们将说明求导过程。


图20.24 一个多层神经元网络,有一个隐层和10个输入,适合于解决餐馆问题

在输出层,权值更新法则和公式(20.12)相同。我们有多个输出单元,所以令Erri为误差向量y−hw的第i个分量。我们还发现可以很方便地定义一个修正的误差Δi=Erri ×g'(ini),如此,权值更新规则变成


为了更新输入单元与隐单元之间的连接,我们需要定义一个类似于输出节点的误差项的量。这里就是需要我们进行误差反向传播的地方。主要思路是,隐节点j对它所连接的每个输出节点处的误差Δ i的某些部分要“承担责任”。这样,Δ i的值将根据隐节点和输出节点之间的连接强度进行划分,并且反向传播,为隐层提供Δj的值。Δ 值的传播规则如下所示:


现在,输入层与隐层之间的权值更新规则与输出层的更新规则几乎相同了:

Wk,j ← Wk,j+α × ak ×Δj

反向传播过程可以归纳如下:

• 利用观测到的误差值,计算输出单元的Δ 值。

• 从输出层开始,对网络中的每一层重复下面的步骤,直到到达最早的隐层:

— 向前面的层反向传播Δ 值。

— 更新两层之间的权值。

详细的算法如图20.25所示。

数学的角度考虑,我们现在将根据基本原理推导反向传播公式。单个实例的平方误差可以定义为:


其中求和是对输出层的所有节点进行的。为了得到与输出层中某个指定权值 Wj,i有关的梯度,我们只需要对激励aj进行扩展,因为求和运算中的其它项都不受Wj, i的影响:



其中,Δi的定义如前。为了得到与输入层和隐层之间的连接权值Wk, j有关的梯度,我们要保持对i的完整求和,因为每个输出值ai都可能受到Wk, j的变化的影响。我们还必须对激励aj进行扩展。下面我们展示推导的细节,因为看看求导运算如何通过网络进行反向传播是很有意思的:


其中Δj的定义如前。这样,我们得到了先前从直觉考虑中得到的更新规则。同时也表明这个过程可以继续用于超过一个隐层的网络,证明了图20.25中给出的通用算法是正确的。


图20.25 多层网络中的反向传播学习算法

经过了(或略过)一番数学推导之后,让我们来看看一个单隐层网络在餐馆问题上的性能表现。在图20.26中,我们显示了两条曲线。第一条是训练曲线,显示了权值更新过程中100个餐馆实例的均方差变化。这表明网络确实收敛到了对训练数据的一个很好的拟合。第二条曲线是餐馆数据的标准学习曲线。神经元网络学习效果的确很好,虽然不如决策树学习那么快。这也许并不奇怪,因为一开始的数据就是从一棵简单决策树生成的。


图20.26 (a)训练曲线显示出对于餐馆问题域的给定实例集合,随着权值在几次迭代过程中的修改,误差逐步地减小了。(b)作为比较的学习曲线显示出:在多层网络中,决策树学习要稍微好于反向传播

当然,神经元网络有能力处理复杂得多的学习任务,虽然我们不得不承认需要经历一些调整才能得到正确的网络结构,并收敛到在权空间中接近于全局最优值的值。差不多有上万种已发表的神经元网络应用。第20.7节会更深入地考察其中一种应用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈