深度学习基础概念(二)(科普入门)

时间:2024-03-17 11:29:44
1、人工智能(AI)、机器学习(ML)和深度学习(DL):
人工智能是终极目标,机器学习是实现人工智能的一种分支,深度学习隶属于人工神经网络体系,人工神经网络是基于统计的机器学习方法,传统的神经网络是一种浅层机器学习,深度学习是传统神经网络发展下的新一代神经网络。深度学习是通过建立、模拟人脑的信息处理神经结构来实现对外部输入的数据进行从低级到高级的特征提取,从而能够使机器理解学习数据,获得信息。
2、深度学习的发展历程:
(1)萌芽期:从BP算法的发明(1970s~1980s)到2006年期间;
(2)迅速发展期(2006~2012):主要以深度无监督学习为主的研究阶段。 从2006年Hinton提出“深度学习”概念和深度学习的训练方法之后揭开了深度学习发展的帷幕;
(3)爆发期(2012至今):2012年Hinton团队的Alexnet模型在imagenet竞赛中取得惊人成绩。现在各大互联网公司纷纷开始成立研究部门进行深度学习工程化的研究,以谷歌、微软、百度为代表,将深度学习广泛应用在语音识别、图像检索、翻译等领域。
3、深度学习的基础概念:
(1)特征(:Feature):数据的特征。(例子:书的内容。)
(2)标签(Label):数据的标签。(例子:书的类别,“计算机”“图形学”“英文书”“教材”等。)
(3)学习(Learning):将很多数据丢给计算机分析,以此来训练该计算机,培养计算机给数据分类的能力。换句话说,学习指的就是找到特征与标签的映射(mapping)关系。这样当有特征而无标签的未知数据输入时,我们就可以通过已有的关系得到未知数据标签。
(4)有监督学习(Supervised Learning):不仅把训练数据丢给计算机,而且还把分类的结果(数据具有的标签)也一并丢给计算机分析。 由于计算机在学习的过程中不仅有训练数据,而且有训练结果(标签),因此训练的效果通常不错。训练结束之后进行测试。计算机进行学习之后,再丢给它新的未知的数据,它也能计算出该数据导致各种结果的概率,给你一个最接近正确的结果。
(5)无监督学习(Unsupervised Learning):只给计算机训练数据,不给结果(标签),因此计算机无法准确地知道哪些数据具有哪些标签,只能凭借强大的计算能力分析数据的特征,从而得到一定的成果,通常是得到一些集合,集合内的数据在某些特征上相同或相似。
(6)半监督学习(Semi-supervised Learning):给计算机大量训练数据与少量的分类结果(具有同一标签的集合)。
(7)聚类(Clustering):无监督学习的结果。聚类的结果将产生一组集合,集合中的对象与同集合中的对象彼此相似,与其他集合中的对象相异。
(8)分类(Classification):有监督学习的两大应用之一,产生离散的结果。
(9)回归(Regression):有监督学习的两大应用之一,产生连续的结果。
(10)学习率(Leraning Rate):学习率是一个重要的超参数,它控制着我们基于损失梯度调整神经网络权值的速度,大多数优化算法(如SGD、RMSprop、Adam)对它都有涉及。学习率越小,我们沿着损失梯度下降的速度越慢。从长远来看,这种谨慎慢行的选择可能还不错,因为可以避免错过任何局部最优解,但它也意味着我们要花更多时间来收敛,尤其是如果我们处于曲线的至高点。
以下等式显示了这种关系:
新权值 = 当前权值 - 学习率 × 梯度
过小(上)和过大(下)的学习率如下图所示:
深度学习基础概念(二)(科普入门)
通常,学习率是用户自己随意设的,你可以根据过去的经验或书本资料选择一个最佳值,或凭直觉估计一个合适值。这样做可行,但并非永远可行。事实上选择学习率是一件比较困难的事。
下图显示了应用不同学习率后出现的各类情况:
深度学习基础概念(二)(科普入门)
可以发现,学习率直接影响我们的模型能够以多快的速度收敛到局部最小值(也就是达到最好的精度)。一般来说,学习率越大,神经网络学习速度越快。如果学习率太小,网络很可能会陷入局部最优;但是如果太大,超过了极值,损失就会停止下降,在某一位置反复震荡。也就是说,如果我们选择了一个合适的学习率,我们不仅可以在更短的时间内训练好模型,还可以节省各种云的花费。
4、经典深度学习网络:
(1)卷积神经网络(Convolutional Neural Network):
通过结合局部感知区域、共享权重、空间或时间上的池化降采样三大特点来充分利用数据本身包含的局部性等特征,优化网络结构,并且保证一定程度上的位移的不变性。它的权值共享网结构相似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。因为这样的结构特点使其尤其适合大图像数据的机器学习,可以使数量庞大的图像识别问题不断降维。
CNN的主要结构包括卷积部分和全连接部分。卷积部分包括卷积层、**层、下采样层,通过卷积部分的叠加提取特征;全连接部分连接特征提取和输出计算损失和完成识别分类等功能。
CNN是第一个真正成功地采用多层层次结构网络的具有鲁棒性的深度学习方法。CNN适应性强,善于挖掘数据局部特征,使得CNN已经成为众多科学领域的研究热点之一,在模式识别中的各个领域得到应用并取得了很好的结果。海量标记数据和GPU并行计算的发展,使卷积神经网络研究大放异彩。
(2)深度置信网络(Deep Belief Networks):
深度置信网络的基本结构单元是受限玻尔兹曼机(Restricted Boltzmann Machine) 。 受限玻尔玆曼机通过学习数据的概率密度分布提取抽象特征。深度置信网络通过RBM的叠加,逐层学习数据概率分布,即提取多种概率特征。DBN训练过程分为无监督训练阶段和微调阶段。无监督贪婪逐层训练方法获得各层的条件概率分布,微调阶段包括利用带标签数据和BP算法对网络参数进行调整。DBN具有高灵活性,容易拓展,不仅在图像处理、语音识别领域网络预训练中应用广泛,也是构建新型深度学习网络的结构基础。
逐层贪婪算法:主要思路是每次只训练网络中的一层,即我们首先训练一个只含一个隐藏层的网络,仅当这层网络训练结束之后才开始训练一个有两个隐藏层的网络,以此类推。在每一步中,我们把已经训练好的前k-1层固定,然后增加第k层(也就是将我们已经训练好的前k-1的输出作为输入)。每一层的训练可以是有监督的(例如,将每一步的分类误差作为目标函数),但更通常使用无监督方法(例如自动编码器,我们会在后边的章节中给出细节)。这些各层单独训练所得到的权重被用来初始化最终(或者说全部)的深度网络的权重,然后对整个网络进行“微调”(即把所有层放在一起来优化有标签训练集上的训练误差))
(3)栈式自编码网络(Stacked Autoencoder Networks):
栈式自编码网络的基本单元是自编码器(AE)。自编码器包括编码层和解码层,通过编码-解码的方式复现输入信号。堆栈式自编码网络是累加自编码器,通过无监督贪婪逐层训练得到每层自编码器的权重,在每一层得到了关于输入数据的另一种表达形式,这些不同的表示就是特征,在原有的特征基础上加入自动学习到的特征可以提高学习能力,是深度神经网络预训练的重要方法之一。
(4)递归神经网络(RNN):
RNN,是两种人工神经网络的总称,一种是时间递归神经网络(recurrent neural network),另一种是结构递归神经网络(recursive neural network)。
CNN、DBN、SAN的模型的隐层之间彼此独立,逐层提取特征,但这样的连接方式忽略了数据间的关联性。递归神经网络会对上一层的信息进行记忆,添加到当前层的计算输出中,在结构中体现为隐层间有节点相连。递归神经网络是非常强大的动态系统,通常用于描述动态时间行为序列,使状态数据在网络中循环传递。它更擅长语音文本信息,一次处理一个输入序列元素每个节点同时包括过去时刻序列元素的历史信息,一 般采用时间反传(Back Propagation Through Time)训练算法来解决非长时依赖问题。
5、深度学习现阶段研究热点:
(1)改进网络训练技巧,提升网络实用性能:
机器学习通过准确率损失(函数)值衡量一个学习网络的好坏,深度学习网络训练的目标就是高准确率和低损失率。经过大量实验研究,针对深度学习网络训练也有技巧和方法来提升算法性能,增强鲁棒性。
准确率(Accuracy): 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。
损失函数(Loss Function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。
(1.1)用以解决过拟合问题的“数据提升”/“Dropout”:
过拟合是指训练样本不足时,一个模型从中学习到的不能推广到新数据的问题。 数据提升Dropout其本质都是随机打乱数据的相关性。 数据提升是指对有限的样本数据随机变化,生成新样
本,同时保证数据彼此间相似性低,有利于抑制过拟合,使 模 型 泛 化 能 力 更 好。Dropout通过设 置Dropout参数值,来抑制一定比例神经元活性,使其输出为0,可 以 视 为 一 种 模型平均,把每个批次的训练过程中,随机忽略的隐层节点不同,生成的不同模型平均。这样权值的更新不再依赖于有固定关系隐含节点的共同作用,有效阻止过拟合现象。
(1.2)参数调优(fine-tune):
对于一个已知的深度学习网络结构,如何提升网络的性能,是我们研究的重点。从理论结构到实际应用需要不断地调整参数,即参数调优。不同的深度学习网络结构适合于不同的实际应用,除了结构固有的优点,还可以通过改变反向传播(BP)算法**函数(Activation Functions)来提升网络性能。常用的反向传播算法有:随机梯度下降法(Stochastic Gradient Descent)、自适应梯度下降方法(Adaptive Gradient Descent)等。 **函数常用的有tanh、sigmoid、ReLU等。ReLU函数的应用是对深度学习应用发展的推进,对于人大脑皮层的工作过程研究,处理信息时有大量神经元处于抑制状态,只有少数的神经元**工作,是非常高效的。这与ReLU的原理不谋而合,稀疏连接也是表达了这一生理结构。
**函数(AF):人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。引入**函数是为了增加神经网络模型的非线性。没有**函数的每层都相当于矩阵相乘,叠加若干层后,还是矩阵相乘。
(随机梯度下降算法(SGD):训练模型的目的是使得目标函数达到极小值。对于一个深度神经网络,它的参数数目比较庞大,因此目标函数通常是一个包含很多参量的非线性函数。对于这个非线性函数,我们采用的是随机梯度下降算法来对参数进行更新。这里的随机是指每次迭代过程中,样本都要被随机打乱,这个也很容易理解,打乱是有效减小样本之间造成的参数更新抵消问题。SGD是最基本的随机梯度下降,它是指每次参数更新只使用一个样本,这样可能导致更新较慢。具体步骤如下:
①对网络参数进行初始化,一般情况下,权重初始化为均值是0,方差为0.01的高斯分布随机值,而偏置统一初始化为0;
②将参数代入网络计算前馈输出值,从而可以根据已有的目标标签得出目标函数值;
③根据目标函数值以及各参数与目标函数所构成的树结构,运用BP算法计算出每个参数的梯度;
④设置学习率大小(随着迭代的步骤增多,学习率通常要逐渐减小,这样可以有效避免训练中出现误差震荡情况),进行参数更新,最一般的更新方式是 新参数=旧参数-学习率×梯度;
⑤重复进行第2~4步,直到网络收敛为止。
(2)深度学习网络体系
(2.1)卷积神经网络(CNN)体系:
卷积神经网络(CNN)是发展最为深入的深度学习网络。卷积神经网络的结构特点更适合解决图像领域问题。通过对其结构的不断研究和改进,形成了一系列网络模型,在广泛实际应用中取得成功。一方面创造性的提出增加跳跃连接结构,克服深度训练难题,增加网络深度。深度学习的学习能力通过深度得以提高,但是深度的增加不仅带来参数激增数据量增大,而且造成训练过程中反向传播困难。突破深度限制是未来深度学习发展的必然趋势。
深度学习基础概念(二)(科普入门)
网络结构加深提升准确率,验证了深度学习网络的深度价值和潜力。另一方面改变卷积神经网络结构,典型的包括全卷积网络(Fully Convolutional Networks)。FCN 去掉网络中的全连接层,全部利用卷积结构进行处理数据,使图像级理解上升为像素级理解。全连接结构参数占主要部分,且运算耗时,全卷积网络可以满足实时性要求,目前涌现一大批基于FCN的泛,例如边缘检测、视觉跟踪、图像分割等。
全卷积网络(Fully Convolutional Networks):FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类。)
(2.2)栈式自编码网络(SAE)体系:
基于自编码的深度学习体系也在不断丰富,常用的有稀疏自编码网络(Sparse Auto-encoder, SAEs)、降噪自编码网络(Denoising Auto-encoders,DAEs)和收缩自编码网络(Contractive Auto-encoders,CAEs)。稀疏自编码器(SAEs)通过稀疏限制,即控制神经元大多数时间处于抑制状态,来对无标记数据习,得到的特征往往优于数据的原始表达,在实际应用中取得更好的结果;降噪自编码器(DAEs)通过在原始数据加入随机噪音来使网络学习添加了噪声的数据以提高学习能力;收缩自编码网络(CAEs)通过在损失函数加入惩罚项,增强了特征学习的鲁棒性.
(2.3)递归神经网络(RNN)体系:
RNN网络重视反馈作用,并储存当前状态和过去状态的连接,适用于文本、语言等时间序列特征明显的数据处理。 针对传统RNN网络存在问题,提出长短期记忆神经网络(Long short-term memory,LSTM)适用于处理和预测时间序列中间隔和延迟非常长的问题,在预测文本和语音识别中表现优异;GRU(Gated Recurrent Unit)模型是LSTM 模型的改进,在实际应用中,更具有竞争力,性能更稳定。
(3)构建学习新模式———半监督深度学习
机器学习最常见的就是监督学习和无监督学习,无论浅层学习还是深层学习。无监督学习主要用于网络模型的预训练,监督学习用于提高网络学习能力。通过对人类的学习过程进行研究,对于一种形体事物的认知学习,是少量带标签数据学习,结合大量无标签的图像进一步学习。而现有的无监督+监督学习是不符合人类的学习习惯。在此基础上,提出半监督学习的方法,不是简单的无监督学习和监督学习的叠加,而是将两者的网络结构相融合。 主要有阶梯网络(Ladder Network、判别深度置信网、卷积深度网络。
(4)深度强化学习———跨领域融合的人工智能决策算法
高级人工智能领域中,感知能力和决策能力都是衡量智能水平的重要指标。强化学习(Reinforcement Learning)能够直接输入高维感知以做出决策控制智能体(agent),但需要依赖人工提取特征;深度学习具有强感知能力,但缺乏一定的决策能力。因此,将两者结合,优势互补,达到合作共赢的效果。深度强化学习是一种更接近人类思维方式的人工智能方法。2013年深智团队提出 的深度Q网络 (DQN),是将卷积神经网络和 Q 学习结合,并集成经验回放技术实现的,实现了端对端的学习控制。深度 Q 网络是深度强化学习领域的具开创性意义的工作。2014年Guo等提出将蒙特卡罗树搜索与深度 Q 网络结合,实现了Atari游戏的实时处理,游戏表现也普遍高于原始DNQ网络。深度强化学习具有很强的时间依赖性,递归神经网络适合处理与时间序列相关的问题,因此强化学习与递归神经网络的结合也是深度强化学习的主要形式。2015年Hausknecht等 结合 LSTM 提 出了深度递归 Q 网络(DRQN),在 缺失若干帧的数据中也取得很好的实验结果,鲁棒性更好。2016年,深智团队提出了基于DRL的计算机围棋程序———初奕号,成为深度强化学习的典型应用。深度强化学习在游戏、智能驾驶、机器人、智能制造等领域还有待深入研究。
强化学习(Reinforcement Learning):又称再励学习、评价学习,是一种重要的机器学习方法,在智能控制机器人及分析预测等领域有许多应用。但在传统的机器学习分类中没有提到过强化学习,而在连接主义学习中,把学习算法分为三种类型,即非监督学习(unsupervised learning)、监督学习(supervised leaning)和强化学习。
蒙特卡罗树搜索(The monte carlo search tree):当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。)
(5) 基于可视化的理论研究
深度学习的成功背后缺乏深入理论研究的支撑。深度学习的学习过程是端对端的“黑箱”操作过程,对于隐层的学习过程,学习效果都无法监控和评估,网络模型出现问题主要还是通过调节外部参数来试探性的解决,这样的学习模式,对于理解和提升网络性能是不利的,虽然深度学习是基于人工神经网络模拟大脑皮层推断分析数据的复杂层状网络结构,但对于其学习的本质还是未知的。为了研究深度学习的学习本质,2013年提出可视化理解卷积神经网络。通过可视化显示每一隐层学到的特征,然后调整网络提高精度。可视化方法对于深入理解网络具有重要意义,主要有以下几种方法:可视化**层、可视化权重、图像检索最大化**神经元、用t-SNE嵌入代码等。
6、深度学习目前的局限:
(1)理论研究缺乏、无监督学习能力弱、缺少逻辑推理和记忆能力等。深度学习的研究多是基于实验训练进行的,但是对其内部原理,学习本质研究很少。现在的研究多是在网络架构、参数选择等方面,而且深度学习得到的结果使局部最优解,并不是全局最优解,还有进一步提升空间,也需要更加完备深入的理论支撑其发展。.
(2)目前主流应用还是以监督学习为主的,但在实际生活中,无标签未知的数据占主体,所以更应该应用可以发现事物内在关系的无监督学习,但无监督学习未取得突破性的成果,未来还有更广阔的发展空间。
(3)深度学习是人工智能发展的巨大推力,但是深度学习现阶段更侧重于处理数据,在智能方向发展较少,如记忆能力和逻辑推理能力,在面对复杂现实任务时,预测和存储包含信息序列的内容是必要的,这也将成为未来深度学习的一个研究方向。深度学习对未来社会发展仍将具有重要意义,需要不断深入研究,多方向多角度更全面的开发深度学习的潜在价值。