2016 年底,Google DeepMind 开源了它们的机器学习平台 — DeepMind Lab。尽管像霍金教授这样的专家曾就人工智能技术发出过警告,谷歌仍决定向其他开发人员开源其软件,这也是它们进一步发展机器学习能力的一部分。他们不是唯一一家这样做的科技公司,Facebook 去年开源了其深度学习的软件,Elon Musk 的非营利组织 OpenAI 也发布了 Universe,这是一个可用于训练 AI 系统的开放软件平台。所以,为什么谷歌、OpenAI,以及其他的公司或机构都选择开源了它们的平台,这将会对机器学习的采用产生怎样的影响?
为什么开源机器学习?
上面所提到的例子给了我们美好的愿景,其实如果仔细观察,会留意到机器学习一直是开源的,而且开放的研发是机器学习有如今这样关注度的根本原因。
通过向公众提供自己学习平台,Google 已经验证了其 AI 研究的意识越来越高。这样做其实有很多优点,例如可为 Alphabet 发掘到新的人才和有能力的创业公司。同时,开发者能访问 DeepMind Lab 将有助于解决他们研究机器学习的一个关键问题 —— 缺乏训练环境。OpenAI 为 AI 推出了一个新的虚拟学校,它使用游戏和网站来训练 AI 系统。
目前非常需要向公众提供机器学习平台这样的举动。
开源机器学习项目的 5 个优势
加快开源机器学习的采用曲线
开源机器学习中的***框架
现在有大量的开源机器学习框架,使机器学习工程师能够:
- 构建、实施和维护机器学习系统
- 生成新项目
- 创建新的有影响力的机器学习系统
一些重要的框架包括:
- 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 MachineLearning 是一项使任何技能水平的开发者都能轻松使用机器学习技术的服务。Amazon Machine Learning 提供了可视化工具和向导,指导你完成创建机器学习(ML)模型的过程,而无需学习复杂的 ML 算法和技术。它连接到存储在 Amazon S3,Redshift 或 RDS 中的数据,可以对所述的数据运行二进制分类,多类分类或回归,以创建一个模型。
- Apache Mahout 是 Apache 软件基金会的一个自由开源项目。目标是为协作过滤、聚类和分类等多个领域开发免费的分布式或可扩展的机器学习算法。Mahout 为各种数学运算提供了 Java 库和 Java 集合。Apache Mahout 是使用 MapReduce 范例在 Apache Hadoop 之上实现的。如果大数据存储在 Hadoop 分布式文件系统(HDFS)中,Mahout 提供的数据科学工具,可以在这些大数据集中自动找到有意义的模式,从而将这些大数据快速轻松地转化为 “大信息”。
***要说的
机器学习确实可以在开源工具的帮助下解决真正的科学技术问题。如果机器学习是为了解决真正的科学技术问题,社区需要建立在彼此的开源软件工具之上。我们认为,机器学习开源软件有一个紧急需求,它将满足多个角色,其中包括:
- 更好的方法来重现结果
- 为质量软件实施提供学术认可的机制
- 通过站在其他人的肩膀(不一定是技术巨头)上以加速研究过程