大多数实用的模式识别系统由多个模块组成。例如,一个文档识别系统由这些模块组成:域定位器(提取感兴趣的区域),域分割器(把输入图片分割成字符),识别器(对字符进行分类和打分)和上下文后处理器(基于随机语法,选择语法最好的正确答案)。在大多数情况下,从模块到模块携带的信息最后表示附有弧的数字信息的图。例如,识别器模块的输出可以表示为一个非循环图,每个弧包含候选字符的标签和分数,图中每条路径表示一个输入字符串。(如下图所示)
当整个系统组装完成,模块的一部分参数会手动调整,以最大化系统的表现。最后一步是非常繁琐,耗时,而且几乎完全不理想。
最好的方法是训练整个系统,最小化全局误差(比如在文档级别上字符误分类的概率)。如果测量性能的损耗函数E可以相对于系统的可调参数W变得可微分,我们可以使用基于梯度的学习方法找到一个E的局部最小值。
为了确保全局损失函数
Ep(Zp,W)
E
p
(
Z
p
,
W
)
可微分,整个系统被构建为可微分模块的前馈网络。每个模块实现的函数在输入的任何地方必须是连续的和可微分的。如果上述前提可以成立,可以使用众所周知的反向传播过程的简单推广来有效地计算关于系统中所有参数的损失函数的梯度。例如,考虑一个模块串联的系统,每个模块实现函数
其中 Xn X n 是一个表示模块输出的向量, Wn W n 是模块的可调参数向量, Xn−1 X n − 1 是模块输入向量(或者说是前一模块的输出向量)。输入 X0 X 0 是第一个模块的输入 Zp Z p 。如果知道E相对于 Xn X n 的偏导数,那么E相对于 Wn W n 和 Xn−1 X n − 1 的偏导数可以计算得到:
这就类似于神经网络的反向传播过程。我们可以在训练样本上平均梯度以获得完整的梯度。这样,就可以通过梯度下降法训练整个系统。
摘自《Gradient-Based Learning Applied to Document Recognition》