深度学习入门必备的13张小抄(附下载)

机器学习领域的知识太多了,学习的工具包,命令、操作和公式都是数不胜数,让“新军”们理解记住太难了!所以,学生时代的一件利器派上用场了,那就是人见人爱的“小抄”,这可是个好东西。

比如说下面这些深度学习小抄,由GitHub用户kailashahirwar从各处搜集而来:

TensorFlow

Keras

一图看懂各种神经网络

NumPy

SciPy

Pandas

Scikit-learn

Matplotlib

数据可视化工具ggplot2

PySpark

全部小抄见GitHub:

https://github.com/kailashahirwar/cheatsheets-ai

在这篇文章中,你将会见识到各种机器学习工具。了解它们为什么重要,以及可供选择的工具类型。

为什么要使用工具

机器学习工具使得应用机器学习更快,更简单,更有趣。

  • 更快:好工具可以自动化应用机器学习过程中的每一步。这意味着,从提出创意到得到结果的时间大大缩短。如果你从头开始自己实现每一个功能,这花的时间要比选择现有工具要长的多。
  • 更简单:你可以花时间来选择合适的工具,而不是研究、实现技术来完成任务。如果你自己实现,你必须对每一个过程都十分精通。这需要研究,资深经验来理解技术,以及高水平的工程技能来确保有效执行。
  • 有趣:对于初学者得到良好结果的门槛低。你可以花费额外的时间来得到更好的结果,或者进行更多的项目实践。如果不使用这些工具,你将会花费大部分时间来构建你自己的工具,而没将时间集中在获取结果上。

有目的地选择工具

你不希望为学习、使用机器学习工具而学习、使用机器学习工具。必须有目的地使用工具。

机器学习工具可以让你在机器学习项目中交付结果。当你试图决定是否要学习新工具或是新功能的时候,问自己这么一个问题:

这些工具如何帮助我在机器学习项目中交付结果?

机器学习工具不仅仅是机器学习算法的实现。它们可能是,但在你解决机器学习问题的过程中,它们也可以为每一个过程提供帮助。

好工具 VS 强大工具

你想在你正在解决的问题上使用最好的工具。那么如何区分好的机器学习工具与强大机器学习工具之间的区别呢?

  • 直观的界面:强大的机器学习工具在应用机器学习过程的子任务上提供直观的界面。在任务的界面中有良好的映射以及适应性。
  • 最佳实践:强大的机器学习工具体现了过程,配置和实现的最佳实践。比如自动配置机器学习算法,工具内部结构良好的处理方式。

值得信赖的资源:强大的机器学习工具维护良好,时常保持更新,并具有社区人群。寻找关于一个工具相关的活动,是此工具被使用的标志。

何时使用机器学习工具

机器学习工具能够节省你的时间,并在项目中持续为你提供良好的结果。以下是使用机器学习工具能够为你带来的一些好处:

  • 入门:当你刚刚入门时,机器学习工具可以引导你完成整个项目并快速得到良好的结果,而且会给予你继续下一个项目的信心。
  • 日常:如果你想快速得到一个问题的良好结果,机器学习工具可以让你集中关注特定的问题,而不是得到答案需要的技术深度。
  • 项目工作:当你正在从事大型工程时,机器学习工具可以帮助你制定原型解决方案,进行需求分析,并且给出你可能要实现的系统的模板。

平台 VS 库

机器学习工具有许多。谷歌搜索到的结果就足以让你头晕目眩了。

一种有用的机器学习工具分类方式是将它们分成平台和库。平台为你运行一个项目所需的全部功能,而库只为你完成一个项目提供部分功能。

这么区分并不完美,因为有些机器学习平台同时也是库,有些库也提供了图形化用户界面。然而,这提供了很好的比较方式,从特定目的工具中区分具体使用情形。

机器学习平台

机器学习平台提供了从头到尾完成一个机器学习项目的功能。也就是,数据分析,数据准备,建模和算法评估及选择。

机器学习平台的特征有:

  • 它们提供了机器学习项目中每一个过程所需要的功能。
  • 界面可以是图形化的,也可以是命令行,平台将所有的或部分界面结合起来。
  • 它们提供功能的松耦合,你可以在特定项目中将各个部件结合起来。
  • 它们是为通用目的用途和探索而量身定制的,而不是为了速度,可扩展性和准确性。

以下是一些机器学习平台:

  • WEKA Machine Learning Workbench。
  • R Platform。
  • Python SciPy的子集(比如 Pandas和 scikit-learn)。

机器学习库

机器学习库提供了完成一个机器学习项目部分模块的功能。比如,一个库可能提供了一系列建模算法。

机器学习库的特征有:

  • 它们为一个机器学习项目中一个或多个步骤提供了特定的功能。
  • 它们的接口通常是需要编程的应用程序编程接口。
  • 它们为特定用例,问题类型或环境量身定制。

以下是一些机器学习库:

  • python中的 scikit-learn。
  • Java中的 JSAT。
  • .Net中的 Accord Framework。

机器学习工具界面

另一种区分机器学习工具的方式是根据它们提供的界面。

这可能令人迷惑,因为一些工具提供了多个界面。然而,这可能为你挑选机器学习工具提供了起点,甚至可能为你区分这些工具提供了帮助。

下面是一些常见的界面。

图形化用户界面

机器学习工具提供了图形用户界面,包括窗口,得分,点击,专注于可视化。图形化用户界面的好处有:

  • 允许掌握较少技术的用户完成机器学习工作。
  • 专注于处理过程,以及如何最大限度地利用机器学习技术。
  • 用户可以使用界面进行结构化处理。
  • 更注重于信息的图形化展示,比如可视化。

以下是一些有图形化界面的机器学习工具:

  • KNIME。
  • RapidMiner。
  • Orange。

命令行界面

机器学习工具提供了命令行界面,包括命令行程序,命令行参数,注重于输入和输出。命令行用户界面的好处有:

  • 允许不是程序员的技术用户完成机器学习项目。
  • 提供了许多专门的程序或机器学习项目特定子任务的编程模型。
  • 根据需要的输入和将会得到的输出分解机器学习任务。
  • 通过记录或脚本命令和命令行参数来促进有复验性的结果。

以下是一些提供命令行界面的机器学习工具:

  • Waffles。
  • WEKA Machine Learning Workbench。

如果你喜欢在命令行下工作,看看这本书《 Data Science at the Command Line: Facing the Future with Time-Tested Tools 》,可以让你了解如何在命令行下解决机器学习问题。

应用程序编程接口

机器学习工具提供了应用程序编程接口,可以让你自由决定在你的程序中使用什么元素以及如何使用。应用程序编程接口的好处有:

  • 你可以将机器学习算法合并到自己的软件项目当中。
  • 你可以创建自己的机器学习工具。
  • 你可以在机器学习项目中灵活使用自己的处理流程和自动操作。
  • 你可以将自己的方法与库提供的方法以及扩展提供的方法结合。

以下是一些带有应用程序编程接口的机器学习工具:

  • 面向Python的 Pylearn 2。
  • 面向Java的 Deeplearning4j。
  • 面向C的 LIBSVM。 参考文章:
  • 25个Java机器学习工具&库
  • 最好的Python机器学习库

本地机器学习工具 VS 远程机器学习工具

比较机器学习工具最后一个方法是这个工具是本地工具还是远程工具。

本地工具是你下载并安装的,在本地使用,而远程工具运行在第三方服务器上。

这样区分也许有些模糊,因为有些工具可以以本地或远程的方式运行。另外,如果你是优秀的工程师,你可以在自己的服务器上配置几乎所有的工具作为托管解决方案。

然后,这么区分可能很有用,能够帮助你理解和选择机器学习工具。

本地工具

本地工具是下载、安装并运行在本地环境的。

  • 专为内存中数据和算法设计。
  • 由运行配置和参数控制。
  • 集成到你自己的系统,以满足你的需求。

以下是一些本地工具:

  • 面向C++的 Shogun Library
  • 面向Go的 GoLearn

远程工具

远程工具托管在服务器上,并且可以从本地环境调用。这些工具通常被称为将机器学习作为服务(MLaaS)。

  • 专为运行更大规模数据设计。
  • 在多系统,多核心和共享内存上运行。
  • 为适应大规模系统,所以服务提供的算法更少。
  • 更简单的接口,在运行配置和算法参数上提供较少的控制。
  • 通过远程过程调用集成到你本地环境中。

以下是一些远程工具:

  • Google Prediction API。
  • AWS Machine Learning。
  • Microsoft Azure Machine Learning。

参考文章:

  • 七种基于云计算的机器学习服务
  • 机器学习API Top 10:AT&T Speech、IBM Watson和Google Prediction

也有一些工具可以让你建立自己的远程解决方案,并作为服务集成到你的本地环境中。比如:

  • 面向Hadoop的 Apache Mahout。
  • 面Spark的 MLlib。
  • PredictionIO。

总结

在这篇文章中,你了解到了为什么工具在应用机器学习中很重要。你了解到,没有良好的机器学习工具,你就必须从无到有实现所有的技术,而这需要专业技术知识和高效工程实践。

你学习到了三种结构化看待机器学习工具的方式:

  • 平台 VS 库
  • 图形化用户界面 VS 命令行界面 VS 应用程序编程接口
  • 本地工具 VS 远程工具

原文发布于微信公众号 - 计算机视觉战队(ComputerVisionGzq)

原文发表时间:2017-06-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

开发 | 微软 Ignite2017 大会探秘,Azure机器学习三大工具正式发布

AI科技评论消息,日前,微软Ignite2017大会正在美国佛罗里达州奥兰多举行,除了正式推出量子计算编程语言,对Azure云平台进行功能更新等,基于目前各大对...

389140
来自专栏ATYUN订阅号

AMD的ROCm GPU现已支持TensorFlow

AMD宣布推出支持TensorFlow v1.8的ROCm GPU,其中包括Radeon Instinct MI25。这是AMD加速深度学习的一项重要里程碑。

1.5K20
来自专栏AI研习社

给数据科学家的 Python 3 指导;简单 chatbot 代码实现| Github 项目推荐

Minigo —— 用纯 Python 实现的神经网络围棋 AI ? Github:https://github.com/tensorflow/minigo...

37680
来自专栏AI科技大本营的专栏

经验 | Pytorch还是Tensorflow?英伟达工程师帮你总结了

翻译 | AI科技大本营(rgznai100) 参与 | reason_W 本文作者Dominic Monn,是NVIDIA机器学习工程师。在本文中,作者讲述了...

44850
来自专栏CreateAMind

Deep Learning Book 中文第十二章 大规模应用

大规模深度学习:GPU、分布式、压缩、动态结构等;视觉预处理等;自然语言,推荐系统介绍。

9010
来自专栏ATYUN订阅号

【行业】Mozilla发布第一款开源的跨平台混合现实浏览器Firefox Reality

Mozilla在周二的一篇博文中宣布,它正在开发一种专门用于增强现实(AR)和虚拟现实(VR)应用程序的新浏览器。这款名为Firefox Reality的浏览器...

12140
来自专栏机器之心

资源 | TensorFlow推出新工具Seedbank:即刻使用的预训练模型库

发现并开始新的机器学习项目有点艰难。也许你有一个关于项目的模糊想法,正在寻找从何处入手。或者你正在寻找灵感,看看有哪些可能。

14210
来自专栏人工智能头条

Pytorch还是Tensorflow?英伟达工程师帮你总结了

8220
来自专栏SDNLAB

公有云使用上升,私有云使用下降

根据Interop ITX和InformationWeek的调查报告,公有云的使用率从2012年的30%几乎翻了一番,达到了57%,而私有云的使用率已经从52%...

31670
来自专栏AI研习社

微软 Ignite2017 大会探秘,Azure 机器学习三大工具正式发布

日前,微软 Ignite2017 大会正在美国佛罗里达州奥兰多举行,除了正式推出量子计算编程语言,对 Azure 云平台进行功能更新等,基于目前各大对手企业纷纷...

36270

扫码关注云+社区

领取腾讯云代金券