深度学习报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

深度学习报告在写本报告前,阅读了《TheHistoryBeganfromAlexNet:AComprehensiveSurveyonDeepLearningApproaches》,并在网上查看了一些相关的内容,对其整合和理解。但是其中的很多细节还没有足够的时间去探索,有的概念也不是很确定自己说的对不对,还望指正。这篇报告的主要目标是介绍深度学习的总体思路及其应用相关领域,包括有监督(如DNN、CNN和RNN)、无监督(如AE、GAN)(有时GAN也用于半监督学习任务)和深度强化学习(DRL)的思路。在某些情况下,深度强化学习被认为是半监督/无监督的方法。本论文的其余部分的组织方式如下:第一节主要介绍深度学习分类和特征。第二节讨论DNN,第三节讨论CNN;第四节介绍了不同的先进技术,以有效地训练深度学习模型;第五节讨论RNN;第六节讨论AE;第七节讨GAN;第八节中介绍强化学习(RL);第九节解释迁移学习;第十节介绍了深度学习的高效应用方法和硬件;第十一节讨论了深度学习框架和标准开发工具包(SDK)。下面是AI,ML,NN,DL的关系图:一.深度学习分类和特征A.深度学习类型深度学习方法可以分为以下几个类:监督学习,半监督学习,无监督学习,此外,还有另一类学习方法称为强化学习(RL)或深度强化学习(DRL),它们经常在半监督或有时在非监督学习方法的范围内讨论。(1)监督学习将大量的数据输入机器,这些数据被事先贴上标签,例如,要训练一个神经网络来识别苹果或者橙子的图片,就需要给这些图片贴上标签,机器通过识别所有被标记为苹果或橙子的图片来理解数据,这些图片有共同点,因此机器可以利用这些已识别的图片来更准确的预测新图片中的内容到底是苹果还是橙子。他们看到的标记数据越多,看到的数据集越大,预测准确性就越高。所以监督学习是一种使用标注数据的学习技术。在其案例中,环境包含一组对应的输入输出。比如,输入是x_t,智能体预测后的值与标签对比来获得损失值。接着智能体不断迭代调整网络参数,从而更好地近似期望输出。成功训练之后,智能体可对环境问题做出正确回答。监督学习主要有以下几种:深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)(2)无监督学习一种不使用标注数据的学习技术,即不知道输入数据对应的输出结果是什么。在这种情况下,无监督学习只能默默的读取数据,自己寻找数据的模型和规律,而不需要监护人的指导。无监督学习方法通常有聚类、降维和生成技术等。有些深度学习技术擅长聚类和非线性降维,如自编码器(AE)和GAN等。此外,RNN(比如LSTM)和RL也被用作半监督学习[243]。到目前为止,在任何方面无监督学习都达不到监督学习的准确性和有效性。(3)半监督学习一种使用部分标注数据的学习技术(通常被称之为强化学习),半监督学习训练中使用的数据,只有一小部分是标记过的,而大部分是没有标记的。因此和监督学习相比,半监督学习的成本较低,但是又能达到较高的准确度。在一些案例中,深度强化学习(DRL)和生成对抗网络(GAN)常被用作半监督学习技术。此外,包含LSTM的RNN和GRU也可划分为半监督学习。(4)强化学习(RL)强化学习(RL)不同于监督学习和非监督学习。在强化学习(RL)中没有原始已知数据可以学习。强化学习面对的是一个不断变化的状态空间要解决的是一个决策链问题。其目的是找到在当前环境(状态空间)下最佳决策是什么。这里的挑战是,当下的决策好坏当下无法验证和评估,要根据多次决策以后才能知道。就像下棋,当前的决策(棋子落点)要在五步十步棋之后才能判断是好是坏。所以强化学习中并没有大量的原始已知输入数据,机器需要在变化的环境中通过多次的试错学习,再根据某种规则找到产生最佳结果的最佳路径,从而做出最佳决策。比较常见的应用有下棋(包括下围棋和象棋)、机器人、自动驾驶等,这些人工智能技术中都用到了强化学习。B.特征学习通过机器学习解决问题的思路:传感器获得数据——》预处理——》特征提取——》特征选择——》推理,预测和识别(机器学习的部分),中间三部分也叫特征表达,而特征是机器学习系统的原材料,对最终模型影响很重要,数据要能够被很好的表达成特征,但是这一部分一般是靠人工提取特征,而手工提取需要专业知识,费时,靠经验和运气。传统的机器学习特征提取算法包括:尺度不变特征变换(SIFT)、加速鲁棒特征(SURF)、GIST、RANSAC、直方图方向梯度(HOG)、局部二元模式(LBP)、经验模式分解(EMD)语音分析,支持向量机(SVM)、随机森林(RF)、主成分分析(PCA)、核主成分分析(KPCA)、线性递减分析(LDA)、Fisher递减分析(FDA)等。所以就想到能不能自动的学习一些特征,深度学习就是来干这个事的,不需要人参与特征选择的过程,而让机器自动的学习良好的特征。C.应用深度学习的时机和领域人工智能在以下领域十分有用,深度学习在其中扮演重要角色:1.缺乏人类专家(火星导航);2.人们尚无法解释的专业知识(演讲、认知、视觉和语言理解);3.问题的解决方案随时间不断变化(追踪、天气预报、偏好、股票、价格预测);4.解决方案需要适应特定情况(生物统计学、个性化);5.人类的推理能力有限,而问题的规模却很大(计算网页排名、将广告匹配到Facebook、情感分析)。目前几乎所有领域都在应用深度学习。因此,这种方法通常被称为通用学习方法。下图显示了一些示例应用程序D.深度学习的前沿发展深度学习在计算机视觉和语音识别领域有一些突出的成就,如下所述:1)ImageNet数据集上的图像分类Imagenet数据集是目前深度学习图像领域应用得非常多的一个领域关于图像分类、定位、检测等研究工作大多基于此数据集展开。它有1400多万幅图片,涵盖2万多个类别。Imagenet数据集文档详细,有专门的团队维护,使用非常方便,在计算机视觉领域研究论文中应用非常广,几乎成为了目前深度学习图像领域算法性能检验的“标准”数据集。下图显示了2012年深度学习技术的发展历程。时至今日,我们开发的模型ResNet-152在这个数据集上只有3.57%的误差,低于人类约5%的误差。2)自动语音识别深度学习通过TIMIT数据集(通用数据集通常用于评估)完成的小规模识别任务是深度学习在语音识别领域的初次成功体现。TIMIT连续声音语音语料库包含630位来自美国的八种主要英语口音使用者,每位发言人读取10个句子。下图总结了包括早期结果在内的错误率,并以过去20年的电话错误率(PER)来衡量。条形图清楚地表明,与TIMIT数据集上以前的机器学习方法相比,最近开发的深度学习方法(图顶部)表现更好。E.深度学习面临的挑战1.使用深度学习进行大数据的分析(针对此问题,解决方案正在高性能的计算机系统上进行部署)2.深度学习方法要有可扩展性(要能在多个服务器上运行,节约时间)3.在在数据不可用于学习系统的情况下(尤其是对于计算机视觉任务,例如反向图形),生成数据的能力非常重要。(对生成模型进行研究)4.特殊用途设备的低能耗技术,如移动端智能,FPGA等。(正在对网络架构和硬件方面高效率深度学习方法进行研究)5.多任务和迁移学习(泛化)或多模块学习。这意味着要从不同的领域或不同的模型一起学习。(谷歌提交的论文《OneModelToLearnThemAll》[29]介绍了一种新方法,其可以从不同的应用领域学习,包括ImageNet、多种翻译任务、图像标题(MS-COCO数据集)、语音识别语料库和英语解析任务)6.在学习中处理因果关系。二深度神经网络(DNN)A.DNN介绍神经网络需要通过学习过程来从其环境中获取知识,这个过程模拟了生物大脑的工作方式。基本的计算元素(神经元)被称为接受外部源输入的节点(或单元),具有一些内部参数(包括在训练期间学习到的权重和偏差)并产生输出。这个单位被称为感知器。1)单层感知器(SLP)感知器的最简单形式是在输入和输出之间有一个单层的权重连接,模型图如下:其中x1,x2...xm是输入信号,wk1,wk2...wkm是权重,这个参数表示了每个特征xj的重要性,bk是偏差,神经元公式可以用数学表达式如下:其中(.)是非线性的,叫做激活函数。激活函数的作用是将非线性引入神经元的输出,为网络提供非线性的建模能力。如果没有激活函数,那么该网络仅能够表达线性射。此时即使有再多的隐藏层,其整个网络跟单层神经网络也是等价的。因此可以认为,只有加入了激活函数,深度神经网络才具备了分层的非线性映射。激活函数都接受一个数字,并进行特定,固定的计算。在实践中,可能会碰到几种激活函数:Sigmoid(S型激活函数):输入一个实值,输出一个0至1间的值σ(x)=1/(1+exp(−x))tanh(双曲正切函数):输入一个实值,输出一个[-1,1]间的值tanh(x)=2σ(2x)−1ReLU:ReLU代表修正线性单元。输出一个实值,并设定0的阈值(函数会将负值变为零)f(x)=max(0,x)。ReLu激活函数是最近几年比较受欢迎的激活函数,相比于其它两种,它能在SGD中快速收敛。2)多层感知器人工神经网络或者一般神经网络由多层感知器(MLP)由组成,其中包括一个或多个隐藏层,每个隐藏层包括多个隐藏单元(神经元),具有MLP的NN模型模型如下:多层感知器可以用数学表达式(这是一个符合函数)表示如下:DL和传统神经网络由相同的地方也有不同的地方。二者的相同在于deeplearning采用了神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接,这种分层结构,是比较接近人类大脑的结构的。不同之处是为了克服传统神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。传统神经网络中一般采用的是backpropagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛。而DL是逐层训练的训练机制。简单的说,可以分为两步,一是每次训练一层网络,二是调优,使原始表示x向上生成的高级表示r和该高级表示r向下生成的x'尽可能一致。B.梯度下降梯度下降是一种常用的权重优化函数,根据权重造成的误差来调整函数,得到更好的优化代价函数,定义代价函数如下,其中x是输入值,a是输出值。n是训练数据集实例个数,b是偏差,C被称为二次代价函数。C(w,b)越小越好,输出的预测值和真实值差别越小越好。我们训练神经网络的目的是能找到能最小化二次代价函数C(w,b)的权重和偏置:上面的函数有另个变量w,b,通常可以用微积分表示,重复计算梯度C,然后沿着相反的方向移动,沿着山谷“滚落”。每下降到一个地方,就要计算下一步要往哪个方向下去求得极值过程过程可以用下图表示:横坐标为wk,纵坐标为C。权值和偏置的更新规则:是学习率,下面将会对其进行讲解。C.随机梯度下降(SGD)传统梯度下降法会让学习变得相当缓慢,因为它每次都会使用全部训练样本,如果训练数据集过大,会花费很长的时间。而随机梯度下降算法每次只随机选择一个样本来更新模型参数,可能最后只用其中几万条或者几千条的样本,就已经将迭代到最优解了。因此每次的学习是非常快速的。但是缺点是:准确度下降,并不是全局最优;D.小批量梯度下降(Mini-batchGradientDescent)小批量梯度下降是上面两种方法的折中。MBGD在每次更新参数时使用b个样本(b一般为10),算法的训练过程比较快,而且也能保证最终参数训练的准确率举个例子第一个人看一幅画(输入数据),描述给第二个人(隐层)依此类推,到最后一个人(输出)的时候,画出来的画肯定不能看了(误差较大)。反向传播把画拿给最后一个人看(求取误差),然后最后一个人就会告诉前面的人下次描述时需要注意哪里(权值修正)。在深度学习中,反向传播就是根据最后的损失值C(w,b)用梯度下降法调整前面每一层的权重取值。不断地交替进行正向传播(求损失

1 / 43
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功