目前提出的神经模型中使用的Hebb规则与相邻神经元之间的关联起作用。在关联存储器中,这被利用以便学习从查询向量到目标的映射。在许多情况下,这非常有效,特别是当查询向量是线性无关的时候。如果不满足这一条件,例如当有太多的训练数据时,就会出现问题:我们如何找到最佳权重矩阵?最佳意味着它最小化平均误差。
我们人类有能力从错误中学习。Hebb规则不提供这种可能性。下面描述的反向传播算法使用从函数近似已知的优雅解决方案来改变权重,使得训练数据上的误差最小化。
设N对训练向量
T = {(q 1,t 1),…,(q N,t N)}
可与给定的q p ∈[ 0 , 1 ] Ñ 吨 p ∈[ 0 , 1 ] 米。我们正在寻找一个函数˚F :[ 0 , 1 ] Ñ →[ 0 , 1 ] 米,其最小化的平方误差
ñ
(f(q p)– t p)2
p = 1
关于数据。我们首先假设数据不包含矛盾。也就是说,训练数据中没有应该映射到两个不同目标的查询向量。在这种情况下,找到最小化平方误差的函数并不困难。实际上,存在无限多个使误差为零的函数。我们定义了这个功能
和
F(q)= 0, 如果q ∈ / { q 1,…,q Ñ }
F(q P)= 吨 p ∀ p ∈{ 1,…,N }。
这是一个甚至使训练数据的误差为零的函数。我们还想要什么呢?为什么我们对这个功能不满意?
答案是:因为我们想建立一个智能系统!除其他之外,智能意味着学习的功能可以很好地从训练数据推广到来自相同代表数据集的新的未知数据。换句话说,它意味着:我们不希望通过记忆来过度拟合数据。那么我们真正想要的是什么?
我们想要一个平滑的功能,并“平衡”点之间的空间。连续性和采取多种衍生物的能力将是明智的要求。因为即使有这些条件,仍然有无数的函数使误差为零,我们必须进一步限制这类函数。
最简单的选择是线性映射。我们从一个双层网络开始(图9.13),其中第二层的单个神经元y使用它来计算其激活
y = f
ñ
i = 1
wixi
=
用f(x)x。我们这里只关注输出神经元这一事实并不构成真正的限制,因为具有两个或更多输出神经元的双层网络总是可以分离成具有相同输入神经元的独立网络,用于每个原始输出神经元。子网的权重都是独立的。使用sigmoid函数而不是线性激活在这里没有任何优势,因为sigmoid函数严格单调递增并且不改变各种输出值之间的顺序关系。
期望的是矢量w,其最小化平方误差
ñ
E(w)= (wq p – tp)2 =
N n
2
一世
wiqp – tp。
p = 1
p = 1 i = 1
作为最小误差函数的必要条件,所有偏导数必须为零。因此,我们要求j = 1 ,…,n:
?E
N n pp
∂wj
将此乘以产量
= 2
p = 1
i = 1
wiq i – tp
q j = 0。
wiq i
q j – tpq j
= 0 ,
N n ppp
p = 1
i = 1
p = 1
i = 1
wi qpqp = tpqp,
n NN
哪个
i = 1
IJ
p = 1
Ĵ
p = 1
ñ
一世
Ĵ
Aij = qpqp
p = 1
ñ
Ĵ
和 bj = tpqp
p = 1
(9.12)
p = 1
p = 1
可以写成矩阵方程
Aw = b 。(9.13)
这些所谓的正规方程总是至少有一个解,当A是可逆的时,恰好是一个。此外,矩阵A是正定的,这意味着在唯一情况下所发现的解决方案是全局最小值。该算法称为最小二乘法。
・
用于设置矩阵A 的计算时间以Θ(N n 2 )增长,并且用于求解方程组的时间为O(n 3 )。该方法可以非常简单地扩展到包含多个输出神经元,因为如已经提到的,对于双层前馈网络,输出神经元彼此独立。
2. 应用于阑尾炎数据
[]
作为一种应用,我们现在确定阑尾炎诊断的线性分数。来自S EXMED项目数据,这是Sect。8.4.5,我们使用最小二乘法确定从症状到连续类变量AppScore的线性映射,其值为0,1 ,并获得线性组合
AppScore = 0。00085年龄– 0。125性+ 0。025 P1Q + 0。035 P2Q – 0。021 P3Q
– 0 。025 P4Q + 0 。12 TensLoc + 0 。031 TensGlo + 0 。13 洛斯尔
+ 0 。081 Conv + 0 。0034 RectS + 0 。0027 TAxi + 0 。0031 TRec
+ 0 。000021 Leuko – 0 。11 Diab – 1 。83 。
此函数返回AppScore的连续变量,尽管实际的二进制类变量App 仅采用值0和1.因此,我们必须决定阈值,就像感知器一样。对于训练数据和测试数据,作为阈值函数的分数的分类误差列于第243 页的图9.14中。我们清楚地看到两条曲线几乎相同并且具有
图9.14 训练和测试数据的最小二乘误差
=
他们最小的Θ 0 。5.在两条曲线的微小差异中,我们发现过度拟合对于该方法来说不是问题,因为该模型非常好地从测试数据中推广出来。
图中还有非线性三层RProp网络(第9.5节)的结果,阈值误差在0.2到0.9之间略低。对于导出得分的实际应用和阈值Θ的正确确定,重要的是不仅要查看错误,还要按错误类型(即假阳性和假阴性)进行区分,如在L EXMED中所做的那样。应用在第142页的图7.10中。在此处显示的ROC曲线中,还显示了此处计算的分数。我们看到简单的线性模型明显不如L EXMED系统。显然,线性近似对于许多复杂的应用来说不够强大。
3.
Delta规则
与感知器和决策树学习一样,最小二乘法是一种所谓的批量学习算法,与增量学习相反。在批量学习中,必须在一次运行中学习所有训练数据。如果添加新的训练数据,除了已经存在的数据之外,不能简单地学习它。必须用放大的集合重复整个学习过程。这个问题通过增量学习算法解决,增量学习算法可以使学习的模型适应每个附加的新例子。在我们将在下面的讨论中看到的算法中,我们将通过规则附加地更新每个新训练示例的权重
wj = wj + wj。
为了导出最小二乘法的增量变量,我们重新考虑上面计算的误差函数的n个偏导数
图9.15大 η(左)和非常小 η(右)的梯度下降进入一个平缓向右下降的谷。对于大 η,山谷周围存在振荡。相反,对于太小的 η,平坦谷中的会聚非常缓慢地发生
一世
?E
N n
= 2
wiqp – tp
Ĵ
QP。
渐变
∂wj
p = 1 i = 1
∂w 1
∂wn
∇ é = ?E,…,?E
作为误差函数的所有偏导数的向量,指向权重的n维空间中误差函数的最强上升方向。在搜索最小值时,我们将遵循负梯度的方向。作为改变我们获得的权重的公式
WJ = – 2 ∂w
= – η
η∂E
Ĵ
N n pp
p = 1
i = 1
Ĵ
p = 1
i = 1
=
wiq i – tp
q j ,
其中学习率η是可自由选择的正常数。较大的η会加速收敛,但同时会增加在最小值或平坦山谷周围振荡的风险。因此,η的最佳选择不是一项简单的任务(见图9.15)。大η,例如η1,通常用于开始,然后慢慢收缩。
通过替换激活
y = w qi
ñ
p p
一世
i = 1
对于应用训练示例q p的输出神经元,公式被简化并且我们获得delta规则
w = η(t – y)q .j
ñ
pp p j
p = 1
图9.16 学习a
w = w + η(tp – yp)q p
w = w + w
w = 0
对于所有(q P,TP)∈ TrainingExamples
D ELTA L EARNING(TrainingExamples,η)随机初始化所有权重wj 重复
具有delta规则的双层线性网络。请注意,在应用所有训练数据后,重量总是会发生变化
计算网络输出 yp = w p q p
直到w 收敛
D ELTA L EARNING I NCREMENTAL(TrainingExamples,η)随机初始化所有权重wj
重复
计算网络输出 yp = w p q p
w = w + η(tp – yp)q p
直到w 收敛
对于所有(q P,TP)∈ TrainingExamples
图9.17 增量规则的增量变量
因此,对于每个训练示例,针对给定输入q p计算目标t p与网络的实际输出y p 之间的差异。在对所有模式求和之后,然后权重与总和成比例地改变。该算法如图9.16 所示。
我们看到算法仍然没有真正增量,因为权重变化仅在所有训练样例都应用一次后才会发生。我们可以通过在每个训练示例(图 9.17 )之后直接改变权重(增量梯度下降)来纠正这种不足,严格来说,这不再是delta规则的正确实现。
4.
与感知器的比较
第二节中介绍的感知器学习规则。8.2.1,最小二乘法和delta规则可用于从数据生成线性函数。然而,对于感知器而言,与其他方法相比,通过阈值决策来学习用于线性可分类的分类器。然而,另外两种方法产生了对数据的线性近似。如Sect。中所示。9.4.2 ,如果需要,可以通过应用阈值函数从线性映射生成分类器。
图9.18的三层传播网络与 Ñ 1层的神经元在第一, Ñ 2个神经元在第二,和 Ñ 3个神经元在第三层中
感知器和增量规则是迭代算法,直到收敛的时间严重依赖于数据。在线性可分数据的情况下,可以为感知器找到迭代步数的上限。相反,对于delta规则,只有无限制的渐近收敛的保证[HKP91]。
对于最小二乘法,学习包括建立和求解权重向量的线性方程组。因此,计算时间存在硬性限制。因此,当不需要增量学习时,最小二乘法总是优选的。