人工智能:神经网络与深度学习
**
人工智能:神经网络与深度学习**1956年夏季,在美国的达特茅斯学院中,JohnMcCarthy、MarvinMinsky、ClaudeShannon、AllenNewel、HerbertSimon等科学家聚在一起,共同研究和探讨用机器模拟智能的一系列有关问题,并首次提出了“人工智能”这一术语,它标志着“人工智能”这门新兴学科的正式诞生。
1人工智能人工智能是计算机科学的一个分支,它试图了解智能的实质,并生产出一种新的能以与人类智能相似的方式做出反应的智能机器。人工智能是研究使计算机来模拟人的某些思维过程和智能行为的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。实现人工智能是人类长期以来一直追求的梦想。虽然计算机技术在过去几十年里取得了长足的发展,但是实现真正意义上的机器智能至今仍然困难重重,截止目前,还没有一台电脑能产生“自我”的意识。伴随着神经解剖学的发展,观测大脑微观结构的技术手段日益丰富,人类对大脑组织的形态、结构与活动的认识越来越深入,人脑信息处理的奥秘也正在被逐步揭示。如何借助神经科学、脑科学与认知科学的研究成果,研究大脑信息表征、转换机理和学习规则,建立模拟大脑信息处理过程的智能计算模型,最终使机器掌握人类的认知规律,是“类脑智能”的研究目标。类脑智能是涉及计算科学、认知科学、神经科学与脑科学的交叉前沿方向。类脑智能的实现离不开大脑神经系统的研究。众所周知,人脑是由几十多亿个高度互联的神经元组成的复杂生物网络,也是人类分析、联想、记忆和逻辑推理等能力的来源。神经元之间通过突触连接以相互传递信息,连接的方式和强度随着学习发生改变,从而将学习到的知识进行存储。模拟人脑中信息存储和处理的基本单元——神经元而组成的人工神经网络模型具有自学习与自组织等智能行为,能够使机器具有一定程度上的智能水平。神经网络的计算结构和学习规则遵照生物神经网络设计,在数字计算机中,神经细胞接收周围细胞的刺激并产生相应输出信号的过程可以用“线性加权和”及“函数映射”的方式来模拟,而网络结构和权值调整的过程用优化学习算法实现。目前神经网络已经发展了上百种模型,在诸如手写体识别、显著性检测、语音识别和图像识别、模式识别、人机交互、优化算法、深度学习等技术领域取得了非常成功的应用。
2机器学习机器学习是人工智能的一个分支,也是用来实现人工智能的一个有效手段。简单来说,机器学习就是通过算法,使得机器能从大量历史数据中学习规律,从而对新的样本做智能识别或对未来做预测。使用大量数据和算法来“训练”机器,由此带来机器学习如何完成任务。机器学习主要分三种形式,监督学习、非监督学习、半监督学习。最常见的是监督学习中的分类问题。监督学习的训练样本都含有“标签”,非监督学习的训练样本中都不含“标签”,半监督学习介于监督学习和非监督学习之间。在监督学习中,因为训练集全部已经标记了,所以关注点通常是在未来测试数据上的性能。而在半监督学习的分类问题中,训练数据中包含未标记的数据。因此,存在两个不同的目标。一个是预测未来测试数据的类别,另一个是预测训练样本中未标记实例的类别。
2.1监督学习监督学习的训练集要求包括输入输出,也可以说是特征和目标。训练集中的目标是由人为标注的。监督学习最常见的是分类问题,通过已有的训练样本去训练得到一个最优模型,再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的。也就具有了对未知数据分类的能力。监督学习的目标往往是让计算机去学习已经创建好的分类系统。常见的有监督学习算法有:回归分析和统计分类。
2.2非监督学习非监督学习事先没有任何训练样本,而需要直接对数据进行建模。样本数据类别未知,需要根据样本间的相似性对样本集进行分类,试图使类内差距最小化,类间差距最大化。通俗点来说,就是实际应用中不少情况下无法预先知道样本的标签,也就是说没有训练样本对应的类别,因而只能从原先没有样本标签的样本集开始学习分类器设计。非监督学习里典型的例子是聚类。聚类的目的在于把相似的东西聚在一起,而并不关心这一类是什么。
2.3半监督学习半监督学习所给的数据有的是有标签的,有的是没有标签的。单独使用有标签的样本,能够生成有监督分类算法。单独使用无标签的样本,能够生成非监督聚类算法。两者都使用,希望在有标签的样本中加入无标签的样本,增强有监督分类的效果;同样的,希望在无标签的中加入有标签的样本,增强非监督聚类的效果。一般而言,半监督学习侧重于在有监督的分类算法中加入无标记样本来实现半监督分类。
3深度学习深度学习是机器学习领域一个新的研究方向,近年来在图像识别与检索、语言信息处理、语音识别等多领域中都取得较为成功的发展。深度学习应用的发展基础在于建立模型来模拟人类大脑的神经连接结构,在处理图像、声音和文本这些信号时,通过多个变换阶段分层对数据特征进行描述,进而给出数据的解释。深度学习是实现机器学习的一种技术,现在所说的深度学习大部分都是指神经网络。神经网络是受人类大脑的启发:神经元之间的相互连接。深度学习的概念源于人工神经网络的研究,含多隐层的神经网络就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习的概念最早Hinton等于2006年提出,基于深信度网(DBN)提出非监督贪婪训练逐层算法,为解决深层结构相关的优化难题带来希望。Lecun等人提出的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能。源自于Hopfield提出的霍普菲尔德网络变化而来的循环神经网络,成功应用于语音识别、语言模型、机器翻译等处理和预测序列数据。目前卷积神经网络和循环神经网络是应用最广的两种深度学习模型。
3.1卷积神经网络卷积神经网络(ConvolutionalNeuralNetworks,CNN)是近年发展起来,并引起广泛重视的一种高效的识别方法。1962年,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的局部互连网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络。Fukushima在1980年提出的新识别机是卷积神经网络的第一个实现网络。随后,更多的科研工作者对该网络进行了改进。其中,具有代表性的研究成果是Alexander和Taylor提出的“改进认知机”,该方法综合了各种改进方法的优点并避免了耗时的误差反向传播。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。卷积神经网络是一种前馈神经网络,它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。卷积网络是为识别二维形状而特殊设计的一个多层神经网络,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。卷积神经网络与普通神经网络的区别在于,卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。在卷积神经网络的卷积层中,一个神经元只与部分邻层神经元连接。在CNN的一个卷积层中,通常包含若干个特征平面(featureMap),每个特征平面由一些矩形排列的的神经元组成,同一特征平面的神经元共享权值,这里共享的权值就是卷积核(filter)。卷积核一般以随机小数矩阵的形式初始化,在网络的训练过程中卷积核将学习得到合理的权值。共享权值带来的直接好处是减少网络各层之间的连接,同时又降低了过拟合的风险。子采样也叫做池化(pooling),通常有均值子采样(meanpooling)和最大值子采样(maxpooling)两种形式。子采样可以看作一种特殊的卷积过程。卷积和子采样大大简化了模型复杂度,减少了模型的参数。
3.2循环神经网络循环神经网络(Recurrentneuralnetwork,RNN)源自于1982年由JohnHopfield提出的霍普菲尔德网络。霍普菲尔德网络因为实现困难,在其提出的时候并且没有被合适地应用。该网络结构也于1986年后被全连接神经网络以及一些传统的机器学习算法所取代。然而,传统的机器学习算法非常依赖于人工提取的特征,使得基于传统机器学习的图像识别、语音识别以及自然语言处理等问题存在特征提取的瓶颈。而基于全连接神经网络的方法也存在参数太多、无法利用数据中时间序列信息等问题。随着更加有效的循环神经网络结构被不断提出,循环神经网络挖掘数据中的时序信息以及语义信息的深度表达能力被充分利用,并在语音识别、语言模型、机器翻译以及时序分析等方面实现了突破。循环神经网络的主要用途是处理和预测序列数据。在全连接神经网络或卷积神经网络模型中,网络结构都是从输入层到隐含层再到输出层,层与层之间是全连接或部分连接的,但每层之间的节点是无连接的。但是如果要预测句子的下一个词语是什么,一般需要用到当前词语以及前面的词语,因为句子中前后词语并不是独立的。从网络结构上,循环神经网络会记忆之前的信息,并利用之前的信息影响后面节点的输出。也就是说,循环神经网络的隐藏层之间的节点是有连接的,隐藏层的输入不仅包括输入层的输出,还包括上一时刻隐藏层的输出。长短时记忆网络(LongShortTerm,LSTM)是一种循环神经网络特殊的类型,可以学习长期依赖信息。LSTM由Hochreiter和Schmidhuber于1997年提出,并在近期被AlexGraves进行了改良和推广。在很多问题,LSTM都取得相当巨大的成功,并得到了广泛的使用。LSTM通过特别的设计来避免长期依赖问题。
4实现工具神经网络和深度学习的程序实现语言和框架有很多,语言有Python、C++、Java、Go、R、Matlab、BrainScript、Julia、Scala和Lua等,框架有TensorFlow、Caffe、CNTK、MXNet、Torch、Theano和Neon等。其中Python语言由于其简洁性、易读性以及可扩展性,已经成为目前最受欢迎的深度学习程序设计语言,TensorFlow由于其灵活性、高效性和可移植性,成为目前最流行的一种深度学习框架。
4.1PythonPython语言20世纪90年代初由GuidovanRossum发明,名字的灵感来自于英国喜剧团体MontyPython,是一种极具可读性和通用性的面向对象的编程语言。Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。Python的设计哲学是“优雅”、“明确”、“简单”。Python开发的哲学是“用一种方法,最好是只有一种方法来做一件事”。Python是一门解释型的高级编程语言,简单明确,拥有很好的扩充性,可以非常轻松地用其他语言编写模块供调用,用Python编写的模块也可以通过各种方式轻松被其他语言调用。所以一种常见的Python使用方式是,底层复杂且对效率要求高的模块用C/C++等语言实现,顶层调用的API用Python封装,这样可以通过简单的语法实现顶层逻辑,故而Python又被称为“胶水语言”。如今的深度学习框架中,大部分框架基本上要么官方接口就是Python,要么支持Python接口。
4.2TensorFlowTensorFlow是Google基于DistDelief进行研发的第二代人工智能系统,是一个开源的机器学习库。最初由Google大脑小组的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,如计算机视觉,语音识别,自然语言理解等。其主要特点有:灵活、高效、可移植以及多语言支持等。TensorFlow是一个采用数据流图(DataFlowGraphs),用于数值计算的开源软件库。TensorFlow的名字本身描述了它自身的执行原理:Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算。在图(Graph)这种数据结构中包含两种基本元素:节点(node)和边(edge)。这两种元素在数据流图中有自己各自的作用。节点用来表示要进行的数学操作,另外,任何一种操作都有输入/输出,因此它也可以表示数据的输入的起点/输出的终点。边表示节点与节点之间的输入/输出关系,一种特殊类型的数据沿着这些边传递。这种特殊类型的数据在TensorFlow被称之为Tensor,即张量,所谓的张量通俗点说就是多维数组。当向这种图中输入张量后,节点所代表的操作就会被分配到计算设备完成计算。
参考文献《神经网络与深度学习:基于tensorflow框架和python技术实现》,包子阳,电子工业出版社。
人工智能未来发展论文
人工智能是用人工的方法和技术模仿、延伸和扩展人的智能,实现某些“机器思维”。以下是小编整理分享的人工智能未来发展论文的相关文章,欢迎阅读!
人工智能未来发展论文
人工智能未来发展论文篇一人工智能的应用与发展研究
摘要:人工智能是用人工的方法和技术模仿、延伸和扩展人的智能,实现某些“机器思维”。本文在阐述人工智能定义的基础上,详细分析了人工智能的应用领域和当前的发展状况,深入探讨了人工智能未来的发展。
关键词:人工智能;应用;问题;发展
当前,人工智能这个术语已被用作“研究如何在机器上实现人类智能”这门学科的名称。从这个意义上说,可把它定义为:是一门研究如何构造智能机器或智能系统,使它能模拟、延伸、扩展人类智能的学科。具体来说,人工智能就是研究如何使机器具有能听、会说、能看、会写、能思维、会学习、能适应环境变化、能解决各种实际问题的一门学科。
一、人工智能的应用现状
大部分学科都有各自的研究领域,每个领域都有其独有的研究课题和研究技术。在人工智能中,这样的分支包含自动定理证明、问题求解、自然语言处理、人工智能方法、程序语言和智能数据检索系统及自动程序设计等等。在过去的30年中,已经建立了一些具有人工智能的微机软件系统。
目前,人工智能的应用领域主要有以下几个方面:一是问题求解。到目前为止,人工智能程序能知道如何思考他们解决的问题;二是逻辑推理与定理证明。逻辑推理是人工智能研究中最持久的领域之一。定理寻找一个证明或反证,不仅需要有根据假设进行演绎的能力,而且许多非形式的工作,在人工智能方法的研究中定理证明是一个极其重要的论题。三是自然语言处理。自然语言的处理是人工智能技术应用与实际领域的典范,目前该领域的主要课题是:计算机系统如何以主题和对话情景为基础,注重大量的尝试一一世界知识和期望作用,生
深度神经网络带来的影响
人工智能近几年实现了爆炸式发展,深度学习可以说是其主要的推动力。
在计算机视觉领域,大部分的问题都已经开始使用深度神经网络进行解决,也确实取得了广泛的成功。在很多视觉任务中,如图像识别、语义分割、目标检测与跟踪、图像检索等,作为提取特征的CNN网络模型往往起到了关键的作用。我们经常见到最新的方法将基础网络换一下,性能就会得到很大的提升。因此,研究并设计一个更好的网络模型变得至关重要。
基础网络模型的结构样例最新研究进展经典的神经网络模型主要在“宽度”与“深度”方面进行不同程度的扩增。借助于大规模数据的训练,AlexNet、VGG-16、VGG-19等经典网络通过宽度或深度增加的参数可以有效地提升其模型的表达能力。但当网络变得越来越深,其训练难度也随之相应增加,反而会导致性能的下降。最近的ResNet和HighwayNetworks等方法通过引入Skip跳跃结构来试图解决极深网络在优化上带来的问题。
ResNet和HighwayNetworks结构的简单示意图
最新的一些研究尝试从其他角度来解释Highway、ResNet和GoogLeNet等网络结构表现优异的原因。其中我在微软实习的导师王井东研究员、实习生魏祯和张婷以及曾文君研究员提出DeepFusion(JingdongWang,ZhenWei,TingZhang,WenjunZeng:Deeply-FusedNets.CoRRabs/1605.07716(2016))深度融合的概念,认为不同分支的网络在中间层进行融合(加和或拼接等方式)能够(1)产生很多潜在的共享参数的基础网络,(2)同时优化信息的流动,(3)从而帮助深层网络的训练过程。
DeepFusion深度融合最简单形式的概念示意图
我们可以发现很多有代表性的网络结构基本都可以按照深度融合的概念进行理解。除去LeNet、AlexNet、VGGNet等单分支网络,近两年提出的ResNet、HighwayNetworks、GoogLeNet系列等网络均可以看作是不同程度上的深度融合网络。在这个概念下,我们发现今年新的Inception-v4、FractalNet、DenseNet、ResNeXt以及我们新提出的Merge-and-Run等网络结构在融合方式上进行了更多的设计和探索,使得中间的融合次数和分支数目更多,从而得到更多的基础网络和更优的信息流动,最终取得更好的性能表现。
近期一些深度神经网络模型的基本结构示意图
康奈尔大学的SergeBelongie团队也有类似的观察与发现,他们解释ResNet其实是众多相对较浅的潜在网络的一个集成。在模型的测试阶段发现将网络中的一些模块去掉,剩下的网络模型依然具有不错的表现。
将ResNet中的某些模块移除的实验示意图
最近提出的一些新的深度神经网络方法也从侧面印证了这方面的研究,如ResNetwithStochasticDepth、FractalNet和Swapout等使用Drop-path的方法与上述移除Residual模块的研究有着异曲同工之妙。ResNetofResNet、ResNeXt、Multi-ResidualNetworks和DenseNet等增加分支或路径数目的方法均得到了性能上的提升,从某种程度上验证了增加基础网络数目对整体网络模型的影响。
我们的工作
我们沿着deepfusion的思路更进一步地研究了类似ResNet、Highway、Inception等结构的深度融合网络,探索了“深度”在神经网络当中究竟带来了什么。基于研究观察与分析,我们又提出了一个新的网络模型,在不同数据集上均取得了不错的表现。
一、深度融合网络剖析首先我们从网络结构和实验分析上展示这种多分支融合的网络跟多个潜在网络集成的关系。
多分支融合的网络与集成网络的结构类似
通过上图可以发现多分支融合的网络形式可以近似很多潜在网络的集成过程,区别是没有中间的信息交互,只是他们共享对应层的网络参数。通过10组不同深度的网络结构实验发现,这样一个共享参数的集成网络与带信息交互的深度融合网络性能表现很相似。
深度融合网络与集成网络的表现类似
二、深度带来更多组成网络下一步就可以利用集成学习中的一些思路来指导我们对该类型的深度融合网络进行剖析。首先是研究其潜在的基础网络数目,很明显上面图中融合3次的网络能够组合8个基础网络,即2^3个。那么我们可以发现增加融合次数可以提升基础网络的组合数目。那么像ResNet、Highway、Inception等形式的网络,增加“深度”带来的一个影响就是增加了其潜在基础网络的组合数目(EnsembleSize)。
不同融合次数会得到不同数目的组合网络(路径)
我们也通过实验在不同深度的网络结构上验证了:增加组合数目能像传统Ensemble理论中增加EnsembleSize一样提升整体性能。
较多的组合网络数目能够取得更好的结果
我们也通过实验在不同深度的网络结构上验证了增加组合网络数目能够提升整体性能,这也与传统Ensemble理论中增加EnsembleSize能提升性能的结论相吻合。我们可以看到ResNet在增加深度的同时,极大地增加了组合数目,这也是其性能优异的原因之一。
三、深度影响整体性能我们继续研究每一个基础组合网络,并且探索在深度融合的过程中其相互之间会产生怎样的影响。对比每个网络单独分开训练得到的模型,我们发现,深度融合网络里较深的组合网络性能得到了提升,但较浅的组合网络性能反而下降了。我们猜想在训练过程中,由于浅层的网络容易收敛,它们能够帮助深层的网络进行优化。但深度融合网络的各个潜在的组成网络是共享参数的,极深的网络可能会影响较浅网络的求解空间与难度,从而产生相互影响性能往中间靠拢的现象。
每一个单独的组成网络行为分析
既然我们认为最终的表现是一种集成的近似,那么我们是否可以着手寻找更优的组合网络以达到整体性能的提升?通过上述组合网络之间相互影响的启发,我们认为极深的网络会产生“拖后腿”的效果,反而较深但又不是特别深的“中间”网络会对结果影响比较大。上图的实验结果也验证了我们的这个想法:(a)显示了每个组成网络由于共享参数导致的性能变化;(b)显示了每个组成网络对整体网络(ensemble)的相对贡献程度。
我们依然需要浅层网络来帮助训练较深网络,而且实际设计神经网络的时候很难做到只保留中间深度的网络结构。那么一个折中的方案是把这里面最深的组成网络去掉,这样看看对结果会产生什么影响。
去除最深的组成网络(重新训练或只是测试时候去除)
上图三个方法的实验结果表明,去除极深的组成网络不会对整体性能产生太大影响,有时候反而会提高最终结果。
去除极深的组成网络不会影响太大,大部分情况下反而会提升性能
四,提出新的方法基于上述观察,我们认为一个好的网络结构应该包含如下两个特性:足够多的潜在网络数目,以及足够好的组成网络。最简单的策略是去掉“拖后腿”的极深网络,将其变成“中间”深的组成网络。下面是我们提出的方法:
基于ResNet的形式,我们提出新的网络结构(b)和(c)
基于ResNet的形式,我们提出的Inception-Like结构与Merge-and-Run结构都去除了极深的那一条线路,但是Inception-Like的组合数目比相同参数下的ResNet要少,因此我们认为Merge-and-Run形式比较符合我们的分析与观察。最终的实验结果也确实验证了这一想法,而且跟上面的实验观察相吻合:Inception-Like没有极深网络的影响,更加容易训练或收敛,比ResNet会稍好一点,与上述的Ensemble-7与Ensemble-8的实验结果相似。Merge-and-Run结构比Inception-Like的潜在网络数目多,最终结果也是比Inception-Like的表现要好。
ResNet,Inception-Like和Merge-and-Run在不同数据集上的对比
在ImageNet结果上也验证了我们前面的论述(我们的方法用DFN-MR表示):
我们提出的DFN-MR与ResNet在ImageNet数据集上的对比
五、总结目前一个研究热点是在深度神经网络中引入一个新的维度:潜在的组成网络数目(EnsembleSize)。可以发现像ResNet、Highway、Inception等网络增加“深度”的同时,实际增加了这个网络数目。此外,我们的工作发现极深网络除了能增加潜在网络数目外,对整体性能的贡献并不是最大的。反而会影响其它的组成网络,导致最终的结果受到影响。我们按照“不减少组成网络数目”和“避免极深组成网络”这两个原则,设计出新的网络结构,发现在不同数据集上总是表现优异。后续工作可以围绕当前分析的内容,最优化提出的设计指标与原则,得到更容易训练性能更好的网络模型。