1.3 深度学习简介
为了学习一种好的表示,需要构建具有一定“深度”的模型,并通过学习算法让模型自动学习出好的特征表示(从底层特征到中层特征,再到高层特征),从而最终提升预测模型的准确率。所谓“深度”,是指对原始数据进行非线性特征转换的次数。如果把一个表示学习系统看作一个有向图结构,深度也可以看作从输入节点到输出节点所经过的最长路径的长度。
这样我们就需要一种学习方法可以从数据中学习一个“深度模型”,这就是深度学习(Deep Learning,DL)。深度学习是机器学习的一个子问题,其主要目的是从数据中自动学习到有效的特征表示。
图1.2给出了深度学习的数据处理流程,通过多层的特征转换,把原始数据变成更高层次、更抽象的表示。这些学习到的表示可以替代人工设计的特征,从而避免“特征工程”。
深度学习将原始的数据特征通过多步的特征转换得到一种特征表示,并进一步输入到预测函数中得到最终结果。和“浅层学习”不同,深度学习需要解决的关键问题是贡献度分配问题(Credit Assignment Problem,CAP),即一个系统中不同的组件(Component)或其参数对系统最终输出结果的贡献或影响。以下围棋为例,每当下完一盘棋,最后的结果要么赢要么输。我们会思考哪几步棋导致了最后的胜利,或者又是哪几步棋导致了最后的败局。如何判断每一步棋的贡献就是贡献度分配问题,这是一个非常困难的问题。从某种意义上讲,深度学习可以看作一种强化学习(Reinforcement Learning,RL),每个内部组件并不能直接得到监督信息,需要通过整个模型的最终监督信息(奖励)得到,并且有一定的延时性。
图1.2 深度学习的数据处理流程
目前,深度学习采用的模型主要是神经网络模型,主要原因是神经网络模型可以使用误差反向传播算法,可以比较好地解决贡献度分配问题。只要是超过一层的神经网络,都会存在贡献度分配问题,因此可以将超过一层的神经网络都看作深度学习模型。随着深度学习的快速发展,模型深度也从早期的5~10层增加到目前的数百层。随着模型深度的不断增加,其特征表示的能力也越来越强,从而使后续的预测更加容易。