概述
理论上来说,参数越多的模型复杂度越高、容量越大,这意味着它能完成更复杂的学习任务。但复杂模型的训练效率低,易陷入过拟合。随着云计算、大数据时代的到来,计算能力的大幅提高可以缓解训练的低效性,训练数据的大幅增加可以降低过拟合风险。因此,以深度学习(Deep Learning,DL)为代表的复杂模型迎来关注。
深度学习是一类模式分析方法的统称,就具体研究内容而言,主要涉及三类方法:
(1)基于卷积运算的神经网络系统,即卷积神经网络(CNN)
(2)基于多层神经元的自编码神经网络,包括自编码(Auto encoder)以及近年来受到广泛关注的稀疏编码两类(Sparse Coding)
(3)以多层自编码神经网络的方式进行预训练,进而结合鉴别信息进一步优化神经网络权值的深度置信网络(DBN)
通过多层处理,逐渐将初始的“低层”特征表示转化为“高层”特征表示后,用“简单模型”即可完成复杂的分类等学习任务。由此可将深度学习理解为进行“特征学习”(feature learning)或“表示学习”(representation learning)。
以往在机器学习用于现实任务时,描述样本的特征通常需由人类专家来设计,这成为“特征工程”(feature engineering)。众所周知,特征的好坏对泛化性能有至关重要的影响,人类专家设计出好特征也并非易事;特征学习(表征学习)则通过机器学习技术自身来产生好特征,这使机器学习向“全自动数据分析”又前进了一步。
常用的深度学习算法
常见的深度学习算法主要包括卷积神经网络(Convolutional Neural Network,CNN)、循环神经网络(Recurrent Neural Network, RNN)和生成对抗神经网络(Generative Adversarial Network,GAN)等。这些算法是深度学习的基础算法,在各种深度学习相关系统中均有不同程度的应用。
卷积神经网络(CNN)
卷积神经网络(Convolutional Neural Network,CNN)是第一个被成功训练的多层神经网络结构,具有较强的容错、自学习及并行处理能力。CNN最初是为识别二维图像形状而设计的多层感知器,局部联结和权值共享网络结构类似于生物神经网络,降低神经网络模型的复杂度,减少权值数量,使网络对于输入具备一定的不变性。
经典的LeNet-5卷积神经网络结构图如图:
经典的LeNet-5卷积神经网络包括了输入层、卷积层、池化层、全连接层和输出层。
(1)输入层:输入数据结构可以是多维的;
(2)卷积层:卷积层使用卷积核提取特征,在卷积层中需要理解局部感受野和共享权值;;
(3)池化层:池化层是将卷积得到的特征映射图进行稀疏处理,减少数据量;
(4)全连接层:在网络的末端对提取后的特征进行恢复,重新拟合,减少因为特征提取而造成的特征丢失;
(5)输出层:输出层用于将最终的结果输出,针对不同的问题,输出层的结构也不相同。
循环神经网络(RNN)
循环神经网络(Recurrent Neural Network, RNN)是一类以序列数据为输入,在序列的演进方向进行递归且所有结点(循环单元)按链式连接的递归神经网络(Recursive Neural Network)。之所以是“循环”,是因为其中隐含层结点的输出不仅取决于当前输入值,还与上一次的输入相关,即结点的输出可以指向自身,进行循环递归运算,在处理时间序列相关的场景时效果明显,在分析语音、视频、天气预报、股票走势预测等方面具有突出优势。
生成对抗网络(GAN)
生成式对抗网络(Generative Adversarial Networks,GAN)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。它解决的问题是从现有样本中学习并创建出新的样本,按照人类对事物的学习过程,逐渐总结规律,而并非使用大量数据训练,所以在新的任务处理中,只需要少量的标记样本就可以训练出高效的分类器
GAN网络模型通过生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。生成模型是给定某种隐含信息,随机产生观测数据,判别模型的主要任务是对样本进行区分,首先训练区分网络,从而提高模型的真假辨识能力,然后训练生成网络,提高其欺骗能力,生成接近于真实的训练样本,两种网络之间形成对抗关系,都极力优化自己的性能,直到达到一种动态平衡状态。