深度学习是机器学习的一个子领域,它采用了一个特定的模型:一族通过某种方式连接起来的简单函数。由于这类模型的结构是受到人类大脑结构的启发而创造出来的,因此我们通常把它们称为神经网络(neural networks)。神经网络中的函数链条能够将复杂的概念分解为多个层次的更简单的概念,这就是深度学习的核心思想。例如,深度学习模型的第一层,可以用来学习如何获取原始数据,并用基本的方式来组织它(如将多个点组合成直线)。后面每一层都将前面一层组织成更高级、更抽象的概念。我们把学习这种抽象概念的过程称作表征学习(representation learning)。
深度学习的神奇之处在于,我们并不需要事先了解中间层的概念具体是什么。如果选择的模型层次足够多(即深度足够深),并提供足够数量的训练数据,它就能在训练过程中逐步将原始数据组织为越来越高级的概念。那么训练算法怎么知道应当使用哪些概念呢?它并不需要知道。它只需要找到能够更好地匹配训练样本的数据组织方式就可以了。至于生成的表征是不是能够符合人们对数据的印象,那就无法保证了。图1-9展示了如何将表征学习融入深度学习的流程中。
图1-9 深度学习和表征学习
深度学习的这种强大能力是有代价的:深度学习模型需要学习的权重数量非常巨大。回顾一下前面处理身高-体重数据集的简单模型ax + b,这个模型只有两个权重需要学习。而用于处理图像标签应用的深度学习模型,则可能有上百万个权重。因此,深度学习需要更大的数据集、更强的计算能力以及更多的训练实践。深度学习与传统机器学习各有其适用的情形。在下列几种情形中,深度学习是一个不错的选择。
而在以下的情形中,应当选择参数较少的传统模型。
由于深度学习指的是模型类型,因此前面讲到的几个不同的机器学习分支,都可以应用它。例如,在监督学习中,根据拥有的训练数据的不同,我们可以在简单模型或深度学习模型之间做出选择。