开源人工智能有何目的

2024-05-18 20:40

1. 开源人工智能有何目的

     人工智能是前沿话题,但是人工智能的发展还是初级阶段,好比处于原始社会的医学。人工智能的研究范围很广,几大互联网巨头的研究方向不一,且在各自的研究方向上也只是刚刚开始,还需要几代科学家的共同努力,没有哪家公司有一家独大的技术优势。开放程序源代码,最重要的目的是吸引各路英才研究、测试、改进自家软件,为下一步腾飞收集数据。
  截至目前,脸书(Facebook)、谷歌、微软、IBM先后开源人工智能。所谓,开源,即把程序的源代码开放,任何人都可以随意拿去使用、修改。
  天下无免费的午餐。几大互联网公司此举有何目的?对全球人工智能发展,又会产生什么影响呢?
  开源什么
  IBM公司12月7日宣布,将通过Apache软件基金会免费为外部程序员提供System ML(machine learning机器学习)人工智能工具的源代码。IBM开发副总裁罗布·托马斯(Rob Thomas)表示,希望这是System ML广泛普及的第一步。
  据了解,System ML最初由IBM在10年前开发,可以简化开发人员定制机器学习软件的难度。例如,该软件可以帮助银行编写风险建模软件,从而在发现欺诈活动时预先发出警示。目前的版本希望能与另外一个软件配合使用,帮助企业处理来自智能手机或健身手环的大量数据。
  IBM是今年第四家对外开放专有机器学习技术的科技巨头。脸书2月开放了Torch Software人工智能软件的部分内容。谷歌11月开放了TensorFlow系统。该系统可被用于语音识别或照片识别等多项机器深度学习领域,可被运行于由数千台电脑组成的服务器集群或者单一智能手机之上,目前在搜索、照片以及Inbox邮箱应用等产品中均有使用。
  同月,微软也推出了机器学习开源工具包DMTK。该开源程序可以让中小企业用几台电脑,就实现几千台超级电脑的工作——因为人工智能需要处理海量大数据。DMTK的全称是Dstributed Machine Learning Toolkit,即,分布式机器学习工具包。其中一个工具叫LightLDA,是用于大规模主题模型的可扩展、快速、轻量级系统。
  微软表示,“在分布式实现中,做了大量的系统优化使得 LightLDA能够在一个普通计算机集群上处理超大规模的数据和模型。例如,在一个由8台计算机组成的集群上,可以在具有2000亿训练样本的数据集上训练具有100万词汇表和100万个话题(topic)的LDA模型(约1万亿个参数)。”
  微软研究院的小乔治·托马斯(Jr. George Thomas)表示,借助这些工具,开发者可以使用较少的服务器部署大规模的机器学习。
  意欲何为
  大公司辛辛苦苦研发的软件,为什么要免费向公众开放呢?
  业内共识是,各家人工智能公司都在积极招募机器学习人才,而开放源代码则可以吸引外部人才参与项目协作,并改进相关技术。他们也有可能从第三方社区中招募一些人才。
  托马斯表示,IBM希望通过开放System ML源代码,吸引更多程序员运用和研究此软件,从而加快这款软件的发展,“我们目前的研发受到预算的限制,所以需要开源,加快创新速度。”
  “中国国内的人工智能研究还没真正开始,所以对人才也没发现有巨大的渴求。我们仍然以传统业务为主,还没听说哪个公司要重点发展人工智能。”BAT一位高管告诉记者。
  谷歌公司在官方网站上表示,谷歌希望通过放出这套系统吸引更多研究人员,为其找到新的用武之地,并进行改进,“TensorFlow尚不完备,还需要调整、修改、扩充。”
  值得注意的是,虽然该系统转为开源,但谷歌留下了能让自家机器学习技术独树一帜的东西:巨量的数据、可以运行该软件的计算机网络,以及一个庞大的人工智能专家团队,可以调整算法。
  英国布里斯托大学的人工智能教授克里斯蒂亚尼尼表示:“谷歌此举并不是昏了头。深度学习不是即插即用,它需要做很多测试、调整和适配工作。”
  谷歌公开自家系统的重要目的之一,是吸引到更多的人工智能专家,来为软件的改进和应用出谋划策,“这类系统有数百万个参数需要调整。如果没有工程师进行这一工作,那么谷歌这次放出的深度学习算法用途就极为有限。”
  怎么盈利
  各家公司竞相开源,让各家相互之间也可以使用竞争对手的开源程序。
  谷歌会用微软、IBM、Facebook的人工智能系统,它自己也会被别人用。而且开发者可以把各家开源程序都整合在一起,创造出自己的新系统。
  中国国内巨头互联网公司也会使用谷歌Facebook微软IBM等公司开源的程序,进行修改后变成自己的人工智能程序。但中国国内对人工智能的研究,并不像美国这样火热。“除了百度,国内没有哪个公司把人工智能作为单独事业部。”BAT的技术高管告诉《国际金融报》记者。
  人工智能软件的研发需耗费大量人力物力,那么这些开源软件还能实现商业盈利吗?
  BAT的一位核心技术高管向《国际金融报》记者分析,“就像谷歌安卓系统的开源,用的人多了,周边相关的东西就多了,谷歌可以从其他地方赚钱,比如提供配套服务,比如广告,比如专用设备。只要用的人多,就能赚钱。”
  “其中广告是非常重要的收入来源,谷歌开源的系统与安卓有强相关,用的人多了,只要用的人多,就能赚钱。” 该技术高管告诉记者。“也有可能出硬件设备,用的人多了,可能提供专用设备,比如智能硬件,软件硬件形成更完整的生态系统。”
  不过,该技术高管表示,“人工智能服务的盈利模式还没有清晰的场景,虽然它能改进和提升已有的系统,但光凭机器学习这个服务本身来赚钱,还没有清晰模式。”

开源人工智能有何目的

2. 15 个开源的顶级人工智能工具

 
   斯坦福的专家在人工智能报告中得出的结论:"越来越强大的人工智能应用,可能会对我们的 社会 和经济产生深远的积极影响,这将出现在从现在到2030年的时间段里。"
   以下这些开源人工智能应用都处于人工智能研究的最前沿。
    1.Caffe 
   
   它是由贾扬清在加州大学伯克利分校的读博时创造的,Caffe是一个基于表达体系结构和可扩展代码的深度学习框架。使它声名鹊起的是它的速度,这让它受到研究人员和企业用户的欢迎。根据其网站所言,它可以在一天之内只用一个NVIDIA K40 GPU处理6000万多个图像。它是由伯克利视野和学习中心(BVLC)管理的,并且由NVIDIA和亚马逊等公司资助来支持它的发展。
   2. CNTK 
   
   它是计算机网络工具包(Computational Network Tookit)的缩写,CNTK是一个微软的开源人工智能工具。不论是在单个CPU、单个GPU、多个GPU或是拥有多个GPU的多台机器上它都有优异的表现。微软主要用它做语音识别的研究,但是它在机器翻译、图像识别、图像字幕、文本处理、语言理解和语言建模方面都有着良好的应用。
    3.Deeplearning4j 
   
   Deeplearning4j是一个java虚拟机(JVM)的开源深度学习库。它运行在分布式环境并且集成在Hadoop和Apache Spark中。这使它可以配置深度神经网络,并且它与Java、Scala和其他JVM语言兼容。
    4.DMTK 
   
   DMTK分布式集齐学习工具(Distributed Machine Learning Toolkit)的缩写,和CNTK一样,是微软的开源人工智能工具。作为设计用于大数据的应用程序,它的目标是更快的训练人工智能系统。它包括三个主要组件:DMTK框架、LightLDA主题模型算法和分布式(多义)字嵌入算法。为了证明它的速度,微软声称在一个八集群的机器上,它能够"用100万个主题和1000万个单词的词汇表(总共10万亿参数)训练一个主题模型,在一个文档中收集1000亿个符号,"。这一成绩是别的工具无法比拟的。
    5.H20 
   
   相比起科研,H2O更注重将AI服务于企业用户,因此H2O有着大量的公司客户,比如第一资本金融公司、思科、Nielsen Catalina、PayPal和泛美都是它的用户。它声称任何人都可以利用机器学习和预测分析的力量来解决业务难题。它可以用于预测建模、风险和欺诈分析、保险分析、广告技术、医疗保健和客户情报。
   它有两种开源版本:标准版H2O和Sparking Water版,它被集成在Apache Spark中。也有付费的企业用户支持。
    6.Mahout 
   它是Apache基金会项目,Mahout是一个开源机器学习框架。根据它的网站所言,它有着三个主要的特性:一个构建可扩展算法的编程环境、像Spark和H2O一样的预制算法工具和一个叫Samsara的矢量数学实验环境。使用Mahout的公司有Adobe、埃森哲咨询公司、Foursquare、英特尔、领英、Twitter、雅虎和其他许多公司。其网站列了出第三方的专业支持。
    7.MLlib 
   
   由于其速度,Apache Spark成为一个最流行的大数据处理工具。MLlib是Spark的可扩展机器学习库。它集成了Hadoop并可以与NumPy和R进行交互操作。它包括了许多机器学习算法如分类、回归、决策树、推荐、集群、主题建模、功能转换、模型评价、ML管道架构、ML持久、生存分析、频繁项集和序列模式挖掘、分布式线性代数和统计。
    8.NuPIC 
   
   由Numenta公司管理的NuPIC是一个基于分层暂时记忆理论的开源人工智能项目。从本质上讲,HTM试图创建一个计算机系统来模仿人类大脑皮层。他们的目标是创造一个"在许多认知任务上接近或者超越人类认知能力"的机器。
   除了开源许可,Numenta还提供NuPic的商业许可协议,并且它还提供技术专利的许可证。
    9.OpenNN 
   
   作为一个为开发者和科研人员设计的具有高级理解力的人工智能,OpenNN是一个实现神经网络算法的c++编程库。它的关键特性包括深度的架构和快速的性能。其网站上可以查到丰富的文档,包括一个解释了神经网络的基本知识的入门教程
    10.OpenCyc 
   
   由Cycorp公司开发的OpenCyc提供了对Cyc知识库的访问和常识推理引擎。它拥有超过239,000个条目,大约2,093,000个三元组和大约69,000 owl:这是一种类似于链接到外部语义库的命名空间。它在富领域模型、语义数据集成、文本理解、特殊领域的专家系统和 游戏 AI中有着良好的应用。该公司还提供另外两个版本的Cyc:一个可免费的用于科研但是不开源,和一个提供给企业的但是需要付费。
    11.Oryx 2 
   
   构建在Apache Spark和Kafka之上的Oryx 2是一个专门针对大规模机器学习的应用程序开发框架。它采用一个独特的三层λ架构。开发者可以使用Orys 2创建新的应用程序,另外它还拥有一些预先构建的应用程序可以用于常见的大数据任务比如协同过滤、分类、回归和聚类。大数据工具供应商Cloudera创造了最初的Oryx 1项目并且一直积极参与持续发展。
    12.PredictionIO 
   
   今年的二月,Salesforce收购了PredictionIO,接着在七月,它将该平台和商标贡献给Apache基金会,Apache基金会将其列为孵育计划。所以当Salesforce利用PredictionIO技术来提升它的机器学习能力时,成效将会同步出现在开源版本中。它可以帮助用户创建带有机器学习功能的预测引擎,这可用于部署能够实时动态查询的Web服务。
    13.SystemML 
   
   最初由IBM开发,SystemML现在是一个Apache大数据项目。它提供了一个高度可伸缩的平台,可以实现高等数学运算,并且它的算法用R或一种类似python的语法写成。企业已经在使用它来跟踪 汽车 维修客户服务、规划机场交通和连接 社会 媒体数据与银行客户。它可以在Spark或Hadoop上运行。
    14.TensorFlow 
   
   TensorFlow是一个谷歌的开源人工智能工具。它提供了一个使用数据流图进行数值计算的库。它可以运行在多种不同的有着单或多CPU和GPU的系统,甚至可以在移动设备上运行。它拥有深厚的灵活性、真正的可移植性、自动微分功能,并且支持Python和c++。它的网站拥有十分详细的教程列表来帮助开发者和研究人员沉浸于使用或扩展他的功能。
    15.Torch 
   
   Torch将自己描述为:"一个优先使用GPU的拥有机器学习算法广泛支持的科学计算框架",它的特点是灵活性和速度。此外,它可以很容易的通过软件包用于机器学习、计算机视觉、信号处理、并行处理、图像、视频、音频和网络等方面。它依赖一个叫做LuaJIT的脚本语言,而LuaJIT是基于Lua的。
   欢迎关注~
   微信公众号: IT百战程序员 ,免费提供人工智能、大数据、云计算等资料~~不管你在地球哪个方位,欢迎你的关注!