文档章节

为什么机器学习行业的发展离不开 “开源”

编辑部的故事
 编辑部的故事
发布于 2017/03/28 20:15
字数 2534
阅读 2037
收藏 64

2016 年底,Google DeepMind 开源了它们的机器学习平台 — DeepMind Lab。尽管像霍金教授这样的专家曾就人工智能技术发出过警告,谷歌仍决定向其他开发人员开源其软件,这也是它们进一步发展机器学习能力的一部分。他们不是唯一一家这样做的科技公司,Facebook 去年开源了其深度学习的软件,Elon Musk 的非营利组织 OpenAI 也发布了 Universe,这是一个可用于训练 AI 系统的开放软件平台。所以,为什么谷歌、OpenAI,以及其他的公司或机构都选择开源了它们的平台,这将会对机器学习的采用产生怎样的影响?

为什么开源机器学习?

上面所提到的例子给了我们美好的愿景,其实如果仔细观察,会留意到机器学习一直是开源的,而且开放的研发是机器学习有如今这样关注度的根本原因。

通过向公众提供自己学习平台,Google 已经验证了其 AI 研究的意识越来越高。这样做其实有很多优点,例如可为 Alphabet 发掘到新的人才和有能力的创业公司。同时,开发者能访问 DeepMind Lab 将有助于解决他们研究机器学习的一个关键问题 —— 缺乏训练环境。OpenAI 为 AI 推出了一个新的虚拟学校,它使用游戏和网站来训练 AI 系统。

目前非常需要向公众提供机器学习平台这样的举动。

5 个开源机器学习项目的优势

  • 重现科学的结果和公平的比较算法:在机器学习中,经常使用数值模拟来提供实验验证和方法比较。这种方法之间的比较是基于严格的理论分析的。开源工具和技术提供了一个机会,可以使用公开的源代码彻底地进行研究,而不依赖于提供方。
  • 快速查找和修复 bug:当你使用开源软件执行机器学习项目时,易于检测和解决软件中的 bug。
  • 以低成本、重用的方法加快科学研究的发展:众所周知,科学的进步总是以现有的方法和发现为基础,机器学习领域也不例外。机器学习中开源技术的可用性可很好地将大量现有资源投入研究和项目。
  • 长期的可用性和支持:无论是个人研究者、开发者,还是数据科学家,开源可能都可以作为一种媒介,以确保每个人都可以在改变工作后使用他/她的研究或发现。因此,通过在开源许可证下发布代码可增加获得长期支持的机会。
  • 各行业更快地采用机器学习技术:开源软件有显著的典范,它支持着创建数十亿美元的机器学习公司和行业。研究人员和开发者采用机器学习的主要原因是有免费提供高质量的开源实现。

加快开源机器学习的采用曲线

开源机器学习的进步将使得人工智能的采用曲线更加陡峭,从而促使开发者和创业公司努力使 AI 更智能。软件平台的可用性正在改变企业开发 AI 的方式,促使他们跟随 Google,Facebook 和 OpenAI 的脚步进行更透彻的研究。

开放机器学习平台的转变是确保 AI 可为每个人所用而不是只被掌握在少数技术巨头手中的重要阶段。

个人认为,科技巨头发布开源机器学习项目有三个原因:

  • 雇佣已经与开源社区接触并通过开源项目建立了对机器学习的认识的工程师
  • 控制一个机器学习平台,使它们为自己更广泛的 SDK 或云平台策略更好地工作
  • 发展整个市场,因为他们的市场份额已经达到了饱和点

当一家创业公司发布一个开源项目时,它会引起注意,其中一些会被转化为付费客户和招聘。根据创业公司自己的定义,他们是尝试在特定市场上立足,而不是扩大现有市场。开源是无摩擦的,为另一个用户提供服务并使组织能够解决实际问题不会花费任何东西,从而使代码具有更大影响。

开源打破了建立专利技术的公司的限制。其中一个连锁效应可能是关注价值所在的转变,随着整个 AI 技术的商业化,关注点已从核心机器学习技术转向构建最佳模型,这需要大量的数据和领域专家来创建和训练模型。对于这点,具有网络影响力的大型企业具有天然优势。

开源机器学习中的最佳框架

现在有大量的开源机器学习框架,使机器学习工程师能够:

  • 构建、实施和维护机器学习系统
  • 生成新项目
  • 创建新的有影响力的机器学习系统

一些重要的框架包括:

  • Apache Singa 是一个通用、分布式、深度学习的平台,用于在大型数据集上训练大型深度学习模型。它被设计有基于层次抽象的本能编程模型。支持各种流行的深度学习模型,包括卷积神经网络(CNN),受限玻尔兹曼机(RBM),以及循环神经网络(RNN)等能量模型。为用户提供了许多内置图层。
  • Shogun 是历史最悠久,也是最受尊敬的机器学习库之一。Shogun 于 1999 年创建,采用 C++ 编写,但不只限于在 C++ 中使用。感谢 SWIG 库,Shogun 可用于以下编程语言和环境:
    • Java
    • Python
    • C#
    • Ruby
    • R
    • Lua
    • Octave
    • Matlab

Shogun 旨在面向广泛的特性类型和学习环境进行统一的大规模学习,如分类、回归、降维、聚类等。它包含了几项独有的最先进的算法,如丰富的高效 SVM 实现,多内核学习,内核假设检验,以及 Krylov 方法等。

  • TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。TensorFlow 使用数据流图进行数值计算,通过节点(Nodes)和线(edges)的有向图来阐述数学计算。节点在图中表示数学操作,也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。图中的线则表示在节点间相互联系的多维数据数组,这些数据 “线” 可以输运 “size 可动态调整” 的多维数据数组,即 “张量”(tensor)
  • Scikit-Learn 通过构建在数个现有的 Python 包(NumPy,SciPy 和 matplotlib)之上,用于数学和科学工作,充分利用了 Python 的广度。生成的库可以用于交互式 “工作台” 应用程序,也可以嵌入到其他软件中并重用。该套件在 BSD 许可证之下发布,因此它完全是开源和可重用的。Scikit-learn 包括许多用于标准机器学习任务(如聚类,分类,回归等)的工具。由于 scikit-learn 是由一大群开发者和机器学习专家开发的,所以新技术有希望会很快被引入。
  • MLlib (Spark) 是 Apache Spark 的机器学习库。其目标是使实用的机器学习具有更好的可扩展性和易于使用。它由常见的学习算法和实用程序组成,包括分类、回归、聚类、协同过滤、降维,以及较底层的优化原语和高层的管道 API。Spark MLlib 被认为是在 Spark Core 之上的分布式机器学习框架,主要由于其分布式的基于内存的 Spark 架构,几乎是 Apache Mahout 使用的基于磁盘的实现的九倍。
  • Amazon Machine Learning 是一项使任何技能水平的开发者都能轻松使用机器学习技术的服务。Amazon Machine Learning 提供了可视化工具和向导,指导你完成创建机器学习(ML)模型的过程,而无需学习复杂的 ML 算法和技术。它连接到存储在 Amazon S3,Redshift 或 RDS 中的数据,可以对所述的数据运行二进制分类,多类分类或回归,以创建一个模型。
  • Apache Mahout 是 Apache 软件基金会的一个自由开源项目。目标是为协作过滤、聚类和分类等多个领域开发免费的分布式或可扩展的机器学习算法。Mahout 为各种数学运算提供了 Java 库和 Java 集合。Apache Mahout 是使用 MapReduce 范例在 Apache Hadoop 之上实现的。如果大数据存储在 Hadoop 分布式文件系统(HDFS)中,Mahout 提供的数据科学工具,可以在这些大数据集中自动找到有意义的模式,从而将这些大数据快速轻松地转化为 “大信息”。

最后要说的

机器学习确实可以在开源工具的帮助下解决真正的科学技术问题。如果机器学习是为了解决真正的科学技术问题,社区需要建立在彼此的开源软件工具之上。我们认为,机器学习开源软件有一个紧急需求,它将满足多个角色,其中包括:

  • 更好的方法来重现结果
  • 为质量软件实施提供学术认可的机制
  • 通过站在其他人的肩膀(不一定是技术巨头)上以加速研究过程

编译自:blog.hackerearth.com 作者:Chandrashekhar Deshpande

© 著作权归作者所有

共有 人打赏支持
编辑部的故事

编辑部的故事

粉丝 1230
博文 256
码字总数 462348
作品 0
深圳
运营/编辑
私信 提问
加载中

评论(7)

subool
subool
感觉为了除错就开源这个说法完全是胡说八道,事实上人工找错远远不如软件找错好,而且有一大堆各类找错软件,人工找错的唯一好处就是人工经常会有脑门洞开的奇思怪想,这自然是软件没有的。
夙歆风
夙歆风
开源也算是人力的一种分布式计算
CodeKingKong
CodeKingKong
因为不开源的话,没几个公司能有人自己研究出来东西
司徒永超
司徒永超
没开源软件的话,难道还指望这些人有这个能力和精力从零开始搞?
kernel64
kernel64
没有开源的话,机器上那去抄呢?
k
kchr
和十年前那些 “为什么开源永远不可能成功” 的狗屁文章一样,都是先有结论再凑论据。
梅开源
梅开源
很多事情大家都不知道怎么搞,开源了就可以跟着瞎搞
MetInfo提价通知

尊敬的MetInfo用户: 从2009年3月28日MetInfo1.0发布至今已有4年零7个月,在这1600多个日日夜夜里,MetInfo历经艰辛,走过风风雨雨,从起初一个名不经传的小公司发展到今天成为“企业网站管理...

MetInfo
2013/11/18
30
0
对话金链盟开源工作组组长范瑞彬:区块链应用离不开“开源”

12月21日,开源中国受邀参加了金链盟中国区块链应用大赛总决赛。整场大赛下来,笔者深刻感受到了新生代开源区块链技术所带来的变革。 12月21日,金链盟中国区块链应用大赛总决赛在深圳落下帷...

局长
2018/12/25
0
0
大数据到底怎么学: 数据科学概论与大数据学习误区

数据科学家走在通往无所不知的路上,走到尽头才发现,自己一无所知。”-Will Cukierski,Head of Competitions & Data Scientist at Kaggle 最近不少网友向我咨询如何学习大数据技术?大数据怎...

wx5ad819330b785
2018/05/19
0
0
首届 "一铭杯" Linux 软件大赛,推动国产软件创新发展

10月20日, 由国内著名操作系统软件厂商一铭软件主办的“第一届‘一铭杯’中国Linux软件大赛”在北京召开新闻发布会,大赛组委会宣布首届“一铭杯”中国Linux软件大赛正式开赛,来自政府、行...

oschina
2015/10/21
849
1
技术争鸣!七大主题报告,四大技术专题,AI开发者大会首日议程全回顾

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/83899345 技术争鸣,座无虚席! 11 月 8 日,北京诺金酒店,2018 AI开发者...

AI科技大本营
2018/11/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

精品书籍推荐

JavaScript书籍推荐 1、[JavaScript高级程序设计(第3版)] 2、你不知道的JavaScript(中卷) 3、ES6标准入门(第二版)阮一峰

轻轻的往前走
16分钟前
4
0
JVM(六)为什么新生代有两个Survivor分区?

本文会使用排除法的手段,来讲解新生代的区域划分,从而让读者能够更清晰的理解分代回收器的原理,在开始之前我们先来整体认识一下分代收集器。 分代收集器会把内存空间分为:老生代和新生代...

王磊的博客
22分钟前
6
0
程序员最喜欢的15款文本编辑器推荐

程序员最喜欢的15款文本编辑器推荐 2017年09月18日 17:30:50 kangle_zhu 阅读数:59390 转载地址:http://www.cr173.com/html/50553_1.html 很多时候比如编程查看代码或者打开各种文档下我们...

linjin200
24分钟前
9
0
如何在php后端及时推送消息给客户端

walkor大神,目前需求是这样的: 有一群商家在后台网页处理批量导入产品 -》 服务器接受请求 -》 开始foreach一个一个处理导入请求; 我现在想每成功导入一个就推送到前台显示已经导入成功,...

dragon_tech
43分钟前
16
0
Java利用hanlp完成语句相似度分析的案例详解

分享一篇hanlp分词工具使用的小案例,即利用hanlp分词工具分析两个中文语句的相似度的案例。供大家一起学习参考! 在做考试系统需求时,后台题库系统提供录入题目的功能。在录入题目的时候,...

左手的倒影
49分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部