应用机器学习:传道解惑指南

在过去的两年时间里,我屡次迷恋于学习机器学习。 正如你学习大多数的东西同样,每当我决定尝试新事物的时候,我不得不从新学习某些概念和课程。 因此,我编辑了一份包括概念、定义、资源以及工具的知识合集,这对于在这个复杂领域从事工做的我来讲很是有用。 但愿这些东西对于即将进入机器学习这个精彩(有时是使人沮丧)世界的朋友来讲也会起到必定的帮助做用算法

1.jpg

如何最有效率地学习机器学习

老实说,每一个人都有适合本身的学习方法。对我我的而言,最好的方法就是反复把在项目中学到的东西应用到其余地方,直到把它完全弄明白弄熟练为止。若是你不打算使用它的话,为何要学习它呢?并且多巴胺会让你在看到学习成果的时候进一步促进你学习的动力。编程

在刚开始学习机器学习的时候很容易不知所措。有不少东西要学,即便是对于同一个知识点也有太多的资源可供挑选来学习,并且这些资源可能彻底不一样,甚至很混乱。学习这种内容繁多而且发展迅速的东西很是困难。在理想状况下,一旦你感受本身在机器学习方面入了门,就会清楚本身到底想要研究哪些具体的领域。markdown

3.png

我将尝试用足够的篇幅来介绍这些松散的知识,使之适合于任何人阅读。若有疑问,请自行谷歌……网络

什么是机器学习(Machine Learning, ML)?

它是人工智能的一个子领域,它让计算机本身学习,而不须要被明确地编程。机器学习基本的目的是理解大量输入数据中的模式,而后根据其生成的模型来预测输出。app

4.jpg
机器学习的工做流程框架

什么是机器学习算法?从本质上讲,机器学习采用了能够从数据中学习和预测数据的算法。这些算法一般来自于统计学,从简单的回归算法到决策树等等。less

想要了解不一样机器学习算法及其使用方法方面的内容,能够阅读这篇文章:机器学习算法要点机器学习

什么是机器学习模型?通常来讲,它是指在训练机器学习算法后建立的模型构件。一旦有了一个通过训练的机器学习模型,你就能够用它来根据新的输入进行预测。机器学习的目的是正确训练机器学习算法来建立这样的模型。当我在这篇文章中提到“模型”时,我通常就是指的这个定义。ide

可是,机器学习社区中的“模型”这个术语并无一个统一的定义。这个术语被大量说起,而且能够表明机器学习中使用的统计模型或数据模型中的任何内容。好比列、数据类型和数据源,甚至是神经网络规范。当你在技术或数学读物上学习有关机器学习的文章的时候,须要注意这一点。工具

流行的机器学习算法

机器学习算法有不少,每一个人都有一套适合本身的案例。你能够根据学习的种类或类似性对机器学习算法进行分类。下图是经过类似性对目前流行的算法进行的归纳。在本文中,我根据学习种类的不一样将算法分为:监督学习无监督学习

5.png

监督学习

这是一种使用样例来进行训练的机器学习算法。训练数据被标上了已知的标签,该算法将基于这些数据来创建模型。一旦模型被训练出来,该算法将可以肯定从未见过的实例的标签。

用监督学习解决的问题能够进一步分解为分类回归问题。

无监督学习

与监督学习相反,无监督学习使用未标记的训练数据进行学习。这意味着该算法可以本身肯定如何使用这些数据(识别数据的模式)。

无监督学习能够分为聚类关联问题。

半监督学习

这是上述两种方法的混合体,即只有部分输入数据作了标记。

监督学习的线性回归

这实际上是机器学习的“Hello World”教程。线性回归可用于理解输入(x)和输出(y)变量之间的关系。当只有一个输入变量(x)时,称为简单线性回归。你可能已经在简单统计中看到过这种技术的应用。

训练线性回归方程最经常使用的技术是普通最小二乘法。因此,当咱们用这个过程训练机器学习中的模型时,一般被称为普通最小二乘线性回归。

输入(x)和输出(y)的简单回归模型能够被建模为:

y = B0 + B1*x

系数B1(β)是回归斜率的估计,附加系数B0是回归截距的估计,它给出了直线的附加自由度。

请阅读本教程来学习用于线性回归模型的四种技术:简单线性回归、普通最小二乘法、梯度降低和正则化。

你很快就会注意到,不少的机器学习算法只是使用了基本统计学的不一样的曲线拟合方法。机器学习(至少在我看来)只有在深度学习领域中才会让人兴奋。

深度学习

这是机器学习的一个子领域,近年来表现出了很大的潜力。它涉及到大脑中神经元结构和功能的算法。

6.png
Andrew Ng版权全部,保留全部权利。

深度学习中最使人激动的特性之一是它在特征学习上的表现。该算法在从原始数据中检测特征方面表现地特别好。有一个很好的例子,就是经过深度学习技术来识别汽车图片中的车轮。下图说明了典型机器学习与深度学习之间的区别:

7.png

深度学习一般由多个层组成。它们一般将更简单的模型组合在一块儿,经过将数据从一层传递到另外一层来构建更复杂的模型。这是深度学习随着数据量的增长而优于其余学习算法的主要缘由之一。

想进一步了解深度学习方面的知识,请阅读The Deep Learning Book,你能够在麻省理工学院的网站上免费获取。

TensorFlow简介

TensorFlow是专门为机器学习而设计的快速数值计算Python库。它由谷歌开源,旨在让世界各地更多的研究人员和开发人员掌握深度学习。

它的官方教程可能对初学者来讲有些杂乱,我建议你们从本系列开始,首先学习Tensflow的相关介绍

如何使用TensorFlow

TensorFlow安装好以后,你就能够用它提供的多个API来训练机器学习模型了。创建在TensorFlow Core(最好控制最底层的API)之上的更高级别的API是最容易学习的,你应该从这里开始学习。

本文不可能包含完整的TensorFlow教程,网上有数不清的学习资源,首先从官方资源开始吧:

虽然TensorFlow是最受欢迎的机器学习库,不过也有其余几个很棒的选择,如Torch(Facebook使用)、Caffe(出自Berkeley AI研究所的深度学习框架)等等。

这篇文章缺乏什么

不少。本文的目标是为你提供有关机器学习的基础知识,以免你晕头转向。可是这个话题包含的内容实在太多了,没法所有写下来。

接下来作什么?

一旦对基础知识有了必定的了解,你应该知道本身对机器学习的哪些方面比较感兴趣,你想在应用程序中使用机器学习,仍是想研究机器学习。

你能够根据本身的兴趣来阅读本文中嵌入的连接,或经过谷歌来搜索挖掘一些你须要的内容,从而更深刻地研究某个领域。

在学习机器学习的过程当中,最困难的部分就是打下一个扎实的基础。紧接着,就是弄清楚你本身想要作什么。

结语

“整个世界就是一个大数据问题” - Andrew McAfee

掌握机器学习就像是驯服一头野兽。可是,若是你已经吃透它,那么它就是你身边一个很是有价值的资源。

“拷问数据,它会屈打成招。” - 罗纳德·科斯

参考文献

文章原标题《Applied Machine Learning: The Less Confusing Guide》,做者:Udara Jay,译者:夏天,审校:主题曲。

文章为简译,更为详细的内容,请查看原文