Python深度学习原理、算法与案例
上QQ阅读APP看书,第一时间看更新

1.3 深度学习

深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近最初的目标——人工智能(Artificial Intelligence,AI)。

深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果远远超过先前的相关技术。

深度学习在搜索技术、数据挖掘、机器学习、机器翻译、自然语言处理、多媒体学习、语音、推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。

要学习到一种好的高层语义表示(一般为分布式表示),通常需要从底层特征开始,经过多步非线性转换才能得到。一个深层结构的优点是可以增加特征的重用性,从而呈指数级地增加表示能力。因此,表示学习的关键是构建具有一定深度的多层次特征表示。在传统的机器学习中,也有很多有关特征学习的方法,比如主成分分析、线性判别分析、独立成分分析等。但是传统的特征学习一般是通过人为地设计一些准则,然后根据这些准则来选取有效的特征。特征的学习是和最终预测模型的学习分开进行的,因此学习到的特征不一定可以提升最终模型的性能。为了学习一种好的表示,需要构建具有一定“深度”的模型,并通过学习算法来让模型自动学习出好的特征表示(从底层特征到中层特征,再到高层特征),从而最终提升预测模型的准确率。所谓“深度”,是指原始数据进行非线性特征转换的次数。如果把一个表示学习系统看作是一个有向图结构,深度也可以看作是从输入节点到输出节点所经过的最长路径的长度。这样我们就需要一种学习方法可以从数据中学习一个“深度模型”,这就是深度学习。深度学习是机器学习的一个子问题,其主要目的是从数据中自动学习到有效的特征表示。通过多层的特征转换,把原始数据变成更高层次、更抽象的表示。这些学习到的表示可以替代人工设计的特征,从而避免“特征工程”。

深度学习是将原始的数据特征通过多步的特征转换得到一种特征表示,并进一步输入预测函数得到最终结果。和“浅层学习”不同,深度学习需要解决的关键问题是贡献度分配问题(Credit Assignment Problem,CAP),即一个系统中不同的组件(Components)或其参数对最终系统输出结果的贡献或影响。从某种意义上讲,深度学习也可以看作是一种强化学习(Reinforcement Learning,RL),每个内部组件并不能直接得到监督信息,需要通过整个模型的最终监督信息(奖励)得到,并且有一定的延时性。

目前,深度学习采用的模型主要是神经网络模型,其主要原因是神经网络模型可以使用误差反向传播算法,从而可以比较好地解决贡献度分配问题。只要是超过一层神经网络,都会存在贡献度分配问题,因此超过一层的神经网络都可以看作是深度学习模型。随着深度学习的快速发展,模型深度也从早期的5~10层到目前的数百层。随着模型深度的不断增加,其特征表示的能力也越来越强,从而使后续的预测更加容易。