http://blog.itpub.net/31077337/viewspace-2158437/

如今,各种各样的机器学习工具活跃在开源社区,这些工具有助于减轻配置和测试AI相关工作的负载。但是,如何评估并选择适合自己的工具成为了开发者必须认真思考的问题,有些人可能希望在训练新的AI算法时专注于易用性,而其他人可能会优先考虑参数优化和生产部署,不同的框架在不同的领域又具备着不同的优劣势,这让开发者难以抉择。

现在比较流行的机器学习框架有TensorFlow、MXNet、Scikit-learn、Keras和PyTorch,这些通常被数据科学家用于训练各种用例算法,比如预测、图像识别和推荐。因为数据科学家往往更喜欢能够轻松构建算法的机器学习框架,但这只是整个人工智能开发流程中很小的部分,企业通常会花更多时间在一些辅助工作上,比如准备数据、将算法转移到生产环境、配置机器学习参数、排除研究环境和生产环境模型之间的差异。

选择机器学习框架之前需要考虑的三个问题!

根据Forrester Research 的AI方向副总裁兼首席分析师Mike Gualtieri的说法,研发人员在选择机器学习框架时需要思考如下三个问题:

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

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

3、开发过程使用哪些硬件、软件和云服务进行扩展?

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

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

从差异性的角度来说,深度学习框架更加偏重神经网络方向,尤以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。

此外,Spark提供的MLlib也是一个不错的选择,它还提供了SQL、图形处理和流处理等功能。Spark本身易于使用且拥有庞大的用户群体,这确保了技术的稳步提升,并且生命力十分顽强,可以确保在未来的很长一段时间内依旧存活。

思考:开发者如何挑选最合适的机器学习框架?相关推荐

  1. Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略

    Py之scikit-learn:机器学习sklearn库的简介(组件/版本迭代).六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类).安装.使用方法(实际问题中如何选择最合适的机器学 ...

  2. 在实际项目中,如何选择合适的机器学习模型?

    https://blog.csdn.net/gitchat/article/details/78913235 本文来自作者 chen_h 在 GitChat 上分享 「在实际项目中,如何选择合适的机器 ...

  3. 苹果又发布一个机器学习框架,帮自家生态里的开发者降低AI门槛

    李林 编译整理 量子位 出品 | 公众号 QbitAI 苹果又在GitHub上发布了一个新的机器学习框架. 这次的新框架名叫Turi Create,针对不那么精通机器学习的开发者,"简化了第 ...

  4. DNS自动优选工具,可测试延迟,挑选最合适的DNS服务器,拒绝DNS劫持,解决能上qq不能打开网页问题...

    DNS是个比较头疼的事情,至少目前来看,以前没想这么多,纯粹能上网就行了,近些年,DNS服务器层数不穷,各大服务商均推出了自己的DNS服务器: 以前也发布过免费DNS合集,列出了目前各大服务商推出的免 ...

  5. 【Windows】DNS优选(挑选最合适的DNS服务器)

    引言 笔者在之前的文章详解DNS服务.DNS解析.DNS劫持和污染中已经详细介绍过 DNS 了,今天给大家带来一款免费的 DNS 优选工具(仅适用 Windows),帮助大家提高上网速度,拒绝 DNS ...

  6. 如何挑选一个合适的APP做流量引导了,什么样的群体流量比较大

    如何挑选一个合适的APP做流量引导了,什么样的群体流量比较大,最近好多朋友问小编如何利用APP引流量,怎么挑选平台做流量引导效果比较好了,很多人知道QQ微信,微博,自媒体引流量,其实很多手机是上的AP ...

  7. 迭代速度慢?成熟的机器学习流如何设计:微博大规模机器学习框架Weiflow揭秘...

    本文从开发效率(易用性).可扩展性.执行效率三个方面,介绍了微博机器学习框架 Weiflow 在微博的应用和最佳实践. 在机器学习流中,模型训练只是其中耗时最短的一环.如果把机器学习流比作烹饪,那么模 ...

  8. 手把手教你在应用里用上iOS机器学习框架Core ML

    2017-06-10 Cocoa开发者社区 2017年的WWDC上,苹果发布了Core ML这个机器学习框架.现在,开发者可以轻松的使用Core ML把机器学习功能集成到自己的应用里,让应用变得更加智 ...

  9. 机器学习框架_一个框架解决几乎所有机器学习问题

    一个叫 Abhishek Thakur 的数据科学家,在他的 Linkedin 发表了一篇文章 Approaching (Almost) Any Machine Learning Problem,介绍 ...

最新文章

  1. 如何修改dedecms专题目录默认名称special
  2. 铁乐学Python_day12_作业
  3. 让XP远程桌面支持多用户
  4. java yii_构建 Java 应用程序
  5. 【今晚7点半】:现代C++和Mediasoup的WebRTC集群服务实践
  6. SAP 电商云 Spartacus UI 产品明细页面路由路径的自定义配置
  7. linux clone线程,如何在Linux上使用clone()创建真正的线程?
  8. 原生JDBC和工具类的基本实现
  9. 智能手机计步算法c语言实现,【转载】智能手机计步器算法的实现
  10. 使用 Visual Studio 编译 wget 为库文件
  11. STL中的lower_bound和upper_bound的理解
  12. CentOS防止黑客攻击Linux服务器实战演练
  13. TI am3352 gpio 驱动
  14. java求整数最大值和最小值_Java学习之整数类型最大值最小值
  15. 90后程序员的头发危机
  16. c语言字符串把小写转换大写字母,C语言把一个字符串里所有的大写字母换成小写字母,小写字母换成大写字母.其他字符保持...
  17. nofollow能否禁止爬虫爬取
  18. dns 劫持什么意思、dns 劫持原理及几种解决方法
  19. 一堂难忘的计算机课作文,一节电脑课作文600字
  20. web开发学习,HTML标签语义化

热门文章

  1. 开启注册丨EMNLP 2021论文预讲会,邀你一起共赏自然语言处理学术盛宴(日程全公开)...
  2. 智源x清华开源FastMoE,万亿AI模型基石
  3. ArXiv 2020 年 Top10 论文 | 智源社区AI周刊#054
  4. 嘿 Siri,有没有「三天速成深度学习」的课程?
  5. 基于MTCNN的人脸自动对齐技术原理及其Tensorflow实现测试
  6. 技术界与翻译界的交锋:机器翻译离我们还有多远? | 清华AI Time
  7. 数据分析必备:掌握这个R语言基础包1%的功能让你事半功倍!(附代码)
  8. 科技部部长:院士头衔不是学术不端挡箭牌、铁帽子!已有多位院士及候选人、校长、教授等被“拿下”...
  9. 最高70万!深圳大学高薪招150名教师引关注
  10. 手机扫一扫就能“隔空移物”?AR炫酷新玩法,快来解锁新技能吧!