您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    开发者如何挑选最适宜的机器学习框架?
    时间:2018-08-09 21:13 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    技术沙龙 | 8月25日与多位资深技术大咖讨论小顺序电商实战

    如今,各种各样的机器学习工具生动在开源社区,这些工具有助于减轻配置和测试AI相关任务的负载。但是,如何评价并选择适宜本人的工具成为了开发者必须仔细思索的成绩,有些人能够希望在训练新的AI算法时专注于易用性,而其别人能够会优先思索参数优化和消费部署,不同的框架在不同的范围又具有着不同的优优势,这让开发者难以选择。

    如今比较盛行的机器学习框架有TensorFlow、MXNet、Scikit-learn、Keras和PyTorch,这些通常被数据迷信家用于训练各种用例算法,比如预测、图像辨认和引荐。由于数据迷信家往往更喜欢可以轻松构建算法的机器学习框架,但这只是整团体工智能开发流程中很小的部分,企业通常会花更多时间在一些辅佐任务上,比如预备数据、将算法转移到消费环境、配置机器学习参数、扫除研讨环境和消费环境模型之间的差异。

    选择机器学习框架之前需求思索的三个成绩!

    依据Forrester Research 的AI方向副总裁兼首席剖析师Mike Gualtieri的说法,研发人员在选择机器学习框架时需求思索如下三个成绩:

    该框架用于深度学习还是经典的机器学习?

    在开发AI模型时,首选的编程言语是什么?

    开发进程运用哪些硬件、软件和云效劳停止扩展?

    选择深度学习还是经典的机器学习?

    深度学习是机器学习中的一个分支,在算法层面,经典的机器学习算法未必不能完成深度学习的功用,很多机器学习算法在运用顺序中都可以完美的完成各项深度学习义务,虽然有些框架在某种水平上支持这两种算法,但机器学习框架往往表现更好。

    从差异性的角度来说,深度学习框架愈加侧重神经网络方向,尤以TensorFlow最为知名,其他在深度学习中表现良好的机器学习框架还有MXNet和Caffe,这些框架支持编写用于图像标记和初级自然言语处置的算法以及其他运用顺序。

    深度学习和机器学习框架最大的不同在于所处置的数据结构有所差异,深度学习框架可以被训练用于处置结构化数据,但是机器学习框架不适用于非结构化数据。在选择框架前,你一定要了解企业的数据类型以及要构建的运用顺序类型。

    经典的机器学习算法适用于各种优化和统计剖析,最受欢迎的机器学习框架是Scikit-learn。Scikit-learn适宜在Python中编写,但Comprehensive R Archive Network(也称为CRAN)能够更适宜在R中编写运用顺序。其他盛行的软件包有Apache Spark MLlib和H2O.ai等,H2O.ai有一套开源机器学习算法并且运转良好。

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

    开发AI模型,首选的编程言语是什么?

    就编程言语而言,Python和R是机器学习开发者普遍的选择。当然,你可以运用其他言语,比如C、Java和Scala。Gualtieri表示,目前的大少数机器学习运用都是用Python编写的,由于R言语是由统计学家设计的,并不是最优雅的编程言语。相比较而言,Python是一种愈加现代化的编程言语,并且Caffe和TensorFlow也是开发机器学习模型的Python编码器的主流选择。

    测试环境与实践消费环境的差异

    在开发的早期阶段,数据迷信家能够会针对不同的数据集选择模型或算法,但是,假设你决议抵消费环境中的一切数据集运转同一个模型,那么你可以查看一些支持散布式体系结构的框架,比如Apache Spark的MLlib或H20,由于可扩展性是一个很实践且很重要的成绩。

    在深度学习中有很多相似的场景,比如,AI开发人员想要对图像停止标注,他们可以下载TensorFlow并在桌面运转以训练算法和实验不同的模型,一旦他们整理出了一个可行的模型,往往会刻不容缓得丢到整个消费环境,但这个模型不一定适宜整个消费开发环境,由于测试环境与其有着很大差异,并且也需求思索硬件条件和云效劳支持。

    在AI算法的训练阶段,可扩展性是指可以剖析的数据量以及数据剖析速度,运用散布式算法和散布式处置可以清楚提高功用。在实践部署阶段,可扩展性更多得与可立刻命中模型的并发用户或运用顺序的数量有关。很多AI项目出现成绩的缘由在于训练环境和消费环境千差万别,数据迷信家却只运用一套工具。

    参数优化

    选择机器学习框架的另一个关键要素是参数优化,每种算法都采用不同的办法来剖析训练数据并将其学习的内容运用于新的示例。每个参数都可以经过旋钮和刻度盘的不同组合来调理,经过调整不同变量的权重和异常值以罗列一些能够的组合。在选择机器学习框架时,重要的是思索这些参数是希望自动调整还是手动调整,需求调整的旋钮和表盘越多,找到适宜的组合就越困难。

    机器学习框架能否是处置特定成绩的最佳选择,这是企业要思索的最后一个成绩,我们可以将机器学习开发工具分为三类:notebook-based, multi-modal和automated。

    notebook-based - 运用基于Python的Jupyter等工具,提供对机器学习模型定制的一切方面的复杂控制,机器学习框架运用此概念来增加自定义的繁重任务。

    multi-modal(多形式)本质上是一种将数据迷信与公用工具(如Salesforce Einstein)相结合的低质量代码编写方式,使开发人员可以将中心AI模型扩展到特定用例。

    Automated(自动化办法)运用工具自动为给定的输入数据集尝试各种能够的算法,直到确定特定用例的最佳备选者。这些工具包括Google AutoML,DataRobot和H20.ai等产品。

    自动化确实很有吸引力,由于数据迷信家的技术水平未必很高,尤其是如今社会全体人才稀缺的状况下,并且经过自动化工具的支持,统计学家有时也可以完成一些数据迷信家的任务,当然,不要等候这些自动化工具完全替代人工。

    开源机器学习框架提供了丰厚的社区支持

    Teradata营销副总裁Chad Meley表示,虽然供应商正在努力开发机器学习工具和框架,但开源框架将继续在该范围占据主导位置,由于这些框架集合了世界各地相关范围专家的智慧。

    很多比较大的云供应商也在积极提供本人的框架,比如谷歌、亚马逊等,依据企业IT战略展现,CIO能够更希望与特定的云供应商保持分歧,或许强调跨多个云和本地部署的可移植性。目前,谷歌支持的TensorFlow框架在市场中拥有最高份额,紧随其后的是Caffe、Keras、MXNet、CNTK和PyTorch。

    (责任编辑:admin)