多层感知器、隐藏神经元和信用分配

多层感知器、隐藏神经元和信用分配

        图 4.1 表示一个具有两个隐藏层和一个输出层的多层感知器的结构图。为了构筑多层感知器一般形式的描述平台,这里说的网络是全连接的 (fully connected)。这就是说在任意层上的一个神经元与它之前的层上的所有节点 / 神经元都连接起来。信号一层接一层地逐步流过,方向是向前的,从左到右。
        图 4.2 描绘了多层感知器的一部分。在这个网络中,两种信号都能被识别:
多层感知器、隐藏神经元和信用分配
        1. 函数信号。函数信号是从网络输人端而来的一个输人信号 (刺激),通过网络 (一个神经元接一个神经元) 向前传播,到达网络输出端即成为一个输出信号。我们把这样一个信号称为“函数信号”有两个原因。首先,在网络输出端时假设它表现为有用的函数。第二,在函数信号通过网络上每一个神经元处,该处信号都被当成输人以及与该神经元有关的权值的一个函数来计算的。函数信号也被认为是输人信号。
        2. 误差信号。一个误差信号产生于网络的一个输出神经元,并通过网络 (一层接一层) 反向传播。我们称之为“误差信号”是因为网络的每一个神经元对它的计算都以这种或那种形式涉及误差依赖函数。
        输出神经元构成网络的输出层。余下的神经元构成网络的隐藏层。因此隐藏层单元并不是网络输出或输人的一部分 - 因此它们被称为“隐藏”的。第一隐藏层的信号是从由传感单元 (源节点) 构成的输入层馈给的;而第一隐藏层的输出结果又应用于下一个隐藏层;网络的其余部分依此类推。
多层感知器每一个隐藏层或输出层中神经元的作用是进行两种计算:
        1. 计算一个神经元的输出处出现的函数信号,它表现为关于输入信号以及与该神经元相关联的突触权值的一个连续非线性函数。
        2. 计算梯度向量 (即误差曲面对连接于一个神经元输人的权值的梯度) 的一个估计,它需要反向通过网络。

隐藏神经元的功能
        隐藏神经元扮演着特征检测算子 (feature detector) 的角色;它们在多层感知器的运转中起着决定性作用。随着学习过程通过多层感知器不断进行,隐藏神经元开始逐步“发现”刻画训练数据的突出特征。它们是通过将输入数据非线性变换到新的称为特征空间的空间而实现的。
例如,在模式分类问题中,感兴趣的类在这个新的空间中可能比原始输人数据空间中更容易分隔开。甚至,正是通过监督学习形成的这一特征空间将多层感知器和 Rosenblatt 感知器区别开来。

信用分配问题
        当学习如图 4.1 所示的分布式系统的学习算法时,注意信用分配 (credit assignment) 概念是有益的。基本上,信用分配问题是分配总体结果的信用或者责任 (blame) 给每一个由分布式学习系统的隐藏计算单元所产生的内部决策 (internal decision),首先要注意的是那些决策将决定总体结果。
        在利用误差相关学习 (error-correlation learning) 的多层感知器中,会发生信用分配问题。这是因为网络中每一个隐藏神经元和每一个输出神经元的操作,对于网络感兴趣的学习任务的总体正确行为而言都是重要的。也就是说,为了解决给定的任务,网络必须通过特定的误差修正学习算法给它的所有神经元分配某种形式的行为。在这一背景下,考虑图 4.1 所示的多层感知器。因为每一个输出神经元对于外部世界来说是可见的,我们可以提供一个期望响应来指导这些神经元的行为。因此,一旦考虑了输出神经元,就可以直接通过误差修正算法来修正每个输出神经元的突触权值。但是,当误差修正学习算法被用来修正隐藏神经元的突触权值时,如何给隐藏神经元的行为分配信用或者责任呢?对这一基本问题的答案需要比输出神经元的情形给出更细节的关注。
        在本章后续的部分,我们给出反向传播算法,它是多层感知器训练的基础算法。反向传播算法以一种精致的方式解决了信用分配问题。但是在介绍反向传播算法之前,我们在下一节中讲述监督学习的两种基本方法。

References
(加) Simon Haykin (海金) 著, 申富饶, 徐烨, 郑俊, 晁静 译. 神经网络与机器学习[M]. 北京:机械工业出版社, 2011. 1-572