📜  2020 年 10 大机器学习框架

📅  最后修改于: 2021-10-19 08:36:10             🧑  作者: Mango

机器学习是一门教机器如何执行动作的科学,而无需专门为该动作编程。简而言之,机器学习就是教机器如何学习!目前,它是速度最快、最受欢迎的新兴技术之一,在过去四年中,采用机器学习的公司数量增加了250%以上。

2020 年排名前 10 的机器学习框架

因此,有多种机器学习框架可供 ML 开发人员根据其项目需求使用是理所当然的。这些框架允许 ML 开发人员通过在一个地方方便地提供接口、库和有组织的机器学习工具,根据他们的规范轻松创建模型!本文演示了当今常用的 10 种最流行的机器学习框架。那么让我们来看看它们吧!

1. TensorFlow

TensorFlow 是一个免费的端到端开源平台,拥有用于机器学习的各种工具、库和资源。它由 Google Brain 团队开发,最初于 2015 年 11 月 9 日发布。您可以使用 TensorFlow 使用 Keras 等高级 API 轻松构建和训练机器学习模型。它还提供了多个抽象级别,因此您可以为模型选择所需的选项。

TensorFlow 还允许您在任何地方部署机器学习模型,例如云、浏览器或您自己的设备。如果你想要完整的体验,你应该使用 TensorFlow Extended (TFX),如果你想在移动设备上使用 TensorFlow Lite,如果你想在 JavaScript 环境中训练和部署模型,你应该使用 TensorFlow.js。 TensorFlow 可用于Python和 C API,也可用于 C++、 Java、JavaScript、Go、Swift 等,但没有 API 向后兼容性保证。第三方软件包也可用于 MATLAB、C#、Julia、Scala、R、Rust 等。

2. Theano

Theano 是一个开源项目,它是一个Python库,允许您操作和评估数学表达式,尤其是那些处理多维数组的表达式。它由蒙特利尔大学的蒙特利尔学习算法研究所 (MILA) 开发,最初于 2007 年发布。 Theano 还通过在函数中使用 numpy.ndarray 提供与 NumPy 的集成工具,这些函数可以编译为在 CPU 或 GPU 上高效运行架构。

Theano 还提供动态 C 代码生成,可以更快地评估表达式。 Theano 使用最新的 GPU 甚至在许多级别上超过了 C 在 CPU 上的速度。除此之外,它还结合了计算机代数系统 (CAS) 的阴影和优化编译器。这意味着通过最大限度地减少编译开销,可以更快地执行需要重复计算复杂数学表达式的操作。

3. Scikit-learn

Scikit-learn 是一个用于机器学习编码的免费软件库,主要使用Python编程语言。它最初是由 David Cournapeau 作为 Google Summer of Code 项目开发的,最初于 2007 年 6 月发布。Scikit-learn 构建在其他Python库(如 NumPy、SciPy、Matplotlib、Pandas 等)之上,因此它提供了与这些库。

虽然 Scikit-learn 主要是用Python编写的,但它也使用 Cython 编写了一些核心算法以提高性能。您可以使用 Scikit-learn 在 Scikit-learn 上实现各种监督和无监督机器学习模型,如分类、回归、支持向量机、随机森林、最近邻、朴素贝叶斯、决策树、聚类等。

4. 咖啡

CAFFE (Convolutional Architecture for Fast Feature Embedding) 最初由加州大学伯克利视觉与学习中心开发,于 2017 年 4 月 18 日发布。它是一个用 C++ 编写的深度学习框架,具有表达式架构,可以轻松切换在 CPU 和 GPU 之间。 Caffe 也有一个 MATLAB 和Python接口,雅虎也将 Apache Spark 与 Caffe 结合起来创建 CaffeOnSpark。

Caffe 是图像分类和分割的完美框架,因为它支持各种基于 GPU 和 CPU 的库,例如 NVIDIA、cuDNN、Intel MKL 等。而且速度越快越好! Caffe 目前可以使用单个 NVIDIA K40 GPU 在一天内处理超过 6000 万张图像,这使其成为当今最快的选择之一。由于所有这些原因,Caffe 在计算机视觉、语音和多媒体领域的初创公司、学术研究项目,甚至跨国工业应用中都非常受欢迎。

5. Apache Mahout

Apache Mahout 是一个免费的机器学习框架,主要专注于线性代数。它由 Apache 软件基金会创建并于 2009 年 4 月 7 日发布。它允许数据科学家在交互式环境中实现他们的数学算法。早些时候,Apache Mahout 的大多数实现都使用了 Apache Hadoop 平台。

Apache Mahout 中用于聚类、分类和基于批处理的协同过滤的核心算法使用 Apache Hadoop,但现在主要使用 Apache Spark。 Apache Mahout 为数据科学家和数学家提供分布式线性代数和统计引擎。它与交互式 shell 和用于链接应用程序的库一起工作和分发。

6. 阿帕奇火花

Apache Spark 是一个开源的集群计算框架,可以为整个集群提供编程接口。它由加州大学伯克利分校的 AMPLab 开发,最初于 2014 年 5 月 26 日发布。Spark Core 是 Apache Spark 的基础,它以 RDD 抽象为中心。 Spark SQL 使用 DataFrames 为结构化和半结构化数据提供支持。

Apache Spark 的适应性也很强,它可以在独立集群模式或 Hadoop YARN、EC2、Mesos、Kubernetes 等上运行。您还可以从各种来源(如 Hadoop 分布式文件系统)或非关系数据库(如Apache Cassandra、Apache HBase、Apache Hive等。

7. 火炬

Pytorch 是一个基于早期开源 Torch 库的机器学习库,它最初于 2016 年 10 月发布,现在主要使用 Torch 不再积极开发。 PyTorch 提供 TorchScript,它促进了 Eager 模式和图形模式之间的无缝转换。此外,torch.distributed 后端为机器学习和优化性能提供可扩展的分布式训练。

PyTorch 还提供了多个库,例如用于模型可解释性的 Captum、用于图形深度学习的 PyTorch Geometric、用于 scikit-learn 兼容性的 skorch 等。您还可以加入 PyTorchDiscuss 参与各种讨论,以便更深入地了解机器学习。

8. 亚马逊 SageMaker

Amazon SageMaker 是一个完全集成的机器学习开发环境 (IDE),最初于 2017 年 11 月 29 日发布。Amazon Web Services 为计算机视觉、推荐、图像和视频分析、预测、文本分析等应用程序提供此机器学习服务等。您可以选择 Amazon SageMaker 在云上构建、训练和部署机器学习模型。

Amazon SageMaker Autopilot 还具有自动化机器学习功能,可让您自动完成所有这些工作。 Amazon SageMaker 还允许您从头开始创建机器学习算法,因为它连接到 TensorFlow 和 Apache MXNet。您还可以将您的 ML 模型连接到其他 Amazon Web Services,例如用于离线批处理的 AWS Batch、Amazon DynamoDB 数据库等。

9.雅阁.NET

Accord.NET 是一个完全用 C# 编写的机器学习框架。它由 César Roberto de Souza 开发,最初于 2010 年 5 月 20 日发布。Accord.NET 涵盖各种主题,如统计、机器学习、人工神经网络以及各种机器学习算法(如分类、回归、聚类等)以及音频和图像处理库。

Accord.NET 库可用作源代码、可执行安装程序以及 NuGet 包。 (其中 NuGet 是为 Microsoft 开发平台创建的免费开源包管理器)

10.微软认知工具包

Microsoft Cognitive Toolkit 是由 Microsoft Research 开发并于 2016 年 1 月 25 日首次发布的机器学习或特别是深度学习框架。您可以使用以下方法轻松开发流行的深度学习模型,例如前馈 DNN、卷积神经网络和循环神经网络微软认知工具包。该工具包使用多个 GPU 和服务器,提供跨后端的并行化。

您可以根据您的指标、网络和算法的要求,以可自定义的方式使用 Microsoft Cognitive Toolkit。您可以将其用作Python、C++ 或 C# 程序中的库,也可以使用 BrainScript,它是自己的模型描述语言