技术 | 入门机器学习必须知道的6件事,你可未必都了然于心了

2018-04-28 10:01:43 浏览数 (1)

翻译 | AI科技大本营(rgznai100)

参与 | shawn

过去两年中,我曾经多次折服于机器学习的魅力。但每当我决定尝试新事物时,经常会不得不重新学习某些概念和课程,其实大部分学习就是这样一个过程。在学习机器学习这个复杂领域的过程中,我总结了一些有用的概念、定义、资源和工具。

我将这些内容整理成一个终极总结,希望它可以帮到在机器学习之路上乐在其中(艰难前行)的朋友们。

索引

  • 怎样学习机器学习效果最好
  • 什么是机器学习(ML)?
  • 常见机器学习算法
  • 监督学习的线性回归
  • 深度学习
  • TensorFlow入门
  • 结尾

怎样学习机器学习效果最好?

老实说,没有哪一种学习方法适合所有人。我实践后觉得有用的方法是:重复运用你在项目中学到的知识,直到熟练掌握为止。如果学的东西用不到,那还学它干嘛呢?而且,当你看到学习成果时,脑中会分泌多巴胺,让你产生的成就感。

在学习机器学习的过程中,很容易找不到方向。一方面要学的东西很多,另一方面许多资源教的都是相同的内容,只不过是方法不同,有些方法还会令人感到困惑。机器学习是一个体系庞大且快速发展的学科。理想的情况是,当你对机器学习有了全面且正确的认识后,搞清楚自己想专攻哪个或哪些领域,然后再进行研究。

我会提供足够多的背景知识和信息,对这些零散的知识点进行总结和整理,便于读者阅读和理解。如有疑虑请自行Google……

什么是机器学习(ML)

机器学习是人工智能的一个子领域,通过机器学习计算机可以实现自学,无需特别进行编程。本质上,机器学习的目标是:理解大型输入数据集的模式(patterns),根据生成的模型预测输出。

机器学习的工作流程

什么是机器学习算法?从本质上说,机器学习使用了可以从数据中学习并预测数据的算法。此类算法通常都是从统计学中借鉴而来的,比如简单的回归算法、决策树等。

通过下面这个资源,你可以进一步学习不同的ML算法和各算法的应用场景:机器学习算法要点。

什么是机器学习模型?一般来说,机器学习模型指的是训练ML算法后生成的人造模型。当生成了一个经过正确训练的ML模型后,你就可以用它来预测新的输入;机器学习的目标就是正确地训练ML算法,以生成这样的模型。本文中的“模型”指的都是这个定义下的模型。

但是,机器学习界对“模型”这个术语并没有一个统一的定义。这个术语经常被提及,它既可以指统计学模型,也可以指ML中的数据模型;比如:column、数据类型、数据源或神经网络的参数。因此,在阅读关于ML的技术和数学资料时,一定要注意“模型”具体指的是什么。

常见的ML算法

ML算法有很多,每种算法都有自己的应用场景。我们可以根据学习方式或者相似性对这些算法进行分类。下方图表(在新的标签页打开)根据相似性很好地总结了常见的ML算法。在本文中,我根据学习方式(监督学习和无监督学习)的不同对这些算法进行了分类。

监督学习:监督学习使用实例场景训练机器学习算法。训练数据带有确定的标签,算法会根据这些数据构建出模型。当模型经过充分的训练后,算法就能推测未知实例的标签了。

使用监督学习解决的问题还可以进一步划分为“分类问题”和“回归问题”。

无监督学习:不同于监督学习,无监督学习使用的是不带标签的训练数据。基本上,这意味着算法要自己理解数据(识别出数据的模式)。

无监督学习可以分为“聚类(clustering)问题”和“关联(association)问题”。

半监督学习:半监督学习是监督学习和无监督学习的结合——只有部分输入数据是带有标签的。

监督学习的线性回归

线性回归基本上相当于机器学习的“Hello World”(译者注:Hello World是世界上第一个程序)。它被用于理解输入变量(x)和输出变量(y)之间的关系。当只有一个输入变量(x)时,就是所谓的简单线性回归。你可能在简单的统计学中见到过这种方法。

训练线性回归方程时最常用的方法是“普通最小二乘法(Ordinary Least Squares)”。当使用这种方法训练机器学习模型时,我们通常将其称为“普通最小二乘法线性回归”。

输入变量(x)和输出变量(y)的简单回归模型可以表达为这种形式:

y = B0 B1*x

系数B1 (beta)是回归斜率(regression slope)的预估值,系数B0是回归截矩 (Regression intercept)的预估值,回归截距可以赋予回归直线一个附加的自由度。

阅读本教程,学习构建线性回归模型的四大方法:简单线性回归、普通最小二乘法、梯度下降法和正则化。

你很快就会发现,当前机器学习大都使用的是统计学上的各种曲线拟合方法。当你接触到深度学习后,你才会发现机器学习真正的魅力,至少我是这样认为的。

深度学习

深度学习是机器学习的一个子领域,最近几年看起来前景很不错。它研究的是基于大脑神经元结构和功能的算法。

作者:Andrew Ng,保留所有权利

深度学习最让人激动的一点在于它在特征学习上的表现;算法可以很好地从原始数据中检测出特征。举个典型的例子:深度学习模型可以从汽车图像中识别出车轮。下方图表说明了典型机器学习与深度学习的不同:

在深度学习中,神经网络通常是多层的;网络一层一层地传递数据,简单模型会被结合起来形成更加复杂的模型。随着数据的增加,深度学习模型的性能也会增强,这就是为什么深度学习算法优于其他学习算法的主要原因之一。

如果你想学习权威的深度学习入门教程,你可以在麻省理工学院(MIT)的网站上免费获取《The Deep Learning Book》。

TensorFlow入门

TensorFlow是一个快速数值计算Python库,专门用于机器学习中。它由谷歌开源提供,目的是为了让全世界更多的研究人员和开发者都能获得深度学习能力。

对于初学者而言,官方的教程可能有些难以理解。我推荐这个系列的教程,据该教程的作者称,通过它读者可以循序渐进地入门TensorFlow。

如何使用TensorFlow

安装TensorFlow后,它会提供多个用于训练模型的API。最容易学习的是建立在TensorFlow Core上的高级API(最低级的API往往能实现最多的控制),你应该从这些API开始学起。网上可以找到无数的优质资源,如果本文列出一份完整的TensorFlow教程清单,就会显得不太合理……我先列出官方教程:

  • Getting started with TensorFlow
  • Introduction to TensorFlow
  • Hello World - Machine Learning Recipes #1
  • TensorFlow Tutorial (Sherry Moore, Google Brain)

Tensorflow是最受欢迎的机器学习库,但是除了它之外还有几个很好的选择,比如:Torch(Facebook在用)和Caffe(伯克利人工智能研究实验室开发的深度学习框架)等。

本文遗漏了什么?

有很多机器学习相关内容本文并没有涉及。本文的目的是让读者对机器学习有一个清晰的认识和坚实的基础。机器学习涉及的东西太多了,要想完整地涵盖这些东西是不可能的。

接下来?

当你透彻地理解了基本知识后,你应该弄清自己对机器学习的哪个领域感兴趣,你是想在你的应用程序中应用机器学习?还是想进行机器学习的研究?

你可以根据你的兴趣,学习本文给出的链接或者用谷歌搜索找到你需要的资料,选择某个或某些领域深入研究。

最难的部分是打好机器学习基础。如果你的基础足够好,你接下来要做的就是搞清自己的目标是什么。

结尾……

“世界是一个大数据问题” – Andrew McAfee

机器学习也许是一门很难攻克的学科。但是,如果你读到了这里,你一定会同意机器学习非常值得学习。

“只要挖的深,数据会告诉你一切” – Ronald Coase

在应用ML时一定要谨慎——由于这些算法的内在性质,我们有时会很难判断算法是执行一系列有意义的步骤后得出了正确的结论,还是因为步骤错误得出了“看起来正确”的结论。

0 人点赞