1 什么是深度学习
深度学习是指经过组合低层特征形成更加稠密的高层语义抽象,进而自动发现数据的分布式特征表示,它解决了传统机器学习中需要人工设计特征的问题,目前,深度学习在多领域取得突破进展,如图像识别、机器翻译、语音识别和在线广告等领域。
2 深度学习与机器学习、人工智能的关系
机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。我们就用最简单的方法——同心圆,可视化地展现出它们三者的关系。
3 深度学习技术
(1)自编码器
1986年威廉等人提出了自编码器(Autoencoder,AE)的概念,并将其用于高维复杂数据处理。自编码器通过一个编码和一个解码过程来重构输入数据,学习数据的隐层表示。基本的自编码器可视为一个三层神经网络结构:一个输入层x、一个隐层h和一个输出层y,其中输出层和输入层具有相同的规模,结构如图1所示
自编码器的目的是使得输入x与输出y尽可能接近,这种接近程度通过重构误差表示,根据数据的不同形式,通常重构误差有均方误差和交叉熵两种定义方式。如果仅仅通过最小化输入输出之间的误差来实现对模型的训练,自编码器很容易学习到一个恒等函数。为了解决这个问题,研究者提出了一系列自编码器的变种,其中比较经典的包括稀疏自编码器和降噪自编码器。通过在损失函数中加入L1正则项,便可以训练得到稀疏自编码器,其目的是对过大的权重进行惩罚,使隐层表示中的大量节点为0,从而确保隐层表示尽量稀疏。降噪自编码器则是通过在自动编码器的输入数据中加入噪声得到,这样降噪自编码器在重构输入数据时,就被迫去除这种噪声来学习到更加鲁棒的输入数据的表达,降噪自编码器通过这种方式提升了泛化能力。2007年,Bengio等人通过堆叠多个降噪自编码器,提出了栈式降噪自动编码器(Stacked Denoising Autoencode,SDAE)的概念,其是一种深度神经网络结构,通过逐层非监督学习的预训练可以学习多层次的数据抽象表示。
(2)受限玻尔兹曼机
玻尔兹曼机(Boltzmann Machine,BM)是一种生成式随机神经网络,由Hinton和Sejnowski在1986年提出,BM由一些可见单元(对应可见变量,亦即数据样本)和一些隐层单元(对应隐层变量)构成,可见变量和隐层变量都是二元变量,其状态取0-1,状态0表示该神经元处于抑制状态,状态1代表该神经元处于激活状态。
BM能够学习数据中复杂的规则,具有强大的无监督学习能力。但是,玻尔兹曼机的训练过程非常耗时。为此,Hinton和Sejnowski进一步提出了一种受限玻尔兹曼机(Restricted Boltzmann Machine,RBM),其在玻尔兹曼机的基础上,通过去除同层变量之间的所有连接极大地提高了学习效率。受限玻尔兹曼机的结构如图2所示,包括可见层v以及隐层h,两层之间的节点是全连接的,同层节点间是互不连接的。
从RBM的结构可以发现,在给定隐层单元的状态时,可见层单元之间是条件独立的;反之,在给定可见层单元的状态时,各隐层单元之间也条件独立。因此,尽管无法有效计算RBM所表示的分布,但是通过Gibbs采样能够得到RBM所表示的分布的随机样本。
Gibbs采样的问题是需要使用较大的采样步数,使得RBM的训练效率仍不高。考虑到这种情况,Hinton提出了一种对比散度(ContrastiveDivergence,CD)快速学习算法,CD算法同样利用Gibbs采样过程(即每次迭代包括从可见层更新隐层,以及从隐层更新可见层)来获得随机样本,但是只需迭代k(通常k=1)次就可获得对模型的估计,而不需要像Gibbs采样一样直到可见层和隐层达到平稳分布。
RBM是推荐系统中最早被应用的神经网络模型,当前的应用主要是通过对用户的评分数据进行重构学习到用户的隐表示,从而实现对未知评分的预测。应用场景主要是用户评分预测。
(3)深度信念网络
Hinton等人在2006年提出了一种深度信念网络(Deep Belief Networks,DBN),其是一种由多层非线性变量连接组成的生成式模型。在深度信念网络中,靠近可见层的部分是多个贝叶斯信念网络,最远离可见层的部分则是一个RBM。DBN的结构可以看作由多个受限玻尔兹曼机层叠构成,网络中前一个RBM的隐层视为下一个RBM的可见层。这样,在DBN的训练过程中,每一个RBM都可以使用上一个RBM的输出单独训练,因此与传统的神经网络相比,DBN的训练更加简单。同时,通过这种训练方法,DBN也能够从无标记数据获取深层次的特征表示.
(4)卷积神经网络
卷积神经网络(Convolutional Neuron
Networks,CNN)已成为当前图像理解领域的研究热点。卷积神经网络是一种多层感知机,主要被用来处理二维图像数据。相比传统的多层感知机,CNN使用池化操作减少了模型中的神经元数量,同时对输入空间的平移不变性具有更高的鲁棒性。另外,CNN的权值共享网络结构能够减少模型中参数数量,降低了网络模型的复杂度,提升了模型的泛化能力。尤其是当网络的输入是多维图像时,通过将图像直接作为网络的输入,从而避免了传统图像处理算法中复杂的特征提取和数据重建过程。卷积神经网络的基本结构由输入层、卷积层、下采样层(池化层)、全连接层和输出层构成。
(5)循环神经网络
1986年Williams等提出循环神经网络(Recurrent Neural Network,RNN)的概念。普通的全连接网络或卷积神经网络,是从输入层到隐层再到输出层的结构,层与层之间是全连接的,每层之间的节点是无连接的。这种神经网络结构在面对序列数据建模时往往显得无能为力。例如,当需要预测句子中下一个单词是什么的时候,一般需要依据前面的单词。RNN因为能够建模序列数据中不同时刻数据之间的依赖关系,在机器翻译、语音识别、图标标注生成等领域取得了广泛应用。
RNN的最大特点在于神经网络各隐层之间的节点是具有连接的,它能够通过获取输入层的输出和前一时刻的隐层状态来计算当前时刻隐层的输出,也就是说RNN能够对过去的信息进行记忆。理论上来说,RNN能够对任意长度的序列数据进行建模,但在实际应用中往往假设当前状态仅与前几个时刻的历史状态相关,从而帮助降低模型的复杂.
参考资料:黄立威,江碧涛,吕守业,等. 基于深度学习的推荐系统研究综述[J]. 计算机学报,