The choice of open source frameworks for machine learning

Although machine learning is still in the early stage of development, its application into related industries has immeasurable prospects, and its potential value is destined to become the main application technology of enterprises. What this article shares with you is how we should choose a suitable open source framework for different industries. Let’s take a look together, I hope it will be helpful to you.

  Why choose a machine learning framework?

  The benefits of using open source tools go beyond their usability. Generally speaking, projects of this level have a large number of data engineers and data scientists willing to share data sets and pre-trained models. For example, you can use classification models to train data from ImageNet instead of  scratch  to build graphics perception. Open source machine learning tools also allow you to perform transfer learning, which means you can solve machine learning problems by applying knowledge from other areas. So, you can put some capabilities into a model that can learn to recognize cars or can help us with other tasks.

  Depending on the problem you are dealing with, pre-trained models and open datasets may not be as accurate as custom ones, but open source frameworks do not require you to collect datasets, which can save you a lot of time and effort. According to Andrew Ng , a former chief data scientist at Baidu and a professor at Stanford University , using open source models and datasets will be the second biggest driver of commercial success after supervised learning.

Among the many active but not-so-popular open source tools, we'll take a deep dive into 5 to help you find the one that's right for you and start your data science journey. Next, let's get to the point.

  1.TensorFlow

  TensorFlow  was originally used only for Google 's internal use, and was released as open source in 2015 in the Apache 2.0  source code. Google 's reputation and excellent flowcharts when building models have attracted a large group of TensorFlow advocates.

  TensorFlow  is a great python tool for deep neural network research and complex mathematical computations, and it even supports reinforcement learning. TensorFlow is also unique in the dataflow graph - the structure, containing nodes (mathematical operations) and edges (numeric arrays or tensors).

  1.1  Datasets and Models

  The flexibility of TensorFlow  lies in the possibility of doing research or repeating machine learning tasks based on it. Therefore, you can use a low-level API called TensorFlow Core . It lets you control models and train them with your own dataset. But there are also public pretrained models for building higher-level APIs on top of TensorFlow Core . Some of the more popular models you can use are MNIST , a traditional dataset that helps identify handwritten digits on pictures, or Medicare Data , a dataset from Google that helps predict medical service charges.

1.2  Audience and Learning Curve

  For those exploring machine learning for the first time, the variety of TensorFlow capabilities can seem a little complicated. Some even argue that instead of accelerating the learning curve for machine learning, the library makes it steeper. TensorFlow is a low-level library, but it requires a lot of coding and a good understanding of the details of data science to use it for project development. So if your data science team is IT -centric, it may not be the best choice for you, and we'll discuss simpler alternatives.

  1.3  Example

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

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

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

  2.1 数据集及模型

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

  2.2 受众及学习曲线

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

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

  2.3 用例

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

  3.Torch :由Lua脚本语言驱动Facebook支持的框架

  Torch 常被称为初学者最简单的深度学习工具。因为它是简单的脚本语言,Lua开发的。尽管使用这个语言的人比Python要少,它仍被广泛采用——FacebookGoogle以及Twitter

  3.1 数据集及模型

  你可以在其GitHub cheatsheet页面上找到要加载的流行数据集列表。此外,Facebook还发布了一个官方代码,用于深度剩余网络(ResNets)的实现,并使用预先训练的模型来对自己的数据集进行微调。

  3.2 受众及学习曲线

  市场中使用Lua语言的工程师人数远少于Python。然而,Torch语法中反映出Lua更易阅读。活跃的Torch贡献者们喜欢Lua,所以这对于初学者和那些希望扩展其工具集的人来说是一个极棒的选择。

  3.3 用例

  Facebook 使用Torch创建了DeepText,它能够以每分钟为单位将用户分享在网站的信息分类,并且提供更个性化的内容定位。TwitterTorch的支持下,已经能够推荐基于算法时间线的推文(而非按时间逆序)。

  4.Scikit-learn

  Scikit-learn 是一个高层级的框架,用于监督和无监督的机器学习算法。作为Python生态系统中的组成部分,它构建在NumPySciPy库之上,每个库都负责较低层级的数据科学任务。然而,当NumPy处理数值计算时,SciPy库包含更具体的数值流程,例如优化和插值。随后,scikit-learn被用于机器学习,在Python生态系统中,这三种工具与其它工具之间的关系反映了数据科学领域中不同层级:层级越高,能解决的问题就更加具体。

4.1 数据集和模型

  该库已经包含了一些分类以及回归的标准数据集,尽管它们不能尽然代表真实情况。然而,用于衡量疾病发展的糖尿病数据集或者用于模式识别的虹膜职务数据集都能很好的解释机器学习算法是怎样在scikit中起作用的。而且,该库提供了从外部源加载数据集的信息,包括任务的示例生成器,例如多类分类以及分解,同时提供关于流行数据集使用的建议。

  4.2 受众及学习曲线

  尽管作为一个强有力的库,scikit-learn专注于易用性和文档化。它是一个非专家学者和新手工程师都能操作的工具,因为它使用简单并包含大量描述清楚的实例,并能使机器学习算法快速地应用于数据中。根据来自软件商店AWeberYhat的评价,scikit非常适合那些有时间和人力资源限制的项目。

  5.Caffe/Caffe2 :使用简单并且拥有大量预先训练模型

  不同于为研究而生的TheanoTorchCaffe并不适合于文本、声音或者时间序列数据。Caffe是一个专用的机器学习库,用于图像分类。来自Facebook以及最近开源的Caffe2的支持,使得该库成为了拥有248GitHub贡献者的流行工具。

  尽管其因发展缓慢而受到非议,Caffe的继任者Caffe2通过增强灵活性、失重以及支持移动部署消除了原有技术存在的问题。

  5.1 数据集和模型

  Caffe 鼓励来自工业界和其它用户所提供的数据集。该团队培养协作同时链接大量流行的数据集,这些数据集预先由Caffe训练。该框架最大的优势是模型动物园——即包含有大量的由开发者和研究者创建的预训练模型,你可以使用、结合模型或者仅学习和训练你自己的模型。

  5.2 受众和学习曲线

  Caffe 团队声称,你可以跳过学习的部分,使用现有的模型直接开始深度学习的探索。该库的目标人群是那些想要第一时间亲身体验深度学习并且承诺推动社区发展的开发人员。

  5.3 用例

  通过使用最先进的卷积神经网络(CNNs——深度神经网络成功应用于视觉图像分析,甚至是自动驾驶的视觉效果。Caffe帮助Facebook发展它的实时视频过滤工具,目的是在视频中应用著名艺术风格。Pinterest同时使用Caffe扩展了视觉搜索功能,并同意用户发现图片中特定的对象。

 

 

来源:网络

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324849369&siteId=291194637