NTUML 3. 机器学习的类型

根据输出空间\(\mathcal{Y}\)分类

二元分类问题

重新回顾一下“是非题”的形式。为了解决这个问题,需要我们提供一批训练数据\(\mathcal{D}\),其中我们要指出对哪些用户发放信用卡,哪些不发。像这样答案只有两种可能性(“要”或“不要”)的问题称为二元分类问题,其输出空间\(\mathcal{Y}\)通常用集合\(\{-1, +1\}\)表示,类似于“判断题”。这种问题类型的例子有很多,包括

  • 要不要发信用卡
  • 电子邮件是不是垃圾邮件
  • 病人有没有生病
  • 广告是否会赚钱

等等。

二元分类问题是机器学习中最基本也是最核心的问题,很多理论推导和算法模型设计都是从这一类问题出发。

多元分类问题

二元分类问题很容易进行扩展,即如果答案有多个离散的可能性,那么问题演变为多元分类问题。假设目标类别有\(K\)种,那么\(\mathcal{Y} = \{1,2,\cdots, K\}\)。一个典型的例子是对硬币进行分类,看投入的是1角、5角还是1元。这种问题类似于“选择题”。这种问题类型的例子包括

  • 识别手写数字是0到9这十个数字中的哪一种
  • 识别图片中的水果是哪一种水果
  • 邮件的进一步分类,例如是垃圾邮件、社交网络邮件、重要邮件还是促销活动邮件等等

回归问题

如果将医疗领域中的问题对应到上述问题中,那么这两种问题可以对应如下:

  • 二元分类问题:给定病人特征,判断病人是否患病
  • 多元分类问题:给定病人特征,判断病人患的是哪种癌症

但是还有一类问题,例如判断病人手术后多少天可以出院。这种问题的输出是整个实数集,或者实数集中的一个连续区间。这种问题通常被称为回归分析。此时\({\mathcal{Y}} \in \mathbb{R}\)\(\mathcal{Y} = [{\rm lower}, {\rm upper}] \subset \mathbb{R}\)。这种问题类型的例子包括

  • 根据公司的状况,预测其次日股票价格
  • 根据大气状况,预测明日气温

回归问题是一种历史悠久的统计问题,也是机器学习领域里非常核心的问题

结构化分析

在自然语言处理(NLP)这个领域里,有一项任务是对于输入句子中的每个词标注其词性(Part of Speech, POS)。例如输入"I love ML",程序应该可以将"I"标记为代词,"love"标记为动词,"ML"标记为名词。这种任务可以看作是一种多元分类问题,但是如果输入是以句子为单位,由于句子中有结构性,因此输出也是一个结构。这样的问题可以看做是一个巨大的多类别分类问题,各个类别是隐藏的,看不到,而且不同类别之间有联系,使得穷举所有可能性变得不可能。但是我们知道输出存在一定的结构性,并希望程序能够正确给出判定。这种问题称为结构化分析,此时\(\mathcal{Y}\)是一种结构。这种问题类型的例子包括

  • 给定蛋白质数据,判断蛋白质的结构
  • 给定语言文本,给出语法树

根据数据标签\(y_n\)分类

有监督学习

考虑在第一节中的硬币分类问题。我们可以将所有硬币的特征收集起来,设成\({\bf x}_n\),同时可以将硬币的面额给出,称为\(y_n\)。这两部分可以一起给到机器学习的算法\(\mathcal{A}\)里,得到\(g\)。这种每个特征组\({\bf x}_n\)都有对应的\(y_n\)的学习问题称作有监督学习。这里“监督”的意义在于,对每个特征都可以给出对应的标签,是一种“完整”的教学。

无监督学习

如果对所有数据,都没有标签给出,机器也可以通过类似“自学”或者“自己研究”的方式将其归类。这种学习问题称作“无监督学习”。注意这种自动分类(称为聚类)的方法并不一定能得到正确的类数,而且如何判断聚类结果的好坏也是一个难题。这种问题类型的例子包括

  • 将文章按照主题归类
  • 将用户聚合称为用户群

当然,无监督学习不止聚类这一种方向,还包括了

  • 密度估计,即给定\(X = \{ {\bf x}_1, \ldots, {\bf x}_n\}\),判断哪里稠密哪里稀疏。例如给定一些带有地点的交通事故资料,判断哪里是事故多发区(有点像回归分析)
  • 奇异点检测,即给定\(X = \{ {\bf x}_1, \ldots, {\bf x}_n\}\),判断哪些是异常点。例如给定网络日志,判断哪些是爬取日志(有点像极端情况下的二元分类)

无监督学习的目标比较分散,难以衡量算法的好坏

半监督学习

介于有监督学习和无监督学习之间,只有少量数据有标签,大部分标签都没有,使用算法判断数据的类别。这类问题的特点是标记数据很贵(标签获取不容易)。

强化学习

类似于训练宠物的方法:当人们训练宠物时,无法直接告诉它给定讯号\({\bf x}_n\)以后期望的\(y_n\),但是可以在它做了错误的回应以后施加惩罚,通过这种方式告诉它这种做法是错的(当然也可以在它做了的正确的或者你不排斥的回应以后施加奖励)。即此时系统的输入包括了数据\(X\),系统的行为\(\tilde{y}\)和奖惩函数\(\rm goodness\)。这种问题类型的例子包括

  • 广告系统:\(X\)为用户特征,\(\tilde{y}\)为给出的广告,\({\rm goodness}\)是该广告的收入。这样系统可以学到对给定用户应该给出什么广告
  • 德州扑克:\(X\)为牌型和底池,\(\tilde{y}\)为叫牌策略,\(\rm goodness\)是牌局结束后的收益。这样系统可以学到对给定局面的叫牌策略

强化学习实际上是从一些隐含的数据中学习,这些数据通常是顺序的

根据学习方式\(f \Rightarrow ({\bf x}_n, y_n)\)分类

批处理学习

读进所有的数据,训练出来模型\(g\),使用\(g\)来处理未知数据。批处理学习是最常见的一种学习方法

在线学习

每看到一个样本就做出预测,然后根据正确的标签对模型做出更新,让模型的效果越来越好。在线学习是一种循序渐进的学习方式。PLA就很容易被改写为在线学习方法,因为它看到一个错分样本就会更新权重。另外,强化学习通常都是在线学习,因为每次我们只能得到部分数据。

主动学习

批处理学习有点像填鸭式教育,在线学习有点像老师课堂讲授,但是这两种方式其实都是机器被动学习。近几年一种新提出的研究方式类似于让机器来主动提问,即对输入\({\bf x}_n\)来提问对应的\(y_n\)。由于机器提问可以有技巧,因此我们希望这种学习可以加速学习过程,同时减少对标签的需求。当标注样本比较昂贵的情况下,主动学习比较有用

根据输入空间\(\mathcal{X}\)分类

具体特征

这种情况下,输入\(\mathcal{X} \subseteq \mathbb{R}^d\)中的每个分量(称为特征)都有具体且复杂的物理意义。这些特征都包含了人类的智慧,称为“领域知识”,是机器学习能处理的最简单的输入

原始特征

假设要处理的是手写数字识别问题,我们可以对输入做一些分析,提取出具体特征,包括数字是否对称,笔画是否有弯折等等。但是,也可以直接将原始的每个像素的灰度值组合成一个256维向量(假设图片是16x16的)。这个输入比具体特征要抽象一些,求解也更困难,不过这些数据里仍然包含了一些简单的物理意义。原始特征通常需要机器或者人来转换为具体特征,这个转换的过程称为特征工程

抽象特征

以之前提到的预测用户对电影评分的比赛为例,对于这个问题,输入\(\mathcal{X} \subseteq \mathbb{N} \times \mathbb{N}\)实际上是用户编号和电影编号组成的二元组,而这些编号对机器来讲没有任何物理意义,因此更加需要特征转换

本系列课程主要关注二元分类问题或回归问题,有监督,使用批处理方式处理,数据都有具体特征

坚持原创技术分享,您的支持将鼓励我继续创作!