欢迎引用,注明来源:【https://my.oschina.net/u/2306127/blog】html
2016年是机器学习的元年。git
除此以外,脑科学、基因工程、新型材料、3D打印、智能制造、机器人、云计算与大数据、神经网络芯片等相关技术也获得了快速发展,对机器学习的研究和应用起到了推波助澜的做用。github
机器智能是否会超过人?这是2016年普遍争论的一个话题。算法
在不少科幻大片中,咱们都看到过不少人机大战的惊心动魄的场景。但从原理上说,机器学习是基于网络拓扑的几率论的,所以很难出现创新性的奇思妙想,而这偏偏是推进技术进步的关键因素;至少从目前来看,机器毕竟是人建造的,算法也是人来开发的,要想得到超越总体人类尤为是部分天才的大脑仍是一件至关遥远的事情。服务器
不过,事情也没有那么乐观。网络
天然界的生物会发生基因突变,机器学习出现突变也不是没有可能,所以机器产生出内生的智能也是彻底可能的,就像物种的演变同样。架构
尽管机器没法超越那些顶尖聪明的天才,但超越大多数普通人仍是彻底可能的。并发
由于机器具备几个自然的优点,是人所不能达到的:持续、共享、协同、重复、记忆。框架
欢迎引用,注明来源:【https://my.oschina.net/u/2306127/blog】iphone
AlphaGo打败韩国棋手李世石,从而排名世界围棋第二名位置。AlphaGo【 https://deepmind.com/research/alphago/ 】是由Google收购的英国人工智能团队DeepMind【 https://deepmind.com/ 】取得的成果。DeepMind日前还公布了WaveNet语音合成引擎的成果。IBM、微软、谷歌、科大讯飞等在多年前作过语音识别和合成的软件,但采用的传统引擎方法。如今百度和谷歌采用新的机器学习方法,在不到三年的时间内就超过了之前数十年研究的水平。
大数据已经成为热门的技术,IBM提出“认知计算”概念,并将其Watson系统用于医疗领域。大数据面临的问题,能够归结为计算问题(包括基础设施、性能、容量、算法等)、分析和认知(包括处理逻辑、分类、模式识别等)、决策和反馈(包括判别、使用和结果的输出、应用)三个阶段。使用传统数理逻辑和统计方法进行大数据的分析和知识提取已经遇到瓶颈,机器学习将有可能成为大数据认知的核心支撑,能够为大量数据的自动化处理和高阶利用提供帮助,惟有借助机器学习方法,才能让基于大数据的业务智能真正落地。目前神经网络在语音和图像的识别和合成方面已经取得了很是好的成果,谷歌甚至教会计算机进行音乐创做。
自动驾驶在特斯拉、谷歌、百度的引领下【 http://auto.sina.com.cn/news/hy/2016-03-25/detail-ifxqswxk9617597.shtml 】,热度持续上升,已经成为全球人才争夺的新战场。尽管Tesla出过几回严重事故,但人们的热情始终不减,相关软硬件和研发的投入持续快速增长。2016年百度也拿到加州自动驾驶车测试许可。除了这些巨头以外,2016年已有数个面向自动驾驶、人工智能的创新企业出现,并得到投资人的青睐,如中国的HorizonRobot、驭势科技等。 传统的大型汽车企业如宝马、丰田、大众也都紧锣密鼓地启动了自动驾驶的相关研究。
将来学家凯文.凯利预言的十二个趋势【http://mt.sohu.com/20160712/n458801153.shtml】中,人工智能占据很重要的位置,并在演讲中将其列为将来二十年中的颠覆性技术之一。机器学习系统是机器人的大脑,让机器具备自主学习、行动的能力,而再也不是简单的机械。2016年,日本丰田公司收购了在机器人竞赛中屡次获胜、目前最为先进的人形、四足机器人Atlas的团队-Boston Dynamics,并在硅谷设立了研发中心。目前,日本的各种机器人产业已逐步造成完整的链条。
由Tesla创始人Musk和其余几位人工智能专家成立的OpenAI非盈利人工智能研究组织【 https://openai.com 】在2016年获得快速的发展,数亿美圆资金已经到位,2016年10月份举行了一场非正式会议,开放了OpenAI Gym算法评测框架【 https://github.com/openai/gym 】。2016年,Tesla与Mobileye正式分手(Mobileye是以色列的一家企业,其核心产品是基于单目视觉的自动驾驶系统,Tesla的自动驾驶功能一直采用该方案),目前Mobileye也推出了本身的后装型辅助驾驶系统。Primsense是最先作视觉识别芯片的厂家(位于以色列),用于微软的Kinnect体感游戏设备之中,2013年被苹果公司收购,所创建的OpenNI开源软件和社区也随之关闭。OpenCV【 https://github.com/opencv 】是计算机视觉使用最广的库,最初由Intel开发,Itseez公司是主要维护者。2016年Intel收购了Itseez公司以及计算视觉芯片公司Movidius。
NVidia扛起了机器学习硬件的大旗。因为神经网络运算须要消耗大量的算力,不少人使用GPU进行加速,而NVidia在这方面作了大量的工做,不只在原来Cuda计算库的基础上推出了专用的神经网络算法库,在2016年接连发布了机器学习平台DGX一、自动驾驶平台Drive PX二、高性能计算平台M40及其相关的软件支持库【http://www.nvidia.cn/object/drive-px-cn.html】。之后,GPU再也不仅仅是视觉输出,也将成为视觉输入的重要设备。
机器学习是一个普遍的概念。从人工智能先驱马文.明斯克(1927)在1959创立第一我的工智能实验室开始,致2016年1月逝世为止,已有57年历史。期间经历屡次火爆和沉寂,积累了大量的研究资料和经验,也衍生出了不少新的概念。
人工智能通常泛指用人工方法教会机器去“聪明”地作事情。可是,如今不少人更认为这是“机器智能”,由于机器的思路和执行是按照如今的计算机控制系统的,与人的大脑思考方式有很大的区别。机器学习的方法也已经出现多年,文献材料已经汗牛充栋,并在不少数据分析和决策支持系统中使用,如最小紧邻、决策树、主成分分析、蒙地卡罗模拟等等方法。深度学习是一种基于神经网络的机器学习方法。因为2016年AlphaGo的胜出,基于神经网络的深度学习方法【 http://baike.baidu.com/view/9964678.htm 】几乎成为机器学习的代名词。
机器学习过程通常分为是三个阶段:训练阶段,将训练样本输入训练器,以产生出学习到的成果参数,所产生的误差为学习算法自己的偏差;评估阶段,将评估样本输入,比较与预期结果的差别,所产生的误差为与实际的误差;应用阶段,将模型带入实际数据进行预测操做。一旦模型训练经过,后续就能够大规模使用。训练阶段消耗的计算资源比较多,通常用具备GPU支持的高性能计算机进行,而应用阶段的计算量就会大大减小,普通计算机甚至平板、手机均可以使用。
在深度学习方法中,能够分为监督学习和无监督学习两个大类,2016年谷歌又提出了Expander-基于图论(Graph)的机器学习方法( http://www.javashuo.com/article/p-eaqaopwq-gh.html )。监督学习须要对数据预先进行人工标记,再经过学习算法解算出相应的神经网络参数。非监督学习不须要实现进行训练数据的标记,主要用于分类和对象识别,没法学到具备“语义”的先验知识。
基于神经网络的深度学习方法主要模拟大脑的运做机制,由感知器、响应函数、输出端组成,原理上是比较简单的。可是,选择的网络层数、响应函数的类型对结果影响很大,样本数据的类型、质量、完备性也都会大幅度影响训练的结果,所以不一样训练集数据和模型出来的结果会有很大的差别。不一样应用领域的数据和特征确定是不一样的,所以深度学习的结果并不是如咱们想象的那样能够放之四海而皆准,从而实现通用的机器学习方法,而是须要像人同样不断地“精细学习”领域知识;随着层数和数据的加多,学习结果的准确率会趋于稳定(好比90%),而并不是如预期的那样会一直提升(好比不断接近100%),所以到必定程度后再向上提高就变得很是困难。这是目前困扰深度学习的两个亟待突破的问题。
因为神经网络在2016年取得的突出成果,传统的机器学习研究几乎所有转向到了基于神经网络的深度学习领域。为了加速相关的研究和应用过程,多个开源软件项目发展了起来(参见:《15款开源机器学习软件》- http://www.javashuo.com/article/p-udbszcrp-ex.html ),其中包括:Caffe、CNTK、Deeplearning4J、DMTK、H2O、Mahout、MLlib、NuPic、OpenNN、OpenCyc、Oryx二、PredictionIO、SystemML、Tensorflow、Torch。OpenAI也开源了算法评测框架Gym( https://github.com/openai/gym )。
对于深度学习的入门者来讲,Keras是一个很好的框架,【Keras+Jupyter+Docker黄金组合】上手快,资源多【参见《Keras教程》- https://my.oschina.net/u/2306127/blog?catalog=3744998&temp=1476188997288 】。Keras不提供深度学习计算引擎,但对深度学习的运行流程作了一个抽象接口封装,能够经过Python快速调用。目前,Keras支持Theano和Tensorflow做为神经网络计算引擎,使用时须要安装这两个软件之一。
MLlib是基于Spark分布式计算平台的机器学习模块,包含大量机器学习算法。但目前MLlib没有神经网络的算法,可使用Deeplearning4J来在Spark上进行深度学习计算。目前,Cafffe和Tensorflow也均可以在Spark上运行,但多节点的协同参数同步还须要额外的开发来进行管理。
FaceBook在2016年进一步开源了三个基于深度学习的图像处理软件( https://github.com/facebookresearch ),包括:DeepMask、SharpMask、MutiPathNet。DeepMask( https://github.com/facebookresearch/deepmask )主要实现图像提取,将目标对象从背景中分离出来,这是图像识别的很关键的初始步骤;SharpMask用于图像精确分割,从而提取出目标对象;MultiPathNet对提取出的掩码进行识别和分类。
Google在2016年除了AlphaGo(电脑围棋,闭源)以外,还公布了WaveNet(语音合成)的成果,结果已经接近真人语音。此外,还公开了Expander(基于图论)的机器学习方法,将DayDream(图像合成)和Cartographer(基于SLAM的机器视觉)两款软件开源。
百度在2016年开放了Paddle机器学习软件( https://github.com/baidu/Paddle ),能够支持大规模的分布式机器学习,不过部署起来步骤较多,我尚未亲自试过。
机器学习研究要用到大量训练数据,目前已经开源的数据包括:MNIST(手写字符识别,http://yann.lecun.com/exdb/mnist/ ), ImageNet(著名的机器学习研究标准数据集,http://image-net.org/download-imageurls ),自动驾驶(https://github.com/udacity/self-driving-car ,https://github.com/commaai/research )。
因为神经网络计算须要消耗大量的算力,随着机器学习尤为是基于神经网络的深度学习的快速发展,对计算硬件也提出了新的要求。目前,深度学习计算平台主要有四大流派:CPU、GPU、FPGA和DSP,目前仍是以CPU+GPU为主。
NVidia是目前深度学习的首选平台,除了GPU硬件以外,在Cuda的基础上提供了神经网络计算的SDK和自动驾驶SDK,大大简化和加速了深度学习的研究进程。2016年,NVidia基于最新的Pascal GPU芯片,发布了机器学习平台DGX一、自动驾驶平台Drive PX二、高性能计算平台M40及其相关的软件支持库。但其最大的弱势是功耗高、成本高,主要适应科研须要,暂时难以大规模部署到消费级产品中。
Intel推出了众核计算平台Phi系列芯片( http://news.mydrivers.com/1/246/246652.htm )知足高并发的机器学习须要,2015年收购了ARM芯片方案商Altera,将FPGA能力与ARM结合起来,2016年推出了X86+FPGA的融合芯片( http://www.extremetech.com/extreme/184828-intel-unveils-new-xeon-chip-with-integrated-fpga-touts-20x-performance-boost ),据称能够提高高达20倍的计算性能。2016年进一步收购了深度学习芯片公司 Nervana Systems( http://www.nervanasys.com/ ) ,以及移动和嵌入式机器学习公司 Movidius,维护OpenCV的机器视觉公司Itseez。Intel几乎涵盖了全部的技术路线,可谓全面开花。
Wave Computing(http://wavecomp.com/)号称要建立出比GPU更快但功耗比FPGA还低的计算机系统。采用所谓Dataflow Processing Unit (DPU) 的架构,这与Nervana有相似之处。
ARM正在向服务器发展,已有厂商制作了多达1024核的服务器系统,中国的飞腾芯片(国防科大研制)也已经投入使用,因为其低功耗的特性,将来也有但愿在机器学习领域崭露头角。
谷歌正在开发TPU(Tensor Processing Unit,张量处理单元),TPU为了更好的用TensorFlow(TF)来实现机器学习功能而特地优化了ASIC,下降了计算精度以减小完成每一个操做所须要的晶体管数量。目前为止Google尚未提供性能测试数据,但Google声称这些优化有助于提升芯片每秒钟处理的操做数量。
2016年3月,中国科学院计算技术研究所发布了全球首个可以“深度学习”的“神经网络”处理器芯片,名为“寒武纪”(架构解析: http://www.leiphone.com/news/201605/93lRxoUpxCLaT5Zd.html )。IBM 在2014年研发出脉冲神经网络芯片TrueNorth,走的是“类脑计算”路线。
面向深度学习的硬件和软件系统正在快速发展,必将开启一个新的时代,智能社会已经透出曙光。
欢迎引用,注明来源:【https://my.oschina.net/u/2306127/blog 】