20200210人工智能概览-2018级

武永亮
武永亮   编辑于 2020-02-08 20:30
阅读量: 2949

一、生活中的人工智能

市场规模

国家政策

硬件基础

人才培养与教育

AI巨头公司布局

人工智能在各行各业的应用

人工智能如何解决行业痛点

· 安防:利用计算机视觉技术和大数据分析犯罪嫌疑人生活轨迹及可能出现的场所

· 金融:利用语音识别、 语义理解等技术打造智能客服

· 医疗:智能影像可以快速进行癌症早期筛查, 帮助患者更早収现病灶

· 交通:无人驾驶通过传感器、 计算机视觉等技术解放人的双手和感知

· 零售:利用计算机视觉、 语音/语义识别, 机器人等技术提升消费体验

· 工业制造:机器人代替工人在危险场所完成工作 ,在流水线上高效完成重复工作

二、人工智能简介

1. 人工智能基本概念 

人工智能(Artificial Intelligence,AI)是指计算机像人一样拥有智能能力,是一个融合计算机科学、统计学、脑神经学和社会科学的前沿综合学科,可以代替人类实现识别、认知,分析和决策等多种功能。如当你说一句话时,机器能够识别成文字,并理解你话的意思,进行分析和对话等。

2. 人工智能发展历程

**人工智能的起源:**人工智能在五六十年代时正式提出,1950年,一位名叫马文·明斯基(后被人称为“人工智能之父”)的大四学生与他的同学邓恩·埃德蒙一起,建造了世界上第一台神经网络计算机。这也被看做是人工智能的一个起点。巧合的是,同样是在1950年,被称为“计算机之父”的阿兰·图灵提出了一个举世瞩目的想法——图灵测试。按照图灵的设想:如果一台机器能够与人类开展对话而不能被辨别出机器身份,那么这台机器就具有智能。而就在这一年,图灵还大胆预言了真正具备智能机器的可行性。1956年,在由达特茅斯学院举办的一次会议上,计算机专家约翰·麦卡锡提出了“人工智能”一词。后来,这被人们看做是人工智能正式诞生的标志。就在这次会议后不久,麦卡锡从达特茅斯搬到了MIT。同年,明斯基也搬到了这里,之后两人共同创建了世界上第一座人工智能实验室——MIT AI LAB实验室。值得追的是,茅斯会议正式确立了AI这一术语,并且开始从学术角度对AI展开了严肃而精专的研究。在那之后不久,最早的一批人工智能学者和技术开始涌现。达特茅斯会议被广泛认为是人工智能诞生的标志,从此人工智能走上了快速发展的道路。

人工智能的第一次高峰 在1956年的这次会议之后,人工智能迎来了属于它的第一段Happy Time。在这段长达十余年的时间里,计算机被广泛应用于数学和自然语言领域,用来解决代数、几何和英语问题。这让很多研究学者看到了机器向人工智能发展的信心。甚至在当时,有很多学者认为:“二十年内,机器将能完成人能做到的一切。”

人工智能第一次低谷: 70年代,人工智能进入了一段痛苦而艰难岁月。由于科研人员在人工智能的研究中对项目难度预估不足,不仅导致与美国国防高级研究计划署的合作计划失败,还让大家对人工智能的前景蒙上了一层阴影。与此同时,社会舆论的压力也开始慢慢压向人工智能这边,导致很多研究经费被转移到了其他项目上。

在当时,人工智能面临的技术瓶颈主要是三个方面,第一,计算机性能不足,导致早期很多程序无法在人工智能领域得到应用;第二,问题的复杂性,早期人工智能程序主要是解决特定的问题,因为特定的问题对象少,复杂性低,可一旦问题上升维度,程序立马就不堪重负了;第三,数据量严重缺失,在当时不可能找到足够大的数据库来支撑程序进行深度学习,这很容易导致机器无法读取足够量的数据进行智能化。

因此,人工智能项目停滞不前,但却让一些人有机可乘,1973年Lighthill针对英国AI研究状况的报告。批评了AI在实现“宏伟目标”上的失败。由此,人工智能遭遇了长达6年的科研深渊。

人工智能的崛起 1980年,卡内基梅隆大学为数字设备公司设计了一套名为XCON的“专家系统”。这是一种,采用人工智能程序的系统,可以简单的理解为“知识库+推理机”的组合,XCON是一套具有完整专业知识和经验的计算机智能系统。这套系统在1986年之前能为公司每年节省下来超过四千美元经费。有了这种商业模式后,衍生出了像Symbolics、Lisp Machines等和IntelliCorp、Aion等这样的硬件,软件公司。在这个时期,仅专家系统产业的价值就高达5亿美元。

人工智能第二次低谷:可怜的是,命运的车轮再一次碾过人工智能,让其回到原点。仅仅在维持了7年之后,这个曾经轰动一时的人工智能系统就宣告结束历史进程。到1987年时,苹果和IBM公司生产的台式机性能都超过了Symbolics等厂商生产的通用计算机。从此,专家系统风光不再。

人工智能再次崛起: 上世纪九十年代中期开始,随着AI技术尤其是神经网络技术的逐步发展,以及人们对AI开始抱有客观理性的认知,人工智能技术开始进入平稳发展时期。1997年5月11日,IBM的计算机系统“深蓝”战胜了国际象棋世界冠军卡斯帕罗夫,又一次在公众领域引发了现象级的AI话题讨论。这是人工智能发展的一个重要里程。

2006年,Hinton在神经网络的深度学习领域取得突破,人类又一次看到机器赶超人类的希望,也是标志性的技术进步。

【注】Geoffrey Hinton的论文《A fast learning algorithm for deep belief nets》链接地址

在最近三年引爆了一场商业革命。谷歌、微软、百度等互联网巨头,还有众多的初创科技公司,纷纷加入人工智能产品的战场,掀起又一轮的智能化狂潮,而且随着技术的日趋成熟和大众的广泛接受,这一次狂潮也许会架起一座现代文明与未来文明的桥梁。

2016 年,Google 的 AlphaGo 赢了韩国棋手李世石,再度引发 AI 热潮。

AI不断爆发热潮,是与基础设施的进步和科技的更新分不开的,从 70 年代 personal 计算机的兴起到 2010 年 GPU、异构计算等硬件设施的发展,都为人工智能复兴奠定了基础。

同时,互联网及移动互联网的发展也带来了一系列数据能力,使人工智能能力得以提高。而且,运算能力也从传统的以 CPU 为主导到以 GPU 为主导,这对 AI 有很大变革。算法技术的更新助力于人工智能的兴起,最早期的算法一般是传统的统计算法,如 80 年代的神经网络,90 年代的浅层,2000 年左右的 SBM、Boosting、convex 的 methods 等等。随着数据量增大,计算能力变强,深度学习的影响也越来越大。2011 年之后,深度学习的兴起,带动了现今人工智能发展的高潮。

小知识:人工智能开创先驱

第一位名人大家耳熟能详,那就是大名鼎鼎的“计算机科学之父”和“人工智能之父”——阿兰·图灵(Alan Mathison Turing)。他对人工智能的贡献集中体现于两篇论文:一篇是1936年发表的《论数字计算在决断难题中的应用》,在文中他对“可计算性”下了一个严格的数学定义,并提出著名的“图灵机”设想,从数理逻辑上为计算机开创了理论先河;而另一篇论文对人工智能的影响更为直接,其名字就是《机器能思考吗》,在这篇论文中,图灵提出了一种判定机器是否具有智能的实验方法,即著名的图灵测试:如果一台机器能够与人类展开对话而不能被辨别出其机器身份,那么这台机器就是智能的。“中文房间实验”正是图灵测试的一个变种。可以说,图灵是第一个严肃地探讨人工智能标准的人物,被称作“人工智能之父”当之无愧。

第二位名人是一位神童,18岁即取得数理逻辑博士学位,这就是“控制论之父”维纳(Norbert Wiener)。1940年,维纳开始考虑计算机如何能像大脑一样工作,发现了二者的相似性。维纳认为计算机是一个进行信息处理和信息转换的系统,只要这个系统能得到数据,就应该能做几乎任何事情。他从控制论出发,特别强调反馈的作用,认为所有的智能活动都是反馈机制的结果,而反馈机制是可以用机器模拟的。维纳的理论抓住了人工智能核心——反馈,因此可以被视为人工智能“行为主义学派”的奠基人,其对人工神经网络的研究也影响深远。

第三位名人经常与图灵抢“人工智能之父”的帽子,第一次提出了“人工智能(Artificial Intelligence)”这一名词。他就是LISP语言发明者,真正的“人工智能之父”约翰·麦卡锡(John McCarthy)。在1955年,约翰·麦卡锡与另一位人工智能先驱马文·明斯基以及“信息论”创始人克劳德·香农一道作为发起人,邀请各路志同道合的专家学者在达特茅斯学院共同讨论人工智能。会上,正是约翰•麦卡锡说服大家使用人工智能(Artificial Intelligence)这一术语,参会人员也热烈讨论了自动计算机、自然语言处理和神经网络等经典人工智能命题。

3. 人工智能的研究领域及分层

人工智能研究的领域主要有五层,最底层是基础设施建设,包含数据和计算能力两部分,数据越大,人工智能的能力越强。往上一层为算法,如卷积神经网络、LSTM 序列学习、Q-Learning、深度学习等算法,都是机器学习的算法。第三层为重要的技术方向和问题,如计算机视觉,语音工程,自然语言处理等。还有另外的一些类似决策系统,像 reinforcement learning(编辑注:增强学习),或像一些大数据分析的统计系统,这些都能在机器学习算法上产生。第四层为具体的技术,如图像识别、语音识别、机器翻译等等。最顶端为行业的解决方案,如人工智能在金融、医疗、互联网、交通和游戏等上的应用,这是我们所关心它能带来的价值。

值得一提的是机器学习同深度学习之间还是有所区别的,机器学习是指计算机的算法能够像人一样,从数据中找到信息,从而学习一些规律。虽然深度学习是机器学习的一种,但深度学习是利用深度的神经网络,将模型处理得更为复杂,从而使模型对数据的理解更加深入。

4. 人工智能的主流研究方向

 计算机视觉

2000年左右,人们开始用机器学习,用人工特征来做比较好的计算机视觉系统。如车牌识别、安防、人脸等技术。而深度学习则逐渐运用机器代替人工来学习特征,扩大了其应用场景,如无人车、电商等领域。

 语音技术

2010 年后,深度学习的广泛应用使语音识别的准确率大幅提升,像 Siri、Voice Search 和 Echo 等,可以实现不同语言间的交流,从语音中说一段话,随之将其翻译为另一种文字;再如智能助手,你可以对手机说一段话,它能帮助你完成一些任务。与图像相比,自然语言更难、更复杂,不仅需要认知,还需要理解。

 自然语言处理

目前一个比较重大的突破是机器翻译,这大大提高了原来的机器翻译水平,举个例子,Google 的 Translation 系统,是人工智能的一个标杆性的事件。2010 年左右, IBM 的"Watson"系统在一档综艺节目上,和人类冠军进行自然语言的问答并获胜,代表了计算机能力的显著提高。

 

 决策系统

决策系统的发展是随着棋类问题的解决而不断提升,从 80 年代西洋跳棋开始,到 90 年代的国际象棋对弈,机器的胜利都标志了科技的进步,决策系统可以在自动化、量化投资等系统上广泛应用。

 大数据应用

可以通过你之前看到的文章,理解你所喜欢的内容而进行更精准的推荐;分析各个股票的行情,进行量化交易;分析所有的像客户的一些喜好而进行精准的营销等。机器通过一系列的数据进行判别,找出最适合的一些策略而反馈给我们。

 

5. 人工智能的挑战

计算机视觉:未来的人工智能应更加注重效果的优化,加强计算机视觉在不同场景、问题上的应用。

语音识别:当前的语音识别虽然在特定的场景(安静的环境)下,已经能够得到和人类相似的水平。但在噪音情景下仍有挑战,如口语、方言等长尾内容。未来需增强计算能力、提高数据量和提升算法等来解决这个问题。

自然语言处理:机器的优势在于拥有更多的记忆能力,但却欠缺语意理解能力,包括对口语不规范的用语识别和认知等。人说话时,是与物理事件学相联系的,比如一个人说电脑,人知道这个电脑意味着什么,或者它是能够干些什么,而在自然语言里,它仅仅将"电脑"作为一个孤立的词,不会去产生类似的联想,自然语言的联想只是通过在文本上和其他所共现的一些词的联想, 并不是物理事件里的联想。所以如果要真的解决自然语言的问题,将来需要去建立从文本到物理事件的一个映射,但目前仍没有很好的解决方法。因此,这是未来着重考虑的一个研究方向。

决策系统:存在两个问题,第一是不通用,即学习知识的不可迁移性,如用一个方法学了下围棋,不能直接将该方法转移到下象棋中,第二是大量模拟数据。所以它有两个目标,一个是算法的提升,如何解决数据稀少或怎么自动能够产生模拟数据的问题,另一个是自适应能力,当数据产生变化的时候,它能够去适应变化,而不是能力有所下降。所有一系列这些问题,都是下一个五或十年我们希望很快解决的。

三、人工智能研究流行工具及平台

红色字体标记为推荐个人推荐框架。

1. TensorFlow:“使用数据流图表的可伸缩机器学习的计算”

语言:C ++或Python。

当进入AI时,你会听到的第一个框架之一就是Google的TensorFlow。TensorFlow是一个使用数据流图表进行数值计算的开源软件。这个框架被称为具有允许在任何CPU或GPU上进行计算的架构,无论是台式机、服务器还是移动设备。这个框架在Python编程语言中是可用的。TensorFlow对称为节点的数据层进行排序,并根据所获得的任何信息做出决定。https://www.tensorflow.org/

优点:

使用易于学习的语言(Python)。

使用计算图表抽象。

用于TensorBoard的可用性的可视化。

缺点:

这很慢,因为Python不是语言中最快的。

缺乏许多预先训练的模型。

不完全开源。

2. Microsoft CNTK:“开源深度学习工具包”

语言:C ++。

我们可以称之为微软对Google的TensorFlow的回应。微软的计算网络工具包是一个增强分离计算网络模块化和维护的库,提供学习算法和模型描述。在需要大量服务器进行操作的情况下,CNTK可以同时利用多台服务器。据说它的功能与Google的TensorFlow相近;但是,它会更快。https://github.com/Microsoft/CNTK

优点:

这是非常灵活的。

允许分布式训练。

支持C ++、C#、Java和Python。

缺点:

它以一种新的语言——网络描述语言(Network Description Language , NDL)来实现。

缺乏可视化。

3. Theano:“数值计算库”

语言:Python。

Theano是TensorFlow的强有力竞争者,是一个功能强大的Python库,允许以高效率的方式进行涉及多维数组的数值操作。Theano库透明地使用GPU来执行数据密集型计算而不是CPU,因此操作效率很高。出于这个原因,Theano已经被用于为大规模的计算密集型操作提供动力大约十年。然而,在2017年9月,宣布Theano的主要开发将于2017年11月发布的1.0版本后停止。这并不意味着它是一个不够强大的库。你仍然可以随时进行深入的学习研究。https://github.com/Theano/Theano

优点:

正确优化CPU和GPU。

有效的数字任务。

缺点:

与其他库相比,原生Theano有点低级。

需要与其他库一起使用以获得高度的抽象化。

AWS上有点bug。

4. Caffe:“快速、开源的深度学习框架”

语言:C ++。

Caffe是一个强大的深度学习框架。像这个清单上的其他框架一样,深度学习的研究速度非常快。借助Caffe,您可以非常轻松地构建用于图像分类的卷积神经网络(CNN)。Caffe在GPU上运行良好,这有助于在运行期间提高速度。http://caffe.berkeleyvision.org/

Caffe主要的类有:

优点:

Python和MATLAB的绑定可用。

性能表现良好。

无需编写代码即可进行模型的训练。

缺点:

对于经常性网络不太好。

新体系结构不太好。

5. Keras:“人类的深度学习”

语言:Python。

Keras是一个用Python编写的开源的神经网络库。与TensorFlow、CNTK和Theano不同,Keras不是一个端到端的机器学习框架。相反,它作为一个接口,提供了一个高层次的抽象化,这使得无论它坐落在哪个框架上,神经网络的配置都会变得容易。谷歌的TensorFlow目前支持Keras作为后端,而微软的CNTK也会在很短的时间内做到这一点。https://keras.io/

优点:

它是用户友好的。

它很容易扩展。

在CPU和GPU上无缝运行。

与Theano和TensorFlow无缝工作。

缺点:

不能有效地用作独立的框架。

6. Torch:“一个开源的机器学习库”

语言:C。

Torch是一个用于科学和数字操作的开源机器学习库。这是一个基于Lua编程语言而非Python的库。Torch通过提供大量的算法,使得深度学习研究更容易,并且提高了效率和速度。它有一个强大的N维数组,这有助于切片和索引等操作。它还提供了线性代数程序和神经网络模型。http://torch.ch/

优点:

非常灵活。

高水平的速度和效率。

大量的预训练模型可用。

缺点:

不清楚的文献记录。

缺乏即时使用的即插即用代码。

它基于一种不那么流行的语言——Lua。

7. Accord.NET:“机器学习、计算机视觉、统计和.NET通用科学计算”

语言:C#。

这是专为C#程序员设计的。Accord.NET框架是一个.NET机器学习框架,使音频和图像处理变得简单。这个框架可以有效地处理数值优化、人工神经网络,甚至可视化。除此之外,Accord.NET对计算机视觉和信号处理的功能非常强大,同时也使得算法的实现变得简单。http://accord-framework.net/

优点:

它有一个强大而积极的开发团队。

非常有据可查的框架。

质量可视化。

缺点:

不是一个非常流行的框架。

比TensorFlow慢。

8. Spark MLlib: “可扩展的机器学习库”

语言:Scala。

ApacheSpark MLlib是一个非常可扩展的机器学习库。它非常适用于诸如Java、Scala、Python,甚至R等语言。它非常高效,因为它可以与Python库和R库中的numpy进行互操作。MLlib可以轻松插入到Hadoop工作流程中。它提供了机器学习算法,如分类、回归和聚类。这个强大的库在处理大型数据时非常快速。https://www.evget.com/product/3780

优点:

对于大规模数据处理非常快速。

提供多种语言。

缺点:

入门较难。

即插即用仅适用于Hadoop。

9. Sci-kit Learn:“用Python的机器学习”

语言:Python。

Sci-kit learn是一个非常强大的机器学习Python库,主要用于构建模型。使用numpy、SciPy和matplotlib等其他库构建,对统计建模技术(如分类、回归和聚类)非常有效。Sci-kit learn带有监督学习算法、无监督学习算法和交叉验证等功能。http://scikit-learn.org/

优点:

许多主要算法的可用性。

有效的数据挖掘。

缺点:

不是构建模型的最佳选择。

GPU效率不高。

10. MLPack:“可扩展的C ++机器学习库”

 

语言:C ++。

MLPack是一个用C ++实现的可扩展的机器学习库。因为它是用C ++编写的,所以你可以猜测它对于内存管理是非常好的。MLPack以极高的速度运行,因为高质量的机器学习算法与库一起出现。这个库是对新手友好的,并提供了一个简单的API使用。http://mlpack.org/

优点:

非常可扩展。

Python和C ++绑定可用。

缺点:

文档相对有限。

四、课后作业

1. 找出五种生活中你接触到的人工智能应用,你想一下它们是如何实现的?注意是自己想不是百度找。

2.自己想一套人工智能系统,或人工智能应用来解决你生活中遇到的问题。写清楚你的问题,用文字描述清楚,认真描述你想的实现方案。可搜索资料。

3.可尝试安装人工智能流行的开发工具。

 

 

收藏 1 转发 评论