机器学习系统可以根据训练期间监督的数量和类型进行分类。有四大类:监督学习( Supervised Learning)、无监督学习(Unsupervised Learning)、半监督学习(Semisupervised Learning)和强化学习(Reinforcement Learning)。

Supervised learning:监督学习

在监督学习中,你为算法提供带有答案(也被称为label)的训练数据

图1-5 用于监督学习的有标签的训练集(例如,垃圾邮件分类)

一个典型的监督学习任务是分类(classification)。垃圾邮件过滤器就是一个很好的例子:它使用很多带有class(即:类,这里有量类,分别为垃圾邮件和ham)的样本邮件来训练,使得它学会如何分类新邮件。

另一个典型任务是预测目标数值,例如给出一些特征[features](里程数、车龄、品牌等等),称作预测因子[predictors],来预测一辆汽车的价格。这类任务称作回归[regression](图1-6)。要训练这个系统,你需要给出大量汽车样本,每一个样本需要包括它们的预测因子[predictors]和标签[label](即,它们的价格)。

在机器学习中,属性[attribute]是一个数据类型(例如,“里程”),而一个特征[features]根据上下文有不同的含义,但通常是指一个属性[attribute]加上该属性的值(例如,“里程 = 15,000”)。不过,许多人可以互换使用“属性[attribute]”和“特征[features]”。

图1-6 回归

注意,一些回归算法也可以用于分类,反之亦然。例如,逻辑回归[Logistic Regression ]通常用于分类,因为它可以输出一个值,该值对应于属于某个给定类[class]的概率。(例如,有20%的机会成为垃圾邮件)。

下面是一些最重要的监督学习算法。

K近邻算法

  • K近邻算法
  • 线性回归
  • 逻辑回归
  • 支持向量机(SVM)、
  • 决策树和随机森林
  • 神经网络

Unsupervised learning:无监督学习

在无监督学习中,不难猜到,训练数据是不带有标签的(见图1.7)。这个系统试图在没有老师的情况下学习。

图1 - 7 无监督学习的无标签的训练集

以下是一些最重要的非监督学习算法(我们将在第8章中讨论降维):

  • 聚类

    • k-均值

    • 层序聚类分析(HCA)

    • 期望最大化

  • 可视化和降维

    • 主成分分析(PCA)

    • 核主成分分析

    • 局部线性嵌入(Locally-Linear Embedding,LLE)

    • t-分布邻域嵌入算法(t-distributed Stochastic Neighbor Embedding,t-SNE)

  • 关联性规则学习

    • Apriori算法

    • Eclat算法

比如说,你有很多关于你博客访问者的数据。您可能想要运行一个聚类算法来检测相似访客的组(图1-8)。你不会告诉算法某个访客属于哪一类:它会自己找出关系,无需帮助。例如,算法可能注意到40%的访客是喜欢漫画书的男性,通常是晚上访问,20%是科幻爱好者,他们是在周末访问等等。如果你使用层序聚类分析(HCA),它可能还会细分每个分组为更小的组。这可以帮助你为每个分组定位博文。

图1-8 聚类

可视化算法也是无监督学习算法的一个很好的例子:你给它们提供了大量复杂且无标签的训练数据,算法输出了可以很容易绘制的数据的2D或3D表示(图1-9)。这些算法试图保持尽可能多的结构(例如,尝试在输入空间中保持独立的聚类,避免在可视化的图像中重叠),这样您就可以理解数据是如何组织的,也许还能发现隐藏的规律。

图1.9 一个强调语义聚类的t-SNE可视化例子

与此有关联的任务是降维,目标是在不丢失太多信息的情况下简化数据。一种方法是将几个相关的特性合并为一个。例如,一辆汽车的行驶里程可能与它的年龄非常相关,因此降维算法将它们合并成一个代表汽车磨损的特征。这被称为特征提取[feature extraction]。

在将训练数据用于另一种机器学习算法(如监督学习算法)之前,尝试使用降维算法来减少训练数据的维数通常是一个好主意。它将运行得更快,数据将占用更少的磁盘和内存空间,在某些情况下,它还可能执行得更好。

另一个重要的非监督任务是异常检测(anomaly detection) —— 例如,检测异常的信用卡转账以防欺诈,检测制造中的缺陷,或自动删除数据集中的离群值,然后再将其输入到另一个学习算法中。系统通过正常的实例进行训练,当它看到一个新的实例时,它可以判断它是否看起来像一个正常的实例,或者它是否可能是一个异常(参见图1-10)。

图1-10 异常检测

最后,另一个常见的非监督任务是关联规则学习,其目标是挖掘大量数据并发现属性之间的有趣关系。例如,假设你拥有一家超市。在你的销售日志上运行一个关联规则,可能会显示购买烧烤酱和薯片的人也倾向于购买牛排。因此,您可能想要将这些货架彼此靠近。

Semisupervised learning:半监督学习

一些算法可以处理部分带标签的训练数据,通常是大量不带标签数据加上小部分带标签数据。这称作半监督学习(图1-11)。

一些图片存储服务,比如Google Photos,是半监督学习的好例子。一旦你上传了所有家庭照片,它就能自动识别相同的人A出现了照片1、5、11中,另一个人B出现在了照片2、5、7中。这是算法的非监督部分(聚类)。现在系统需要的就是你告诉这两个人是谁。只要给每个人一个标签,算法就可以命名每张照片中的每个人,特别适合搜索照片。

图1-11 Semisupervised学习

大多数半监督学习算法是无监督和监督算法的组合。例如,深度信念网络(deep belief networks)是基于被称为互相叠加的受限玻尔兹曼机(restricted Boltzmann machines,RBMs)的非监督组件。RBMs是先用非监督方法进行训练,再用监督学习方法进行整个系统微调。

Reinforcement Learning:强化学习

强化学习非常不同。学习系统,在这种情况下称为代理[agent],可以观察环境,选择并执行操作,并获得回报(或以负面奖励形式的惩罚,如图1-12所示)。然后它必须自己学习什么是最好的策略,称为策略[policy],以获得最大的回报。策略定义了代理[agent]在给定的情况下应该选择什么动作。

图1-12 强化学习

例如,许多机器人实施强化学习算法来学习走路。DeepMind的AlphaGo程序也是强化学习的一个很好的例子:它在2016年3月登上了新闻头条,当时它击败了世界冠军李世石(Lee Sedol)。它通过分析数百万盘棋局来学习获胜策略,然后自己和自己下棋。要注意,在比赛中机器学习是关闭的;AlphaGo只是在应用它学过的策略。

results matching ""

    No results matching ""