神经网络和深度学习

  • 何为深度学习?从根源来讲,深度学习是机器学习的一个分支,是指一类问题以及解决这类问题的方法。

首先,深度学习问题是一个机器学习问题,指从有限样例中通过算法总结出一般性的规律,并可以应用到新的未知数据上.比如,我们可以从一些历史病例的集合中总结出症状和疾病之间的规律.这样当有新的病人时,我们可以利用总结出来的规律,来判断这个病人得了什么疾病.

其次,深度学习采用的模型一般比较复杂,指样本的原始输入到输出目标之间的数据流经过多个线性或非线性的组件.因为每个组件都会对信息进行加工,并进而影响后续的组件,所以当我们最后得到输出结果时,我们并不清楚其中每个组件的贡献是多少.这个问题叫作贡献度分配问题。在深度学习中,贡献度分配问题是一个关键问题,关系到如何学习每个组件中的参数

  • 何为神经网络?神经网络是一种比较好的可以解决分配度分配问题的模型。这种数学模型受人脑神经系统的工作方式启发而成,和目前计算机的结构不同,人脑神经系统是一个由生物神经元组成的高度复杂网络,是一个并行的非线性信息处理 系统.人脑神经系统可以将声音、视觉等信号经过多层的编码,从最原始的低层特征不断加工、抽象,最终得到原始信号的语义表示

和人脑神经网络类似,人工神经网络是由人工神经元以及神经元之间的连接构成,其中有两类特殊的神经元:一类用来接收外部的信息,另一类用来输出信息.这样,神经网络可以看作信息从输入到输出的信息处理系统.如果我们把神经网络看作由一组参数控制的 复杂函数,并用来处理一些模式识别任务(比如语音识别、人脸识别等),神经网络的参数可以通过机器学习的方式来从数据中学习.

因为神经网络模型一般比较复杂,从输入到输出的信息传递路径一般比较长,所以复杂神经网络的学习可以看成是一种深度的机器学习,即深度学习.

  • 这里要注意的是,神经网络和深度学习并不等价.深度学习可以采用神经网络模型,也可以采 用其他模型(比如深度信念网络是一种概率图模型).但是,由于神经网络模型 可以比较容易地解决贡献度分配问题,因此神经网络模型成为深度学习中主要 采用的模型.虽然深度学习一开始用来解决机器学习中的表示学习问题, 但是由于其强大的能力,深度学习越来越多地用来解决一些通用人工智能问题,比如推理、决策等

人工智能

  • 如何定义智能?图灵测试:一个人在不接触对方的情况下,通过一种特殊的方式和对方进行一系列的问答.如果在相当长时间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算机是智能的
  • 促使人工智能从哲学到科研,引导了许多研究方向。如机器感知(计算机视觉、语音信息处理)、学习(模式识别、 机器学习、强化学习)、语言(自然语言处理)、记忆(知识表示)、决策(规划、数据挖掘)等.所有这些研究领域都可以看成是人工智能的研究范畴.
  • 目前,人工智能的主要领域大体上可以分为以下几个方面:

(1)感知:模拟人的感知能力,对外部刺激信息(视觉和语音等)进行感知和加工.主要研究领域包括语音信息处理和计算机视觉等.

(2)学习:模拟人的学习能力,主要研究如何从样例或从与环境的交互中进行学习.主要研究领域包括监督学习、无监督学习和强化学习等.

(3)认知:模拟人的认知能力,主要研究领域包括知识表示、自然语言理解、推理、规划、决策等.

人工智能的流派
  • 在人工智能的研究过程中产生了很多不同的流派.一些研究者认为人工智能应该通过研 究人类智能的机理来构建一个仿生的模拟系统;而另外一些研究者则认为可以使用其他方法来实现人类的某种智能行为,例如让机器具有飞行能力不需要模拟鸟的飞行方式,而是应该研究空气动力学.
  • 目前主流方法大概有两种:

(1))符号主义,又称逻辑主义、心理学派或计算机学派,是指通过分析人类智能的功能,然后用计算机来实现这些功能的一类方法.符号主义有两个基本假设: a)信息可以用符号来表示; b)符号可以通过显式的规则 (比如逻辑运算)来操作.人类的认知过程可以看作符号操作过程.在人工智能 的推理期和知识期,符号主义的方法比较盛行,并取得了大量的成果

(2)连接主义,又称仿生学派或生理学派,是认知科学领域中的一类信息处理的方法和理论.在认知科学领域,人类的认知过程可以看作一种信息处理过程.连接主义认为人类的认知过程是由大量简单神经元构成 的神经网络中的信息处理过程,而不是符号运算.因此,连接主义模型的主要结构是由大量简单的信息处理单元组成的互联网络,具有非线性、分布式、并行化、 局部性计算以及自适应性等特性.

这里要注意的是,流派间并不是严格对立的。深度学习的主要模型神经网络虽然是一种连接主义模型,但是却具有可解释性这一符号主义的优点.但是随着深度学习的发展,越来越多的研究者开始关注如何融合符号主义和连接主义,建立一种高效并且具有可解释性的模型.

机器学习

  • 机器学习是人工智能的重要分支,是指从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并利用这些规律对未知数据进行预测的方法.
  • 传统的机器学习主要关注如何学习一个预测模型.一般需要首先将数据表 示为一组特征(Feature),特征的表示形式可以是连续的数值、离散的符号或其他形式.然后将这些特征输入到预测模型,并输出预测结果.这类机器学习可以看作浅层学习,其一个重要特点是不涉及特征学习,其特征主要靠人工经验或特征转换方法来抽取
  • 当我们用机器学习来解决实际任务时,会面对多种多样的数据形式,比如声 音、图像、文本等.不同数据的特征构造方式差异很大.对于图像这类数据,我们 可以很自然地将其表示为一个连续的向量.而对于文本数据,因为其一般由离散符号组成,并且每个符号在计算机内部都表示为无意义的编码,所以通常很难找到合适的表示方式.因此,在实际任务中使用机器学习模型一般会包含以下几个 步骤:

(1)数据预处理:经过数据的预处理,如去除噪声等.比如在文本分类中, 去除停用词等.
(2)特征提取:从原始数据中提取一些有效的特征.比如在图像分类中,提 取边缘、尺度不变特征变换特征等.
(3)特征转换:对特征进行一定的加工,比如降维和升维.
(4)预测:机器学习的核心部分,学习一个函数并进行预测.

QQ图片20200722095432.png

上述流程中,每步特征处理以及预测一般都是分开进行的.传统的机器学习模型主要关注最后一步,即构建预测函数.但是实际操作过程中,不同预测模 型的性能相差不多,而前三步中的特征处理对最终系统的准确性有着十分关键 的作用.特征处理一般都需要人工干预完成,利用人类的经验来选取好的特征, 并最终提高机器学习系统的性能.因此,很多的机器学习问题变成了特征工程问题.开发一个机器学习系统的主要工作量都消耗在了 预处理、特征提取以及特征转换上.

表示学习

  • 何为表示学习?如果有一种算法可以自动学习出有效特征(或者称为表示),那么这种学习就叫做表示学习
  • 表示学习的关键?解决语义鸿沟问题。语义鸿沟问题是指输入数据的底层特征和高层语义信息之间的不一致性和差异性.比如给 定一些关于“车”的图片,由于图片中每辆车的颜色和形状等属性都不尽相同,因 此不同图片在像素级别上的表示(即底层特征)差异性也会非常大.但是我们理解这些图片是建立在比较抽象的高层语义概念上的.如果一个预测模型直接建立在底层特征之上,会导致对预测模型的能力要求过高.如果可以有一个好的表示在某种程度上能够反映出数据的高层语义特征,那么我们就能相对容易地构 建后续的机器学习模型.
表示学习的核心问题

(1)什么是一个好的表示
(2)如何学习到好的表示

构造好的表示:局部表示和分布式表示的比对
  • 好的表示一般具有以下优点:

(1)信息容量大,同样大小向量可以表示更多信息
(2)使后续任务简单,需要包含更高层的语义信息
(3)具有一般性,可以比较容易的迁移到其他任务上去

  • 局部表示来表示特征。假设所有颜色的名字构成一个词表 ?,词表大小为|?|.我们可以用一个 |?|维的one-hot向量来表示每一种颜色.在第?种颜色对应的one-hot向量中,第?维的值为1,其他都为0.

局部表示具有解释性好和计算效率高两个优点,但是也存在问题: 1)one-hot向量的维数很高,且不能扩展.如果 有一种新的颜色,我们就需要增加一维来表示; 2)不同颜色之间的相似度都为0 ,即我们无法知道“红色”和“中国红”的相似度要高于“红色”和“黑色”的相 似度.

  • 分布式表示来表示特征。用RGB值来表示颜色,不同颜色对应到R、 G、 B三 维空间中一个点,是一种低纬度的稠密向量

分布式表示向量维度较低,加入新颜色不需要增加维度,而且不同颜色的相似度也容易计算

  • 我们可以使用神经网络将高维向量(局部表示)映射到低维向量空间(分布式表示)。这个过程叫做嵌入,即将一个高维空间中的一些对象映射到另一个低维空间中,并尽可能保持不同对象之间的拓扑关系.
表示学习
  • 要学习到一种好的高层语义表示(一般为分布式表示),通常需要从底层特征开始,经过多步非线性转换才能得到.

而深层结构的优点就是可以增加特征的重用性,从而指数级地增加表示能力.

因此,表示学习的关键是构建具有一定深度的多层次特征表示。

  • 而在传统的机器学习中,尽管也有很多有关特征学习的方法,比如主成分分析、线性判别分析、独立成分分析等.

但是,传统的特征学习一般是通过人为地设计一些准则,然后根据这些准则来选取有效的特征.特征的学习是和最终预测模型的学习分开进行的,因此学习到的特征不一定可以提升最终模型的性能.

深度学习

  • 深度学习的主要目的就是能从数据中自动学习到有效的数据表示,从而最终提升预测模型的准确率。所谓‘深度’,就是指原始数据进行非线性特征转换的次数。

深度学习的处理流程,就是经过多层特征转换,把原始数据变成更高层次更抽象的表示,从而替代人工设计特征,避免‘特征工程’

QQ图片20200722104750.png

  • 深度学习是将多种原始数据特征通过多步特征转换得到一种特征表示,并输入到预测函数得到最终结果。

在深度学习中,关键要解决贡献度分配问题,即一个系统中不同的组件或其参数对最终结果的贡献,就像下棋胜利后要反思每一步棋对胜利的贡献。这是一个非常困难的问题,因为深度学习的每个组件并不能直接得到监督信息,而是要通过整个模型的最终监督信息(奖励)得到,并且有一定的延时性

而目前主要采用的神经网络模型,采用误差反向传播算法,从而可以比较好地解决贡献度分配问题

端到端学习
  • 传统机器学习通常把任务的输入输出之间认为的切割成许多模块,每个模块分开学习。如自然语言理解任务,一般需要分词、词性标注、句法分析、语义分析、语义推理等步骤。

这种方法存在两个问题:(1)每个模块需要单独优化(2)前一步错误会对后续模型产生很大影响

  • 而在现代机器学习中,我们通常采用端对端训练的方法。即在学习过程中,不明确地给出不同模块或阶段的功能,中间过程不需要人为干预.端到端学习的训练数据为“输入-输出”对的形式,无须提供其他额外信息.

因此,端到端学习和深度学习一样,都是要解决贡献度分配问题.目前,大部分采用神经网络模 型的深度学习也可以看作一种端到端的学习.

神经网络

神经网络由多个节点相互连接而成,可以用来对数据间的复杂关系建模。
不同节点间的连接被赋予了不同的权重,每个权重表示一个节点对另一个节点的影响大小。
每个节点表示一种特定函数,来自其他节点的信息经过相应的权重综合计算,输入到此节点函数中得到一个新的活性值。
综上来看,神经网络是由大量函数通过相互间的影响权重连接而成的非线性动态结构

深度学习框架

QQ图片20200722112350.png
QQ图片20200722112431.png

总结

在传统机器学习中,除了模型和学习算法外,特征或表示也是影响最终学习效果的重要因素,甚至在很多的任务上比算法更重要.因此,要开发 一个实际的机器学习系统,人们往往需要花费大量的精力去尝试设计不同的特征以及特征组合,来提高最终的系统能力,这就是所谓的特征工程问题

因此,如何自动学习有效的数据表示成为机器学习中的关键问题.早期的表示学习方法,比如特征抽取和特征选择,都是人工引入一些主观假设来进行学习的. 这种表示学习不是端到端的学习方式,得到的表示不一定对后续的机器学习任务有效.而深度学习是将表示学习和预测模型的学习进行端到端的学习,中间不需要人工干预.但是深度学习又要解决贡献度分配问题,而神经网络恰好是 解决这个问题的有效模型.


无欲则刚
76 声望15 粉丝