也许更令人惊叹的,是深度学习在自然语言理解方面的突出表现,尤其是主题分类、情绪分析、问题回答以及语言翻译。
我们认为深度学习在不远的未来会取得更大的成就,而且只需要少量的人工操作,它就能充分利用可用计算资源及积累的数据。深度神经网络中新学习算法及架构的出现将会推动它的进步。
不论深度与否,机器学习中最为常见的形式是监督学习。想象一下,现在我们需要建造一个系统,它能够识别图像中的物体是否为容器,例如房子、车辆、人,或者宠物等。首先我们会收集大量房子、车辆、人、宠物的数据集,并分别用标签标记类别。
在训练过程中,机器会识别每张图像上的物体,并且以分数矢量的方式产出结果到每个类别。我们希望目标类别得分最高,但是在训练之前,这是不可能发生的。
我们推导出一个目标函数来测量实际值与目标类别分数之间的差,然后机器将修正内部的可调整参数以减少错误。
在一个典型的深度学习系统中,可能存在着上千个、甚至上百万个可调整权重,以及大量用于训练的带标签案例。
在实际生产中,许多程序员会使用随机梯度下降法(S)。这个方法有以下几个步骤:展示几个案例的输入向量,计算输出结果及错误值,计算这些案例的平均梯度,然后对权重做出相应的调整。
经过训练之后,将通过另外一个由不同案例组成的测试集来评估系统的表现。其目的主要在于测试机器的推广能力——是否能在输入新结果的情况下得到合理的结果。
现在实际生产中,许多机器学习系统在人工提取特征的基础上使用线性分类器。一个两级线性分类器会对特征向量组件计算加权和,如果加权和高于阈值,这个输入将被分入为某一特定分类之下。
但是线性分类器在图像识别、语音识别中的应用有较大,需要诸如特征提取器等深度学习方法以实现特征学习。
一个深度学习架构是由一系列简单组件组合而成,其中所有(或者大部分)都需要学习,并且许多都能计算出非线性的输入输出映射关系。其中每个组件都会充分利用输入,以提高选择性和不变性。
这些系统拥有多个非线层),能够支持极其复杂的函数,并对微小的细节保持度,例如达到能区分萨摩耶和白狼的地步,同时忽略所占范围大的不相关变量,例如背景、姿势、光线以及周围的物体。
使用反向算法计算目标函数组件中多层堆叠权重的梯度,本质上是导数链式的一个实际应用。其中非常重要的一点在于,目标函数组件输入的导数(也就是梯度)能够通过这个组件输出的梯度倒推出来(或者是通过下一个组件的输入倒推)。