乐读窝

深度学习

乐读窝 > 文学理论 > 深度学习

11.6 示例:多位数字识别

书籍名:《深度学习》    作者:伊恩.古德费洛



为了端到端地说明如何在实践中应用我们的设计方法论,我们从设计深度学习组件出发,简单地介绍一下街景转录系统。显然,整个系统的许多其他组件,如街景车、数据库设施等,也是极其重要的。

从机器学习任务的视角出发,首先这个过程要采集数据。街景车收集原始数据,然后操作员手动提供标签。转录任务开始前有大量的数据处理工作,包括在转录前使用其他机器学习技术探测房屋号码。

转录项目开始于性能度量的选择和对这些度量的期望值。一个重要的总原则是度量的选择要符合项目的业务目标。因为地图只有是高准确率时才有用,所以为这个项目设置高准确率的要求非常重要。具体地,目标是达到人类水平,98%的准确率。这种程度的准确率并不是总能达到。为了达到这个级别的准确率,街景转录系统牺牲了覆盖。因此在保持准确率98%的情况下,覆盖成了这个项目优化的主要性能度量。随着卷积网络的改进,我们能够降低网络拒绝转录输入的置信度阈值,最终超出了覆盖95%的目标。

在选择量化目标后,我们推荐方法的下一步是要快速建立一个合理的基准系统。对于视觉任务而言,基准系统是带有整流线性单元的卷积网络。转录项目开始于一个这样的模型。当时,使用卷积网络输出预测序列并不常见。开始时,我们使用一个尽可能简单的基准模型,该模型输出层的第一个实现包含n个不同的softmax单元来预测n个字符的序列。我们使用与训练分类任务相同的方式来训练这些softmax单元,独立地训练每个softmax单元。

我们建议反复细化这些基准,并测试每个变化是否都有改进。街景转录系统的第一个变化受激励于覆盖指标的理论理解和数据结构。具体地,当输出序列的概率低于某个值t即p(y|x)<t时,网络拒绝为输入x分类。最初,p(y|x)的定义是临时的,简单地将所有softmax函数输出乘在一起。这促使我们发展能够真正计算出合理对数似然的特定输出层和代价函数。这种方法使得样本拒绝机制更有效。

此时,覆盖仍低于90%,但该方法没有明显的理论问题了。因此,我们的方法论建议综合训练集和测试集性能,以确定问题是否欠拟合或过拟合。在这种情况下,训练和测试集误差几乎是一样的。事实上,这个项目进行得如此顺利的主要原因是有数以千万计的标注样本数据集可用。因为训练和测试集的误差是如此相似,这表明要么是这个问题欠拟合,要么是训练数据的问题。我们推荐的调试策略之一是可视化模型最糟糕的错误。在这种情况下,这意味着可视化不正确而模型给了最高置信度的训练集转录结果。结果显示,主要是输入图像裁剪得太紧,有些和地址相关的数字被裁剪操作除去了。例如,地址“1849”的图片可能裁切得太紧,只剩下“849”是可见的。如果我们花费几周时间改进确定裁剪区域的地址号码检测系统的准确率,或许也可以解决这个问题。与之不同,项目团队采取了更实际的办法,简单地系统性扩大裁剪区域的宽度,使其大于地址号码检测系统预测的区域宽度。这种单一改变将转录系统的覆盖提高了10个百分点。

最后,性能提升的最后几个百分点来自调整超参数。这主要包括在保持一些计算代价限制的同时加大模型的规模。因为训练误差和测试误差保持几乎相等,所以明确表明性能不足是由欠拟合造成的,数据集本身也存在一些问题。

总体来说,转录项目是非常成功的,可以比人工速度更快、代价更低地转录数以亿计的地址。

我们希望本章中介绍的设计原则能带来其他更多类似的成功。