查看原文
其他

一文看懂AI算法(附:2018世界人工智能产业蓝皮书)

木易 机器人文明 2020-01-18

关注我们,思考像钟摆,永不停歇


阅读关键词:AI算法、学派、深度学习


目前,人工智能的全产业布局主要是“底层硬件+核心算法+上层应用”,上期的产业图谱系列我们介绍了其中的核心底层硬件(AI“芯事”:产业图谱系列三),本期产业图谱系列四,将就核心算法做一些探讨。




What

什么是算法? 

算法(Algorithm)是一系列解决问题的清晰指令,是用系统方法描述解决问题的策略机制。

 

计算机由几十亿个微小开关(晶体管)组成,一个晶体管的状态就是一个比特信息,如果开关打开,信息就是1;如果开关关闭,信息就是0。一种算法不仅是简单的一套指令,这些指令必须精确且不能模糊,这样计算机才能够执行。比如,食谱并不算一种算法,因为食谱没有明确给出做事顺序,或者具体说明每一步是怎样的。

 

算法必须具备的特征:

 

1)、可穷尽:能在执行有限个步骤之后终止;

 

2)、确切性:每一步都有确切的定义;

 

3)、输入项和输出项:算法需要定义初始情况,以及最终加工后的结果。

 

4)、可行性:每个计算步骤都可以在有限时间内完成。

 

深度学习算法示意

 


Where

算法的起源和三要素 


算法的概念提出者是9世纪波斯数学家al-Khowarazmi。在他之前,第一个被认为是不平凡算法的则是欧几里得最大公约数算法

 

在第一期<产业图谱>中我们介绍了人工智能产生所需要的基本哲学思想(AI身世揭秘:产业图谱系列一,除此之外,算法的形成还需要逻辑、计算和概率——三个领域的系统思维。

 



When&Who&How


算法的演进 

  

虽然没有做过确切统计,但算法种类繁多,且以每年增加几百种的速度增长,而且时刻在更新。但如果按照系统分类,人工智能领域基本算法总共有三大类,随着每一波技术发展浪潮演进。

 

在五十年代,人工智能被定义的初期,盛行的是符号学派

 

数理逻辑

 

符号,顾名思义,按照输入和输出的原理,就是以简化的符号形式作为输入信息,解决问题的方法是通过预先存在的知识填补空白,不存在不靠知识进行的学习。

 

符号学派的早期代表人物即是给人工智能命名的麦卡锡,他的见解是:“(人工智能)是关于如何制造智能机器,特别是智能的计算机程序的科学和工程。它与使用机器来理解人类智能密切相关,但人工智能的研究并不需要局限于生物学上可观察到的那些方法。”

 

麦卡锡

 

从历史渊源来看,符号学派可以说继承了图灵测试的衣钵,认为人工智能源于数理逻辑,无论是人类的认知思维,还是机器学习,本质都是对符号的逻辑运算。逻辑思维通过计算机中逻辑门的运算模拟出来,进而实现机械化的人类认知,就形成了人工智能。

 

物理符号系统

 

在麦卡锡的数理逻辑运算基础上,发明“逻辑理论家”的纽埃尔和西蒙将他的观点进一步推演为“物理符号系统假说”。

 

纽埃尔和西蒙

 

这个假说认为:任何能够将某些物理模式或符号转化成其他模式或符号的系统都有可能产生智能的行为,可以是人脑神经网络上的电脉冲信号,也可以是通过各种逻辑门产生的高低电平。在这个假说下,符号学派把焦点集中在人类智能的高级行为,如推理、规划、知识表示等方面。

 

应用上,IBM的计算机在1997年成为国际象棋世界冠军,以及2011年在知识问答赛上战胜人类选手,成为符号学派发展的标志性事件。

 

当然,也有人不能认同人工智能是源于数理逻辑,其中他们有人认为产生智能的关键在于神经生理学和认知科学,这一派别被称为连接学派。

 

连接学派主要分为前期神经网络,以及后期深度学习两个时期。

 

神经网络和深度学习

 

人类的智慧主要来源于大脑的活动,而大脑则是由数不清个神经元细胞通过错综复杂的通路相互连接形成。连接学派普遍认为,神经元不仅是大脑神经系统的基本单元,更是行为反应的基本单元。思维过程是神经元的连接活动过程,是通过大量突触相互动态联系着的众多神经元协同作用来完成。

 

1943年,沃伦·麦卡洛克和沃尔特·皮茨合著的论文《神经活动中内在思想的逻辑演算》发表,是形式化神经元的早期模型,他们提出神经元形式化的数学描述和网络的结构方法,为人工智能创造了一条用电子装置模仿人脑结构和功能的新途径。

 

就这样,通过用大量非线性并行处理器模拟人类的神经元,并将处理器之间的复杂连接用来模拟人脑中神经元突触的方式开始盛行,相较于符号学派,连接学派在模拟人脑的方向上更加形象。而且和符号学派不同的是,可以进行自主学习。

 

在被提出的早期,连接学派并没有受到重视,只是理论一直在完善。世纪之交,神经网络出现重要改进,两位俄罗斯科学家弗拉基米尔·万普尼克和阿列克谢· 切沃内基斯提出了统计学习理论,并进一步提出了支持向量机模型。

 

2006年,杰夫瑞·辛顿提出将神经网络由一层改进为多层,成为了“深度学习”之父。深度学习为解决深层结构相关的优化难题带来希望,杨乐坤等人提出的卷积神经网络则成为第一个真正多层结构学习算法。

  

传统神经网络和深度学习神经网络

 

 

卷积神经网络结构图

 

深度学习三人行

 

2015年,为纪念人工智能提出60周年,《Nature》专门开辟了一个“人工智能+机器人”专题,邀请到三位世界顶级深度学习大牛Yann LeCun、Yoshua Bengio和Geoffrey Hinton发表了名为《Deep Learning》的合著论文,这篇论文深入浅出地介绍了深度学习的基本原理和核心优势。

 

 从左至右依次为Geoffrey Hinton、Yann LeCun、Yoshua Bengio

 

除了符号学派和连接学派外,还有一大学派被称为行为学派

 

与符号学派基于数理逻辑,连接学派基于人脑神经不同,行为学派认为人工智能起源于数学家诺伯特·维纳提出的全新学科“控制论”。

 

1948年,诺伯特·维纳发表了控制论名著《控制论——关于在动物和机器中控制和通讯的科学》,至此,控制论成为一门研究机器、生命社会中控制和通讯等一般规律的新兴学科。

  

诺伯特·维纳和他的《控制论》

 

奇特的是,行为学派在智能上的聚焦点,既没有放在智能产生的思维逻辑,也没有重点对人本身进行研究,而是将关注点放在了昆虫的行为上,主要对自寻优、自适应、自镇定、自组织和自学习等控制论进行了系统的研究。

 

对于人工智能来说,行为学派的主要意义在于种下了智能控制和智能机器人发明的种子。

 

Dilemma


算法的困境 


 历史上,三个学派都曾占据主流,目前主要是深度学习的天下。但事实上,三个学派都有各自面临的主要困难。

 


For example

主要的深度学习算法


TensorFlow

 

TensorFlow是基于数据流编程的符号数学系统,广泛应用于各类机器学习

 

2015年,在第一代机器学习系统DistBelief的基础上,谷歌大脑完成了对“第二代机器学习系统”TensorFlow的开发并对代码开源。核心代码由C++编写,另支持Python、Go和Java等语言。具有代码质量高、开发支持强大、维护能力强、架构设计优秀,以及计算效率高等优势。

 

最新更新:



 近日,TensorFlow 1.12.0 正式发布。

 

主要特点和改进:

 

·Keras 模型可以直接输出为SavedModel格式(tf.contrib.saved_model.save_keras_model()),输出的模型可以使用TensorFlow Serving来部署。

 

·Keras 模型支持使用tf.data.Dataset作为数据源来进行模型评估。

 

·TensorFlow二进制文件在默认链接的XLA支持情况下构建。

 

·Ignite Dataset被添加至contrib/ignite以允许使用Apache Ignite。


发行链接:https://github.com/tensorflow/tensorflow/releases

 

Caffe & Caffe2

 

Caffe的全称是“Convolutional Architecture for Fast Feature Embedding”,是一个被广泛使用的开源深度学习框架。在TensorFlow出现之前,它是深度学习领域GitHub star最多的项目。

 

Caffe的创始人是加州大学伯克利的Ph.D.贾扬清,现就职于Facebook。2013年,他在Github上线Caffe,被研究和工业界极大关注。四年后,已入职Facebook的他又发布了全新开源深度学习框架Caffe2。Caffe支持的语言包括C++、Python等。和其它深度学习框架相比,Caffe系列具有容易上手、训练速度快、组件模块化等优点。

 

最新更新:

 


Caffe2 和 PyTorch的代码于今年4月开始合并。

 

合并细节主要包括:

 

·Caffe2 和 PyTorch的python包(pip 和 conda)整合并被合并到一个包中。

 

·Caffe2 的图形构建 API(brew,core.Net)将继续工作,并且序列化模型NetDefs提供向后兼容性。

 

·Caffe2和PyTorch的操作逐渐合并,扩展二者的功能。

 

·后续统一将ONNX作为常用的模型文件格式。

 

·Caffe2高可扩的执行引擎大部分将保持完好。

 

·Caffe2现有的predictor支持将成为在数据中心和移动设备上加速部署的主要手段。

 

·后续将通过统一的PyTorch 1.0软件包的原型环境直接提供Caffe2的各种设备支持和运行时集成。

 

·PyTorch 1.0将是Caffe2和PyTorch合并后推出的首个整合版本。

 

PyTorch

 

深度学习框架库Pytorch是Torch的python版本,于2017年初开源。

 

Torch历史悠久,但真正得到发扬是在Facebook开源了深度学习组件之后,此后包括Google、Twitter、NYU、IDIAP、Purdue等组织都大量使用Torch。Torch的支持语言是Lua。该框架具有设计简洁、速度快、简便易用,以及社区活跃等优势。

 

最新更新:

 

 

一个月前,PyTorch 1.0 首个RC版本预发行,包含以下重要特性

 

·C10D由性能驱动,完全异步所有的后端工作:Gloo,NCCL和MPI。

 

·显著的分布式数据并行性能改进,尤其适用基于以太网等的主机较慢的网络。

 

·为torch.distributed包中的所有分布式集合操作添加异步支持。

 

·在Gloo后端添加sendrecv支持。


发行链接:https://github.com/pytorch/pytorch/releases/tag/v1.0rc1

 

Keras

 

Keras是一个高层神经网络API,使用Python实现,并可以同时运行在TensorFlow和Theano上。

 

Keras最初是作为项目ONEIROS(开放式神经电子智能机器人操作系统)研究工作的一部分而开发。目前,Keras 的开发主要由谷歌支持,Keras API以tf.keras的形式包装在 TensorFlow 中,微软则维护着Keras的CNTK后端。优势在于入门简单、性能损耗低,使用限制少等优势。

 

最新更新:

 

 

自2.2.0版版本在今年6月发布以来,目前已改进至2.2.4。

 

比较重要的优化包括:

 

·新模型定义API:Model子类化。

 

·新输入模式:直接在TensorFlow张量上调用模型的能力(仅限TensorFlow后端)。

 

·通过Theano和CNTK后端改进Keras的功能覆盖。

 

·错误修复和性能改进。

 

·改进代码结构,代码优化并缩短了测试时间。

 

·API完整性和可用性改进。


发行链接:https://github.com/keras-team/keras/releases/tag/2.2.3

 

PaddlePaddle

 

PaddlePaddle是平行分布式深度学习平台。

 

2013年,百度自主研发了深度学习平台,但一直为内部工程师研发使用。2016年,前首席科学家吴恩达首次宣布深度学习平台对外开放,命名PaddlePaddle。该平台的支持语言为Python和C++,具有灵活高效、扩展性强等优点。

 

最新更新:

 

 

Github上,PaddlePaddle版本更新至1.1.0。重要改进包括:

 

·优化运算符,显著提高性能。

 

·扩展multiclass_nms运算符,支持多边形边界框。

 

·添加了generate_proposals运算符CUDA实现。

 

……


发行链接:https://github.com/PaddlePaddle/Paddle/releases/tag/v1.1.0


获取“2018世界人工智能产业蓝皮书”请点击文末“阅读原文”获取码:vhwn

 

 

本文由“机器人文明”出品

转载请注明出处


可以撩撩群主~拉你入群

长此以往,我们就是朋友了!


往 期 精 选 


最尬榜单!中国计算机专业“反超”美国?
最新财报披露,AI五大应用现状!
AI涨停潮?Q3财报背后的真实业态
AI“芯事”:群雄逐鹿,未来何方?
来自AI创业公司的高薪Offer?小心掉坑!| AI七日谈



我是广告:欢迎给“机器人文明”投稿~

好文请投:tougao@gsi24.com

— 完 —

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存