您的位置:首页 > 大数据 > 人工智能

AI-深度学习之科普历史

2017-12-26 10:25 288 查看
AI-深度学习之科普历史



发明家早就梦想着制造出思考机器。这种欲望至少可以追溯到古希腊时代。神话人物卖花女,代达罗斯和赫淮斯托斯都可以被解释为传奇的发明家,而橄榄茶,泰勒斯,潘多拉都可以看作是人工生命。

有了可编程电脑的构想后,人们试图使这样的机器变得聪明。当今,人工智能(AI)是一个有着许多实际应用和活跃的研究课题的新兴领域。人们希望使用智能软件来自动化日常劳动、理解语音或图像、在医学中进行诊断和支持基础科学研究。

早期的人工智能,现场快速处理和解决问题,这对人类的智力来说是困难的,但对机器来说是简单的;因为这些问题可以用列表的形式、数学规则来描述。

人工智能的面临的真正挑战是解决人类容易执行的任务,人们很难用形式化、直观地描述我们所能解决的问题,即自动感知,例如识别说话,以及图像中的面孔。


网络图片

AI 深度学习的真正目的是解决这些更直观问题的。需要有一个解决方案让计算机从经验中学习,并以概念层次来理解世界,每一个概念的定义都与简单概念的关系有关。从经验中收集知识,这种方法避免了人工操作人员规定计算机所需的所有知识。概念的层次结构使计算机能够通过简单的概念来学习复杂的概念。如果我们画一个图表来显示,这些概念是建立在彼此之上的,图形是深的,有许多层。出于这个原因,我们称这种方法为AI深度学习,见下图。



人工智能早期的许多成功都是在相对贫瘠和正规的环境中进行的,并不要求计算机对世界有更多的了解。例如,IBM的深蓝对弈系统1997击败世界冠军Garry Kasparov。象棋只是一个非常简单的世界,只包含六十四个位置和三十二个棋子,它们只能以严格的限定方式移动。设计一个成功的象棋策略是一个巨大的成就,但挑战不是因为描述棋子和允许移动到计算机上的困难。象棋可以用一个简单的完全规则形式的简单列表来描述,程序员可以提前提供。

具有讽刺意味的是,抽象和正式的任务是人类最困难的心理活动之一,对于计算机来说是最容易的。计算机早就打败了最好的人类棋手,但最近才与普通人的某些能力相匹配,以识别物体和语言。一个人的日常生活需要大量的关于世界的知识。这些知识大部分是主观的和直观的,因此很难用正式的方式表达。计算机需要捕捉同样的知识,以便以智能的方式行事。AI的关键挑战之一是如何将这种非正式知识输入计算机



一些人工智能项目试图用正规语言硬编码关于世界的知识。计算机可以使用逻辑推理规则自动推理这些正式语言中的语句。这被称为人工智能的知识库方法。这些项目可以说没有一个取得重大成功。

这种项目中最著名的其中一个是CYC。CYC是一个推理引擎和一个用CycL 语言的陈述(statements)数据库。这些陈述是由人力监督员的职员输入的。这是一个笨拙的过程。人们努力设计出足够复杂的形式规则来准确地描述世界。例如,Cyc无法理解的一个关于一个叫弗莱德的人在早上刮胡子的故事。其推理引擎检测到的故事中的一个矛盾是:它知道人没有电气部分,但是因为弗莱德拿着一个电动剃须刀,它认为实体”fredwhileshaving”包含电气部件。因此,当弗莱德刮胡子时,他问他是否仍然是一个人。
依靠硬编码知识的系统所面临的困难表明,人工智能系统需要从原始数据中提取模式(Patterns)来获取自己的知识的能力。这种能力称为机器学习。
机器学习的引入使计算机能够解决涉及真实世界知识的问题,做出主观的决策。一个简单的机器学习算法称为逻辑回归(Logisticregression )可以决定是否建议剖宫产。还有一种简单的机器学习算法称为朴素贝叶斯(naive
Bayes )
可以区分合法电子邮件和垃圾邮件(spam e-mail) 

这些简单的机器学习算法的性能在很大程度上取决于给予它们的数据的表示。例如,当逻辑回归被用来推荐剖宫产时,人工智能系统不直接检查病人。相反,医生告诉系统一些相关信息,如子宫疤痕的存在或不存在。在病人的陈述中包含的每一条信息都被称为特征。逻辑回归学习病人的每一个特征与不同的结果。但是,它不能以任何方式影响功能定义的方式。如果逻辑回归对病人进行MRI扫描,而不是医生的正式报告,它将不能做出有用的预测。MRI扫描中的单个像素与分娩过程中可能发生的任何并发症都没有任何相关性。

这种对表象的
4000
依赖是一种普遍现象,出现在整个计算机科学甚至日常生活中。在计算机科学中,如果搜集的数据结构和索引智能化,诸如搜索一系列数据之类的操作可以更快地进行。人们可以很容易地在阿拉伯数字上执行算术运算,但在罗马数字上找到运算要耗费很多时间。选择表示对机器学习算法的性能有着巨大的影响,这并不奇怪。一个简单的可视化示例,如图所示。



许多人工智能任务可以通过设计适合该任务的特征集来解决,然后将这些特征提供给一个简单的机器学习算法。例如,识别说话人声音的一个有用特征是说话人声道大小的估计。因此,它提供了一个强有力的线索,无论说话者是男人、女人还是孩子。
然而,对于很多任务,很难知道应该提取哪些特征。例如,假设我们想编写一个程序来检测照片中的汽车。我们知道汽车有轮子,所以我们可能喜欢用轮子作为特征。不幸的是,很难准确地描述一个轮子像素值。车轮有一个简单的几何形状,但它的图像可能会有复杂的阴影落在车轮上,太阳耀眼的车轮的金属部件,汽车的挡泥板,或在前景的对象遮蔽车轮的一部分,等等。

用不同表示方式的例子:假设我们想通过在散点图中画出一条直线来分隔两类数据。在如上左边的图中,我们用笛卡尔坐标表示一些数据,要分隔这两类数据是不可能的。在右边的图中,我们用极坐标表示数据,任务变得简单。用一条垂线就解决了。

解决这个问题的一个方法是使用机器学习不仅发现从表示到输出的映射,而且还发现表示本身。

这种方法称为表示学习(representation learning 。学习表示通常会比手工设计的表示获得更好的性能。他们还允许人工智能系统迅速适应新的任务,以最少的人为干预。一个表示学习算法可以在几分钟内为一个简单的任务找到一组好的功能,或者在几个小时到几个月内完成一个复杂的任务。为一个复杂的任务手工设计功能需要大量的人力和时间;对于整个研究人员来说,这可能需要几十年时间。
一个表示学习算法的典型例子是自动编码器(autoencoder)。  一个自动编码器是一个编码函数和一个解码函数的组合:编码函数把输入数据转换成不同的表示,解码函数把新的表述转换回原始格式。训练autoencoders保存尽可能多的信息,当输入是通过编码器,然后解码器,但训练也使新的表示有各种很好的性能。不同种类的autoencoders实现不同特性。

当设计特征或学习特征的算法时,我们的目标通常是分离解释观测数据的变化因素。在这种情况下,我们只使用“因素”一词来指不同的影响源;这些因素通常不与乘法相结合。这些因素往往不是直接观察到的数量。相反,它们可能存在于物理世界中的未观察到的物体或未观察到的力,影响可观测的数量。
它们也可能存在于人类头脑中,为观测数据提供有用的简化解释或推断原因。它们可以被认为是概念或抽象概念,有助于我们理解数据中丰富的可变性。在分析语音记录时,变化的因素包括说话者的年龄、性别、口音和所说的单词。在分析汽车图像时,变化的因素包括汽车的位置、颜色、太阳的角度和亮度。

许多现实世界人工智能应用中的一个主要困难源是许多变化因素影响到我们能够观察到的每一块数据。红色汽车图像中的单个像素可能在夜间非常接近黑色。汽车外形的形状取决于视角。大多数应用程序要求我们理清变化的因素,抛弃那些我们不关心的因素。
当然,从原始数据中提取这样的高级抽象特征是非常困难的。许多这些变异因素,例如说话者的口音,只能用复杂的、几乎是人类对数据的理解来识别。当获得解决问题的代表性几乎是困难的时候,表象学习乍看起来并不能帮助我们。
深度学习通过引入表示学习解决了这一核心问题,即通过表示对象简单的表示法。深度学习使计算机能够用简单的概念构建复杂的概念。如下图显示了一个深度学习系统如何通过组合更简单的概念(例如角和轮廓)来表示一个人的形象,而这些概念又是根据边缘定义的。



深度学习模式的图示

深度学习模型的典型例子是前馈深度网络多层感知器(MLP)。多层感知器只是一种数学函数,它将一些输入值映射到输出值。该函数由许多简单函数组成。我们可以把每种不同的数学函数的应用程序看作是输入的一种新表示形式。
学习数据的正确表示的思想为深度学习提供了一个新的方向。另一个关于深度学习的观点是,深度学习可以让计算机学会一个多步骤的计算机程序。在并行执行另一组指令之后,表示层的每一层都可以被认为是计算机内存的状态。深度较大的网络可以按顺序执行更多指令。顺序指令提供强大能力。

计算机很难理解原始传感器的输入数据的含义,例如,这个图像表示为像素值的集合。从一组像素到一个对象标识的函数映射非常复杂。如果直接解决问题,学习或评估这种映射似乎是无法逾越的。深度学习通过将所需的复杂映射分解成一系列嵌套的简单映射来解决这个困难,每个映射都由模型的不同层描述。输入是在可见层呈现的。因为它包含了我们能够观察到的变量。然后一系列隐藏层从图像中提取越来越抽象的特征。这些层称为“隐藏”,因为它们的值没有在数据中给出;相反,模型必须确定哪些概念对解释观测数据中的关系有用。这里的图像是由每个隐藏单元表示的可视化的特征。给定像素,第一层通过比较相邻像素的亮度可以很容易地识别边缘。由于第一个隐藏层的边缘描述,第二隐藏层可以很容易地寻找角落和扩展轮廓,这是公认的边缘集合。鉴于第二隐藏层的角度和轮廓的图像描述,第三隐藏层可以检测特定对象的整个部分,通过找到特定的轮廓和角落收集。最后,根据所包含的对象部分来描述图像,可以用来识别图像中存在的对象。



图解计算图

上图将输入映射到输出,其中每个节点执行一个操作。深度是从输入到输出的最长路径的长度,但取决于可能的计算步骤的定义。这些图中描述的计算是一个Logistic回归模型的输出,即σ(wTx),其中σ是logistic
sigmoid函数。如果我们用加法、乘法和logistic sigmoid作为我们的计算机语言的要素,那么这个模型的深度为三。如果我们把logistic 回归看作是一个元素,那么这个模型深度为1。
指令可以参考先前指令的结果。根据这种深度学习的观点,并非所有活动中的信息都必须编码解释输入的变异因素。该表示还存储了帮助执行程序的状态信息,这些程序可以理解输入。这种状态信息可以类似于传统计算机程序中的计数器或指针。它与输入的内容无关,但它有助于模型组织其处理。
测量模型深度的主要方法有两种。第一个视图基于必须执行的顺序指令的数量,以评估体系结构。我们可以把它看作是最长路径的长度,通过一个流程图,它描述了如何计算给定输入的每个模型的输出。正如两个等效的计算机程序将有不同的长度,取决于程序写入的语言,相同的函数可以被绘制为具有不同深度的流程图,这取决于我们允许使用哪些功能作为流程图中的单个步骤。图中说明了这种语言的选择如何为同一架构提供两种不同的度量。
另一种方法,认为模型的深度不是计算图的深度,而是描述概念如何相互关联的图的深度。在这种情况下,计算每个概念的表示所需的计算流程图的深度可能比概念图本身要深得多。
这是因为系统对简单概念的理解可以被细化,给出关于更复杂概念的信息。例如,一个人工智能系统在一个阴影中观察一个人脸的图像可能最初只看到一只眼睛。在检测到一张脸存在之后,它就可以推断出第二只眼睛也可能存在。在这种情况下,在这种情况下,计算每个概念的表示所需的计算流程图的深度可能比概念图本身要深得多。

这是因为系统对简单概念的理解可以被细化,给出关于更复杂概念的信息。例如,一个人工智能系统在一个阴影中观察一个人脸的图像可能最初只看到一只眼睛。在检测到一张脸存在之后,它就可以推断出第二只眼睛也可能存在。在这种情况下,概念图只包括两层,一层用于眼睛,一层用于脸。但计算图包括2n层,如果我们细化每一个概念的估计给定的其他n次。

因为并不总是清楚这两种观点的计算图的深度,或概率建模图的深度是最相关的,因为不同的人选择不同的最小元素,构建自己的图,有一个建筑的深度没有唯一正确的价值,正如有对于一个计算机程序的长度没有唯一正确的价值。对于一个模型所要求的“深度”的深度还没有达成共识,然而,深度学习可以安全地被视为比传统的机器学习更多地涉及学习功能或学习概念的模型的研究。
总之,深度学习是人工智能的一种方法。具体来说,它是一种机器学习,一种允许计算机系统通过经验和数据改进的技术。机器学习是建立人工智能系统的唯一可行的方法,可以在复杂的现实环境中工作。深度学习是一种特殊的机器学习,通过学习把世界表现为一个嵌套的概念层次,每一个概念都与更简单的概念相联系,并以较少抽象的形式计算出更抽象的表示形式,从而获得巨大的力量和灵活性。

主要术语:

Deep learning 深度学习

knowledge base 知识库

Logisticregression逻辑回归

[b]naive Bayes朴素贝叶斯算法[/b]

representation learning表示学习

autoencoder自动编码器

factors of variation 变换因素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐