今天我们从上次的Yes/No题出发,探讨一下机器学习中还有哪些不同的问题,它们与我们的Yes/No题又有哪些不一样,以及不一样在什么地方。

Learning with Different Output

回顾一下上次的Yes/No问题: 图3-1

Yes/No题的应用非常的广泛:

  • 信用卡批准/不批准
  • 邮件是垃圾邮件/不是垃圾邮件
  • 病人生病了/没有生病
  • 广告会盈利/不会盈利
  • 学生对某道习题的回答正确/不正确(KDD Cup 2010)

多元分类问题(以硬币分类为例子): 图3-2

其他的多元分类问题:

  • 手写数字识别 \(\Rightarrow\) 0, 1, 2, …, 9
  • 图片识别 \(\Rightarrow\) 水果,橘子,草莓
  • 邮件分类 \(\Rightarrow\) 垃圾邮件,重要邮件,社交邮件,促销邮件,更新邮件等

其中一个应用非常多的领域就是recognition,即视觉/听觉的辨识。

在医院的情境下,二元分类可以告诉我们病人有没有生病,而多元分类可以告诉我们病人生的是哪一种病。而如果我们想要知道:病人多久后会康复。也就是说问题的输出是整个实数域,或者一个有界的区间,即: \[ Y = R \quad or \quad Y = [lower, upper] \subset R \]

这样的问题就是回归问题。

其他的一些回归问题包括:

  • 根据公司数据预测股票价格
  • 根据气候数据预测温度

回归问题同分类问题一样,是机器学习中很重要、很基础的问题,可以用来做为其他问题的基础。

接下来有一个复杂的问题:自然语言中的词性标注问题。 图3-3

这种问题被称为结构化学习问题,类似的问题还有:

  • 输入蛋白质的数据 \(\Rightarrow\) 输出蛋白质的3D模型
  • 输入一段话 \(\Rightarrow\) 输出每一个字在这段话的关系是什么(Speech Parse Tree)

简单总结:

  • 二元分类\(Y = {-1, +1}\)
  • 多元分类:\(Y = {1,2, \cdots, K}\)
  • 回归\(Y = R\)
  • 结构化学习:\(Y = \{structures\}\)
  • 其他

Learning with Different Data Label

我们现在从硬币分类问题出发:

如果我们输入每一个硬币的大小和重量,以及每一个硬币的价值,让机器训练出一个分类器,那么这就是一个监督式学习(Supervised Learning)问题: 图3-5

那如果我们不告诉机器每一个硬币的价值,让机器自己去分类,那么这是将是一个非监督式学习(Unsupervised Learning),称为聚类问题(Clustering Problem)。这将是一个比分类更困难的问题,比如如何衡量聚类效果的好坏就很难。

典型的聚类问题有:

  • 把文章自动归到不同的分类
  • 根据顾客的档案把他们分到不同的群

非监督式学习的典型问题有:

  • 聚类\(\mathbf{x}_n \Rightarrow cluster(\mathbf{x})\) (约等于Unsupervised Multiclass Classification)
    • 把文章自动归到不同的分类
  • 密度估计\(\mathbf{x}_n \Rightarrow density(\mathbf{x})\) (约等于Unsupervised Bounded Regression)
    • 根据交通事故报告推测有经常发生事故的区域
  • 异常检测\(\mathbf{x}_n \Rightarrow unusual(\mathbf{x})\) (约等于Unsupervised Binary Claasfication)
    • 根据互联网的日志信息给出被入侵或者不正常运作警报
    • 因为异常情况很少,取得labeled data也很难
  • 其他

半监督式学习(Semi-supervised)指在我们的输入数据集里,少部分数据有标签,大部分数据无标签。典型问题有:

  • 输入少量被标记的人脸图片 \(\Rightarrow\) 人脸识别器(Facebook)
  • 少量药效被测试过的药数据 \(\Rightarrow\) 药效果预测器

半监督式学习问题的一个共同特点是取得标签都很贵,于是想到用大量未标记数据来避免昂贵的标记工作。

增强学习是一种“完全不同”但是自然的学习方式。

想一想你怎么训练你的宠物?

例如你叫你的狗坐下,狗却在地上尿尿:

  • 你不能直接告诉你的狗当\(\mathbf{x}_n = 'sit down'\)时,\(y_n = sit\)
  • 但是你可以在它做错时惩罚它;
  • 或者在它做对时奖励它,比如给它饼干吃。
  • 当然也不一定是准确做到坐下时,才奖励它。比如它做了一个相似的动作像握手,你也还是会给它饼干吃,只不过可能不会给它吃它最爱吃的那种。

这种通过在输出上施加奖惩的策略来进行学习的方式,叫做增强学习。其他的一些例子有:

  • 输入(顾客信息,系统的广告选择,广告点击带来的盈利)\(\Rightarrow\) 通过学习进步了的广告投放系统
  • 输入(手上的牌,系统的出牌策略,系统赢得的钱)\(\Rightarrow\) 通过学习进步了的出牌系统

增强学习中,我们并不会告诉机器对于某个输入准确的输出是什么,只会告诉它某个输出好还是不好,由机器按照这些信息进行学习。这些信息通常是序列化到达,而不是一起到达的。

简单总结:

  • 监督式学习:所有\(x_n\)都有\(y_n\)
  • 非监督式学习:所有\(x_n\)都没有\(y_n\)
  • 半监督式学习:少部分\(x_n\)\(y_n\)
  • 增强式学习:\(y_n\)好还是不好(\(\tilde{y_n}\)

Learning with Different Protocol

Batch Learning: 一次从所有已知数据中学习,是一种很常见的学习方式:

  • 输入一批(邮件,是否垃圾)的数据 \(\Rightarrow\) 垃圾邮件过滤器
  • 输入一批(病人,癌症种类)的数据 \(\Rightarrow\) 癌症分类器
  • 输入一批病人数据 \(\Rightarrow\) 病人分组(聚类问题)

这都是Batch Learning的学习方式。

与之相对的是线上学习(Online Learning)的方式:

  • 收到一封邮件
  • 用已有的\(g_t\)对它是否是垃圾邮件进行预测
  • 用户告诉它正确的Label \(y_t\),系统根据\((\mathbf{x}_t, y_t)\)更新\(g_t\)

线上学习与我们之前学过问题有很多联系,例如:

  • PLA问题可以很方便地采用线上学习方式
  • 通常增强学习也是以线上学习的方式完成的

通过线上学习,我们希望每一轮计算出的\(g\)越变越好。

Batch Learning比较像填鸭式教育,线上学习比较像老师在教书。在这两个方式中,机器都是被动的。在最近的机器学习研究中,有一个热门的研究方向就是:我们能不能让机器自己问问题。比如在手写数字识别中,机器可以自己生成一个数字,或者拿一个它无法判断的数字,来问人这究竟是几。

这样的学习方式叫做主动学习(Active Learning),希望通过让机器有策略地选择一些问题来问,从而用很少的标记来改善学习效果。通常也是用在数据很多或标记很贵的情境中。

简单总结:

  • batch learning: 一次性喂给机器所有已知数据
  • online learning: 序列性喂给机器数据
  • active learning: 向专家有策略地提问获得观察到的数据

Learning with Different Input Space

之前我们讲的都跟输出有关:输出的空间不同如何分类,取得标记的方法不同如何分类等等。现在我们来谈一谈输入。

还是之前的信用卡批准问题。我们其实假设我们的输入(用户资料)非常具体(concret),而且跟我们想要做的事有一定关系。更具体地说,它们可能都代表一些蛮复杂、经过处理的特征,这些特征和我们想要的输出有一些关系。

Concert代表,我们可能可以进行简单的运算就能得到一个能直接决定结果的变量(个人理解)。例如:

  • 硬币分类问题中,硬币的大小和重量
  • 信用卡批准问题中,用户的具体信息
  • 癌症诊断问题中,病人的具体信息

在这些特征里面,带有人类的智慧对问题的描述(Domain Knowledge),人类的智慧已经用在像预处理的工作中,这类问题在机器学习中是比较简单的。

如果我们要做手写数字的识别,我们:

  • 可以输入数字是否对称,和数字的密度。(concret特征): 图3-8
  • 同时也可以直接输入16 x 16灰阶图像(raw特征):每个点只有很简单的物理意义,更抽象一些: 图3-9

很多情况下,需要人们把raw features转化成concrete features,这门学问叫做feature engineering。而深度学习(deep learning),概略的来说,就是利用大量的数据,甚至使用非监督式的学习,来抽取具体的特征。

这些还不是最困难的,最困难的是非常非常抽象: 比如在KDD Cup 2011上的预测用户给歌曲打分问题:

  • 输入(userid, itemid, rating),预测某userid给某itemid的rating
  • 典型的回归问题:\(Y \subseteq R, X \subseteq N x N\)
  • 这个二维向量是没有实际意义的,因此对机器学习而言是一个很难的问题。
  • 因此我们要为用户和歌曲抽取特征,这些特征可能一部分是人想的,另一部分是机器自己学到的。

其他在KDD Cup里类似的问题:

  • 在线辅导系统里学生的编号(KDD Cup 2010)
  • 在线广告投放系统中广告的编号

这里的abstract feature比raw feature更抽象一层,难度更高一些,需要更多的抽取动作。

简单总结:

  • concret features: 有复杂的现实意义
  • raw features: 有简单的现实意义
  • abstract features: 没有(或很少)现实意义
  • 其他

Summary

图3-11

图3-11

下节课,我们将会讨论一个问题:机器学习可能是做不到的