人工智能综述

1. 人工智能理论渊源及演变历史

人工智能目前尚没有严格意义上的定义,一般有如下四类人工智能的定义:

人工智能的基础包括:哲学、数学、经济学、神经科学、心理学、计算机科学、控制论、语言学等,是一门综合交叉学科。
人工智能的历史发展主要包括如下阶段:
1)人工智能的诞生:1943-1956
在20世纪40年代和50年代,来自不同领域(数学,心理学,工程学,经济学和政治学)的一批科学家开始探讨制造人工大脑的可能性。1956年,人工智能被确立为一门学科。
维纳的控制论、克劳德•香农的信息论、图灵的计算理论等这些密切相关的想法暗示了构建电子大脑的可能性。
1956年达特矛斯会议的组织者是Marvin Minsky,约翰•麦卡锡和另两位资深科学家Claude Shannon以及Nathan Rochester。会议提出的断言之一是“学习或者智能的任何其他特性的每一个方面都应能被精确地加以描述,使得机器可以对其进行模拟。”1956年达特矛斯会议上AI的名称和任务得以确定,同时出现了最初的成就和最早的一批研究者,因此这一事件被广泛承认为AI诞生的标志。
2)人工智能的黄金时代:1956-1974
从50年代后期到60年代涌现了大批成功的AI程序和新的研究方向。下面列举其中最具影响的几个:搜索式推理、自然语言、微世界等。
3)人工智能的第一个低谷:1974-1980
到了70年代,AI开始遭遇批评,随之而来的还有资金上的困难。AI研究者们对其课题的难度未能作出正确判断:此前的过于乐观使人们期望过高,当承诺无法兑现时,对AI的资助就缩减或取消了。同时,由于Marvin Minsky对感知器的激烈批评,联结主义(即神经网络)销声匿迹了十年。70年代后期,尽管遭遇了公众的误解,AI在逻辑编程,常识推理等一些领域还是有所进展。
4)繁荣:1980-1987
在80年代,一类名为“专家系统”的AI程序开始为全世界的公司所采纳,而“知识处理”成为了主流AI研究的焦点。日本政府在同一年代积极投资AI以促进其第五代计算机工程。80年代早期另一个令人振奋的事件是John Hopfield和David Rumelhart使联结主义重获新生。AI再一次获得了成功。
5)第二次低谷:1987-1993
80年代中商业机构对AI的追捧与冷落符合经济泡沫的经典模式,泡沫的破裂也在政府机构和投资者对AI的观察之中。尽管遇到各种批评,这一领域仍在不断前进。来自机器人学这一相关研究领域的Rodney Brooks和Hans Moravec提出了一种全新的人工智能方案。
6)AI:1993-
Judea Pearl发表于1988年的名著将概率论和决策理论引入AI。现已投入应用的新工具包括贝叶斯网络,隐马尔可夫模型,信息论,随机模型和经典优化理论。针对神经网络和进化算法等“计算智能”范式的精确数学描述也被发展出来。
7)大数据时代
从人工智能发展的历史看,基本上是一个算法进化的历史。而如今,随着大数据技术的飞速发展,认为更关心数据而严格挑选算法的观点开始提出并加以使用。比如:

2. 人工智能主要技术

人工智能市场正在快速发展。除了引发的讨论和媒体的高度关注,以及不断涌现的创业公司和试图收购这些创业公司的互联网巨头之外,这一领域吸引的投资和企业使用也越来越多。
Narrative Science进行的调查显示,去年38%的企业已经在使用人工智能,而到2018年将增长至62%。Forrester Research则预计,2017年人工智能领域获得的投资将同比增长超过300%。IDC估计,人工智能行业的规模将从2016年的80亿美元增长至2020年的超过470亿美元。
人工智能的概念包含多种技术和工具,一些出现的时间已经很长,而另一些则刚刚出现。为了让外界更好地了解当前趋势,Forrester发布了关于人工智能的TechRadar报告,对13种企业应当关注的人工智能技术进行了分析。

基于Forrester的分析,以下是《福布斯》列出的2017年10大热门人工智能技术:

1.自然语言生成:利用计算机数据生成文本。目前被用在客户服务、报告生成,以及商业情报信息总结等方面。范例供应商:Attivio、Cambridge
Semantics、Digital Reasoning、Lucidworks、Narrative Science、SAS。
2.语音识别:听写人类语言,并将其转换为对计算机应用有用的形式。目前被用在互动语音响应系统和移动应用中。范例供应商:NICE、Nuance Communications、OpenText、Verint Systems。
3.虚拟助手:既包括简单的聊天机器人,也包括可以与人类联网沟通的先进系统。目前被用在客户服务和支持,以及智能家居管理工具中。范例供应商:亚马逊、苹果、Artificial
Solutions、Assist AI、Creative Virtual、谷歌、IBM、IPsoft、微软、Satisfi。
4.机器学习平台:提供算法、API、开发和训练工具包、数据,以及计算能力,从而设计、训练计算模型并将其发展成为应用、流程和机器。目前被广泛用于企业应用,大部分都包含预测或分类功能。范例供应商:亚马逊、Fractal
Analytics、谷歌、H2O.ai、微软、SAS、Skytree。
5.经过人工智能优化的硬件:用于运行人工智能计算任务、经过专门设计和架构的GPU(图形处理单元)和应用。目前被用于改变深度学习应用。范例供应商:Alluviate、Cray、谷歌、IBM、英特尔、英伟达。
6.决策管理:向人工智能系统插入规则和逻辑的引擎,可用于初始化设置/训练,以及持续的维护和优化。这是一种成熟的技术,被用于多种不同的企业应用,辅助或进行自动化决策。范例供应商:Advanced
Systems Concepts、Informatica、Maana、Pegasystems、UiPath。
7.深度学习平台:一种特殊形式的机器学习平台,包含多层的人工神经网络。目前主要被用于基于大数据集的模式识别和分类。范例供应商:Deep Instinct、Ersatz Labs、Fluid AI、MathWorks、Peltarion、Saffron
Technology、Sentient Technologies。
8.生物信息:赋能更多人机之间的自然互动,包括但不限于图像和触控识别、语音和身体语言。目前主要被用于市场研究。范例供应商:3VR、Affectiva、Agnitio、FaceFirst、Sensory、Synqera、Tahzoo。
9.机器处理自动化:使用脚本和其他方法实现人类操作的自动化,以支持更高效的商业流程。目前被用于某些人力成本高昂或低效的任务和流程。范例供应商:Advanced
Systems Concepts、Automation Anywhere、Blue Prism、UiPath、WorkFusion。
10.文本分析和自然语言处理:自然语言处理技术利用统计和机器学习方法去理解语句的结构、含义、情绪和意图。目前被用于欺诈探测和信息安全,多种自动化助手,以及非结构化数据的挖掘。范例供应商:Basis
Technology、Coveo、Expert
System、Indico、Knime、Lexalytics、Linguamatics、Mindbreeze、Sinequa、Stratifyd、Synapsify。

目前,人工智能可以给企业带来许多帮助。但根据Forrester在2016年进行的调查,在不计划投资人工智能的公司中,许多公司认为,人工智能的普及存在障碍。
这些障碍包括:

1.没有清晰定义的商业场景:42%
2.不清楚人工智能可以如何使用:39%
3.缺乏必要的技能:33%
4.需要首先投资,推动数据管理平台的现代化:29%
5.缺乏预算:23%
6.不确定配置人工智能系统需要具备哪些元素:19%
7.人工智能系统尚未得到证明:14%
8.缺乏适当的流程或管理方法:13%
9.人工智能只是噱头,没有实质的东西:11%
10.不掌握,或是无法获得所需的数据:8%
11.不确定人工智能是什么:3%

Forrester认为,在克服这些障碍之后,企业可以加速向以用户为导向应用的转型,以及发展企业智能的互联网络。

3. 机器学习和深度学习

深度学习是机器学习的一个领域,研究复杂的人工神经网络的算法、理论、及应用。自从2006年被Hinton等提出以来[1],深度学习得到了巨大发展,已被成功地应用到图像处理、语音处理、自然语言处理等多个领域,取得了巨大成功,受到了广泛的关注,成为当今具有代表性的IT先进技术。

深度学习本质是复杂的非线性模型的学习,从机器学习的发展史来看,深度学习的兴起代表着机器学习技术的自然演进。1957年,Rosenblatt提出了感知机模型(Perceptron),是线性模型,可以看作是两层的神经网络;1986年,Rumelhart等开发了后向传播算法(Back Propagation),用于三层的神经网络,代表着简单的非线性模型;1995年,Vapnik等发明了支持向量机(Support Vector Machines),RBF核支持向量机等价于三层的神经网络,也是一种简单的非线性模型。2006年以后的深度学习实际使用多于三层的神经网络,又被称为深度神经网络,是复杂的非线性模型(见上图)。深度神经网络还有若干个变种,如卷积神经网络(Convolutional Neural Network)、循环神经网络(Recurrent Neural Network)。
深度神经网络实际是复杂的非线性模型,拥有复杂的结构和大量的参数,有非常强的表示能力,特别适合于复杂的模式识别问题。
深度学习不是万能的。首先,深度学习不适合所有问题。如果问题简单,比如线性问题和简单的非线性问题,深度学习至多是与支持向量机等有同等的准确率。如果学习陷入局部最优,可能还不如其他方法。本质上这相当于杀鸡用牛刀。
另外,如果训练数据量不够大,深度神经网络不能得到充分学习,效果也不会很好。这时深度学习这匹“千里马”,也只能是“虽有千里之能,食不饱,力不足,才美不外见”。
再有,理论上深度学习也不是万能的。著名的“没有免费的午餐”定理说明了这一点。该定理指出,针对任意两个机器学习方法:方法一和方法二,如果存在一个问题,方法一比方法二学到的模型预测精度高,那么一定存在另一个问题,方法二比方法一学到的模型预测精度高。这个定理实际在说,没有任何一个方法可以包打天下。

4. 人工智能一般工作流

数据采集—首先需要大量数据。这些数据可以从任何数量的来源进行收集,包括可穿戴设备的传感器以及其他对象、云和 web。
数据聚合和管理—收集数据后,数据科学家将对数据进行聚合和标记(如果是监督式机器学习)。
模型开发—接下来,数据用于开发模型,然后对其进行精确度训练并针对性能进行优化。
模型部署和评分—模型部署在应用中,用于根据新数据进行预测。
使用新数据更新—随着数据量的增加,模型将变得更加精细和准确。 例如,在自动驾驶汽车的行驶过程中,应用将通过传感器、GPS、360 度视频捕捉等功能提供实时信息,然后使用这些信息来优化未来的预测。

5. 深度学习平台对比

一.TensorFlow

TensorFlow是一款开源的数学计算软件,使用数据流图(Data Flow Graph)的形式进行计算。图中的节点代表数学运算,而图中的线条表示多维数据数组(tensor)之间的交互。TensorFlow灵活的架构可以部署在一个或多个CPU、GPU的台式以及服务器中,或者使用单一的API应用在移动设备中。TensorFlow最初是由研究人员和Google Brain团队针对机器学习和深度神经网络进行研究所开发的,目前开源之后可以在几乎各种领域适用。
Data Flow Graph: 使用有向图的节点和边共同描述数学计算。graph中的nodes代表数学操作,也可以表示数据输入输出的端点。边表示节点之间的关系,传递操作之间互相使用的多位数组(tensors),tensor在graph中流动——这也就是TensorFlow名字的由来。一旦节点相连的边传来了数据流,节点就被分配到计算设备上异步的(节点间)、并行的(节点内)执行。

TensorFlow的特点:
机动性: TensorFlow并不只是一个规则的neural network库,事实上如果你可以将你的计算表示成data flow graph的形式,就可以使用TensorFlow。用户构建graph,写内层循环代码驱动计算,TensorFlow可以帮助装配子图。定义新的操作只需要写一个Python函数,如果缺少底层的数据操作,需要写一些C++代码定义操作。
可适性强: 可以应用在不同设备上,cpus,gpu,移动设备,云平台等
自动差分: TensorFlow的自动差分能力对很多基于Graph的机器学习算法有益
多种编程语言可选: TensorFlow很容易使用,有python接口和C++接口。其他语言可以使用SWIG工具使用接口。(SWIG—Simplified Wrapper and Interface Generator, 是一个非常优秀的开源工具,支持将 C/C++ 代码与任何主流脚本语言相集成。)
最优化表现: 充分利用硬件资源,TensorFlow可以将graph的不同计算单元分配到不同设备执行,使用TensorFlow处理副本。
二.Torch

Torch是一个有大量机器学习算法支持的科学计算框架,其诞生已经有十年之久,但是真正起势得益于Facebook开源了大量Torch的深度学习模块和扩展。Torch另外一个特殊之处是采用了编程语言Lua(该语言曾被用来开发视频游戏)。
Torch的优势:
 构建模型简单
 高度模块化
 快速高效的GPU支持
 通过LuaJIT接入C
 数值优化程序等
 可嵌入到iOS、Android和FPGA后端的接口
三.Caffe

Caffe由加州大学伯克利的PHD贾扬清开发,全称Convolutional Architecture for Fast Feature Embedding,是一个清晰而高效的开源深度学习框架,目前由伯克利视觉学中心(Berkeley Vision and Learning Center,BVLC)进行维护。(贾扬清曾就职于MSRA、NEC、Google Brain,他也是TensorFlow的作者之一,目前任职于Facebook FAIR实验室。)
Caffe基本流程:Caffe遵循了神经网络的一个简单假设——所有的计算都是以layer的形式表示的,layer做的事情就是获得一些数据,然后输出一些计算以后的结果。比如说卷积——就是输入一个图像,然后和这一层的参数(filter)做卷积,然后输出卷积的结果。每一个层级(layer)需要做两个计算:前向forward是从输入计算输出,然后反向backward是从上面给的gradient来计算相对于输入的gradient,只要这两个函数实现了以后,我们就可以把很多层连接成一个网络,这个网络做的事情就是输入我们的数据(图像或者语音等),然后来计算我们需要的输出(比如说识别的标签),在训练的时候,我们可以根据已有的标签来计算损失和gradient,然后用gradient来更新网络的参数。
Caffe的优势:
 上手快:模型与相应优化都是以文本形式而非代码形式给出
 速度快:能够运行最棒的模型与海量的数据
 模块化:方便扩展到新的任务和设置上
 开放性:公开的代码和参考模型用于再现
 社区好:可以通过BSD-2参与开发与讨论
四.Theano

2008年诞生于蒙特利尔理工学院,Theano派生出了大量深度学习Python软件包,最著名的包括Blocks和Keras。Theano的核心是一个数学表达式的编译器,它知道如何获取你的结构。并使之成为一个使用numpy、高效本地库的高效代码,如BLAS和本地代码(C++)在CPU或GPU上尽可能快地运行。它是为深度学习中处理大型神经网络算法所需的计算而专门设计的,是这类库的首创之一(发展始于2007年),被认为是深度学习研究和开发的行业标准。
Theano的优势:
 集成NumPy-使用numpy.ndarray
 使用GPU加速计算-比CPU快140倍(只针对32位float类型)
 有效的符号微分-计算一元或多元函数的导数
 速度和稳定性优化-比如能计算很小的x的函数log(1+x)的值
 动态地生成C代码-更快地进行计算
 广泛地单元测试和自我验证-检测和诊断多种错误
 灵活性好
五.Deeplearning4j

顾名思义,Deeplearning4j是“for Java”的深度学习框架,也是首个商用级别的深度学习开源库。Deeplearning4j由创业公司Skymind于2014年6月发布,使用 Deeplearning4j的不乏埃森哲、雪弗兰、博斯咨询和IBM等明星企业。DeepLearning4j是一个面向生产环境和商业应用的高成熟度深度学习开源库,可与Hadoop和Spark集成,即插即用,方便开发者在APP中快速集成深度学习功能,可应用于以下深度学习领域:
 人脸/图像识别
 语音搜索
 语音转文字(Speech to text)
 垃圾信息过滤(异常侦测)
 电商欺诈侦测
除了以上几个比较成熟知名的项目,还有很多有特色的深度学习开源框架也值得关注:
六.ConvNetJS

这是斯坦福大学博士生Andrej Karpathy开发的浏览器插件,基于万能的JavaScript可以在你的游览器中训练深度神经模型。不需要安装软件,也不需要GPU。
七.MXNet

出自CXXNet、Minerva、Purine 等项目的开发者之手,主要用C++ 编写。MXNet 强调提高内存使用的效率,甚至能在智能手机上运行诸如图像识别等任务。

你可能感兴趣的:(AI)