开源的机器学习框架应当如何选择?

Posted 程序员交流学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源的机器学习框架应当如何选择?相关的知识,希望对你有一定的参考价值。

为何要选择机器学习框架呢?使用开源工具的好处不仅仅在于其可用性。通常来说,如此级别的项目均有大量的数据工程师和数据科学家愿意去分享数据集和前期训练模型。比如,你可以使用分类模型训练来自于ImageNet的数据,而非利用scratch建立图形感知。开源的机器学习工具还能够让你进行迁移学习,这意味着可以通过运用其他方面的知识解决机器学习的问题。所以,你可以把一些能力形成一种模型,这些模型可以学会识别汽车或者能够帮助我们完成其他的任务。


根据你所需要处理的问题,预先训练的模型和开放的数据集可能并不会像定制的那样准确,但开源框架不需要你收集数据集,这能够为你节省大量的时间和精力。尚学堂•百战程序员陈老师指出,根据前百度首席数据科学家、斯坦福大学教授Andrew Ng所说,使用开源模型和数据集将会成为继监督学习后驱动商业成功的第二大动因。


在众多活跃但不那么流行的开源工具中,我们将选取5个进行深度探讨,以便帮助你找到适合你的一款工具并且开始你的数据科学探索道路。接下来,我们进入正题。


1.TensorFlow

TensorFlow最初是仅供Google内部使用的,2015年在Apache 2.0 源码开始开源发布。Google的声誉和构建模型时出色的流程图吸引了一大群的TensorFlow拥护者。


TensorFlow对于深度神经网络研究和复杂的数学计算来说都是一个很好的python工具,它甚至能够支持强化学习。TensorFlow的独特之处还在于数据流图-结构,包含节点(数学运算)和边缘(数值数组或张量)。


1.1数据集和模型


TensorFlow的灵活之处体现在基于它进行研究或者重复机器学习任务的可能性。因此,你可以使用名为TensorFlow Core的低级API。你可以通过它控制模型并且使用你自己的数据集对它们进行训练。但也有公共的预训练模型,用于在TensorFlow Core之上构建更高级的API。你可以使用的目前比较流行的模式有MNIST,一个帮助识别图片上的手写数字的传统数据集,或者Medicare Data,一个来自于Google帮助预测医疗服务收费的数据集。

1.2受众及学习曲线


对于第一次探索机器学习的人来说,TensorFlow功能的多样化会显得有些复杂。一些人甚至认为,该库并未加速机器学习的学习曲线,反而让其更加陡峭。TensorFlow是一种级别较低的库,但它需要编写大量的代码以及对数据科学细节的良好理解,这才能更好的使用其进行项目开发。因此,如果你的数据科学团队是以IT为中心的,那么它或许不是你的最佳选择,我们将会讨论更加简单的替换方案。


1.3用例


考虑到TensorFlow的复杂性,其用例主要包含大型公司的解决方案,这些公司拥有机器学习领域的专家。例如,英国在线超市Ocado运用TensorFlow来优先处理他们联系中心的有限,并改善了需求预测。同时,全球保险公司Axa使用该库预测他们的用户将可能涉及的大型汽车事故。


2.Theano:具有扩展性能的成熟库

Theano是一种级别较低的库,它基于Python语言,用于科学计算,并且其通常将定义、优化、求值数学表达式作为深度学习的目标。尽管它具有非常优秀的计算性能,但其复杂性还是让很多用户无法进行。基于这个原因,Theano主要被用于底层的包装器,例如Keras,Lasagne以及Blocks这三种旨在快速原型化和模型测试的高级别框架。


2.1数据集及模型


Theano有公共模型,但是使用率较高的框架都有大量的教程和与训练的数据集可供选择。例如,Keras在其文档中存储了可用的模型以及详细的使用教程。


2.2受众及学习曲线


如果你使用Lasagne或Keras作为顶部的高级包装器,你将有大量的教程和预先训练的数据集。此外,Keras被认为是最容易从早期深度学习探索阶段开始的库。


由于TensorFlow的设计是为了取代Theano,让它失去了大量的粉丝。但是,许多数据科学家发现,有很多优势足以让他们使用过时的版本。


2.3用例


考虑到深度学习研究和发展的工业标准,Theano最初是用来对最为前沿的深度学习算法作为补充。然而,考虑到你也许并不会直接使用Theano,你可以将其众多功能作为使用其他库的基础如:数字及图片识别,对象本地化,甚至与机器人聊天。


关于开源的机器学习框架应当如何选择的问题,在下一节中还会继续讲到关于脚本语言驱动,受众曲线等内容。



以上是关于开源的机器学习框架应当如何选择?的主要内容,如果未能解决你的问题,请参考以下文章

如何选择开源的机器学习框架?

开发者如何挑选最合适的机器学习框架?

深度学习及机器学习框架对比摘要

(Java)开源机器学习框架

机器学习太棒了!8 个开源自动化机器学习框架,轻松搞定机器学习!

八个开源的机器学习框架和库,搞AI项目一定用的上!