想做AI,怎么选开发工具?这份上手指南送给你

人工智能
除了熟悉人工智能技术之外,从业人员还必须正确选择技术平台。本文重点介绍了人工智能在深度学习方面一些重要的可选项,包括每个工具包的主要优缺点以及行业中各自的支持者。

[[207302]]

现代人工智能给企业带来了很多好处,同时也大大提升了机器的认知能力。作为计算机科学领域里的一项重要技术,人工智能正以***的速度迅速发展。一项研究成果从学术论文转化为实际的产品仅需几个月的时间。然而,过快的发展速度对于该领域中的新手来说则是一场灾难。除了熟悉人工智能技术之外,从业人员还必须正确选择技术平台。本文重点介绍了人工智能在深度学习方面一些重要的可选项,包括每个工具包的主要优缺点以及行业中各自的支持者。

机器学习和深度学习

当代人工智能技术可分为两类:机器学习和深度学习。目前绝大多数使用的都是前一种,即机器学习。这其中包含了一些数据科学家最常用的算法:线性模型、k均值聚类、决策树等等。虽然我们现在将它们作为人工智能的一部分,但这是数据科学家长期研究的成果。

在过去两年里,人工智能的第二种技术受到了更多的关注和炒作:它是机器学习技术的一种专业化表现,即神经网络,也被称为深度学习。深度学习正吸引着人们对人工智能或“认知”技术的关注,包括图像识别、语音识别、自动玩游戏、自动驾驶车辆以及其他自主车辆。通常,这些应用需要大量的数据来馈送和训练复杂的神经网络。

机器学习的可选项

处理机器学习的工具包在每个常用的统计数据包中都有。常见的商业产品有SAS、SPSS和MATLAB。常用的开源工具有R和Python。大数据平台Apache Spark和Hadoop也有自己的并行机器学习工具(Spark的MLLIB和Apache Mahout)。目前,由于存在类似于scikit-learn和Anaconda这样的项目,Python正在成为行业数据科学***的编程语言。

深度学习的可选项

深度学习工具包的发展非常迅速。学术界和数据巨头,如Google、百度、Facebook,已经在深度学习投入了很多年,他们拥有数套强大的可选方案。因此,新手们面对的选择有很多!每个选择都有着各自不同的优势和生态系统。

  • TensorFlow:来自谷歌,用户最多。它是由早期的框架构建而成的“第二代”深度学习库。TensorFlow用的是Python语言,它还包含了TensorBoard,这个工具在调试和检查网络方面有很大的优势。 XLA编译工具提供了模型的***执行,而TensorFlow Mobile则为低功耗的移动设备提供了机器学习支持。
  • MXNet:由Amazon Web Services牵头开发,使用用户很多,支持许多种编程语言。 MXNet已被纳入Apache Incubator,正式进入成为***Apache项目的快车道。
  • Deeplearning4J:商业支持的深度学习框架,在Java环境中性能强大,对企业应用具有一定的吸引力。
  • Torch:一个功能强大的框架,在Facebook和Twitter等公司中使用,但只能用Lua编写,对其他编程语言的支持较少。
  • PyTorch:派生自Torch,PyTorch将Torch带入了热门的Python数据科学生态系统之中。 发布于2017年,它的支持者中包括Facebook和Twitter。 PyTorch支持动态计算图,这在TensorFlow中目前暂不不支持。
  • CTNK:Microsoft在深度学习领域的产品,拥有Python和C++ API(Java API尚在实验中)。
  • Caffe:重点在计算机视觉应用领域。核心编程语言是C++,有Python接口。
  • Theano:用Python编写的最古老的深度学习框架之一。在学术界的使用很广泛,但不适合生产使用。(译者注,目前已停止更新)

这其中很多的深度学习框架的级别都比较低,开发人员使用起来并不方便,而高级库对用户更加友好,更受开发者的青睐。其中最重要的库是Keras,它是用Python开发的,可创建能在TensorFlow、Theano、CNTK或Deeplearning4j上运行的深度学习应用程序。

苹果公司在机器学习方面的贡献也值得一提。与上述工具包不同,苹果公司仅为模型提供了执行框架。开发人员必须使用Caffe、Keras或scikit-learn等工具来训练他们的模型,并进行转换,这样才能让应用程序通过苹果公司的CoreML来使用它们。

从哪里着手?

 

TensorFlow Github Star数量, 2017年2月。

如果你没有明确的理由要选择哪种方案,那么根据绝大多数开发人员的经验,以及谷歌在人工智能领域中的声誉以及Python生态系统的重要性,Keras和TensorFlow组合当仁不让地成为***大的默认选择。 TensorFlow快速增长的人气值使其可以在短期内与大量的数据工具相兼容。例如,你可以参阅Databricks最近有关在Spark中TensorFlow和Keras对深度学习支持的公告。

同时,亚马逊网络服务公司对MXNet的强大支持,以及MXNet自身的增长速度和成为Apache项目,使其成为重要的备选方案之一。而微软对Azure的强大支持使得CNTK成为该公司重要的成果。

深度学习是一个快速发展的领域,每个云提供商都将机器学习视为战略目标。幸运的是,他们都选择了开放源代码。随着深度学习的计算资源越来越集中在云和GPU上,开源的代码对于想要研究深度学习的人来说是一个很好的消息。 

责任编辑:庞桂玉 来源: THU数据派
相关推荐

2020-09-02 11:30:53

Android UI工具包开源

2020-09-02 17:04:59

谷歌Android开发者

2021-02-24 08:32:45

Web Compone前端Web 应用

2022-03-03 22:00:19

Hooks函数组件React

2021-01-26 08:37:18

MobXVueReact

2019-02-11 11:16:13

2014-06-24 09:41:56

Android Stu教程

2024-01-29 00:36:50

Backstage设施工具

2020-04-23 09:33:32

Android 协程开发

2021-03-27 00:05:35

前端开发工具

2016-06-20 10:20:22

Docker云计算

2014-01-22 10:00:10

Android SDKAndroid开发

2021-11-26 09:40:37

EclipseIDEA开发

2013-12-26 15:40:33

Android SDK项目

2013-12-04 14:44:41

Android SDK用户交互

2013-12-04 13:27:56

Android SDK项目

2014-06-06 14:25:03

iOS 8SwiftWWDC2014

2013-12-26 15:14:38

Android SDK运行调试

2012-08-01 17:39:17

2010-07-23 15:51:27

Perl开发工具
点赞
收藏

51CTO技术栈公众号