机器学习基石第三讲:types of learning

时间:2021-08-06 16:12:32

博客已经迁移至Marcovaldo’s blog (http://marcovaldong.github.io/)

刚刚完成机器学习基石的第三讲,这一讲主要介绍了机器学习的分类,对何种问题应该使用何种机器学习方法。将笔记整理在下面。

Learning with Different Output Space

前面讲的信用卡发放问题是一个是非题,也就是说最后的输出只有两种,是一个二元分类(binary classification)。下图中给出了更多的二元分类问题的例子,对于这类问题我们要做的就是找到一个hypothesis(超平面或超曲面)能够很好的将下图中的圈圈和叉叉分开。当然,后面我们介绍更多的解决二元分类问题的算法。

机器学习基石第三讲:types of learning

下面要介绍的是多元分类(multiclass classification)。这里给出了一个实际的例子:贩卖机如何将不同面额的硬币分开(美元中的硬币有四种),这就是一个多元分类问题。多元分类问题是很多应用,特别是在计算机视觉等方面,下图介绍了其中的几种:

机器学习基石第三讲:types of learning

下面介绍回归分析(regrssion)。我们现在让机器做这样一件事,输入进去病人的状况,输出病人恢复健康需要的时间。这里的输出应该是在一个正实数域。对于这种输出空间是一个连续的区间的问题,我们称之为回归分析问题(输出空间有上下限的话称为bound regression)。比如根据一家公司以往的数据来分析其股票价格就是一个典型的回归分析问题。回归分析在统计学中是一类重要的问题,其构成了机器学习的又一数学基础。

现在我们考虑这样一个问题:给定一个句子,我们让机器来自动标出句子中每一个单词的词性(名词/动词/代词/副词等)。可以想象这个问题的输出空间存在着某种逻辑在里边,但又不能用穷举法(一个是输出空间太大,另一个是某些组合方式不存在:如一个句子中不可能全是动词等),所以我们希望让机器去学习到其中的一些结构,能够正确的处理句子。类似这种输出空间巨大且暗含某种结构的,我们称之为结构化学习(structured learning)。

机器学习基石第三讲:types of learning

这里简单介绍了多元分类、回归分析、结构化学习,是为了告诉大家机器学习不只是为了解决是非题,还有更多的复杂形式。不过这里最核心的是二元分类和回归分析。

最后是小测试:

机器学习基石第三讲:types of learning

Learning with Different Data Label

类似上面讲的硬币分类的问题我们称之为监督式学习(supervised learning),所谓监督是指我们不仅向机器提供了每一枚硬币的重量、尺寸等,我们还提供每一枚硬币的分类结果(就是该硬币实际的面额)。相对应地,如果我们只给出硬币的重量、尺寸等信息而没有给出硬币的实际分类结果,我们让机器自己想办法将硬币分成k类,这样的问题我们称之为聚类(clustering)。下面给出了一个对比图,左侧图中的数据点已经被标记了不同的颜色,表示机器已经知道每个数据点所属的类别;而右侧图中的数据点还没有标记类别,需要机器从数据中学到这些数据点应该分几类,以及每个数据点应该分到哪一类(这个问题更复杂)。

机器学习基石第三讲:types of learning

下图给出了几种非监督式学习:聚类(clustering)、密度分析(density estimation)、异常检测(outlier detection)。想要了解更多的话可以翻看我之前的博客

机器学习基石第三讲:types of learning

前面说了监督式学习和非监督式学习,下面介绍半监督式学习(semi-supervised learning)。在半监督式学习中,我们给机器的数据集中只有很少一部分数据是被标记的,我们希望机器从这样的数据集中学到一些东西。比如,社交网站上人脸识别,我们只标出很少一部分照片的类别(姓名等),然后让机器帮助我们去完成标记工作。半监督式学习用在人工标记数据的成本很高的问题上。

机器学习基石第三讲:types of learning

视频中还介绍了增强式学习(reinforcement learning),大意是说当机器犯错时会作出相应的惩罚项以修正hypothesis,当机器分类正确时给予一定的奖励(就好比训练宠物狗时,当狗作出正确的反应时给吃的,错了不给),相关知识会在以后的博客中详细介绍。

最后是小测试:

机器学习基石第三讲:types of learning

Learning with Different Protocol

在垃圾邮件分类系统中,我们通常先搜集大量的邮件,比如说2000封,并标注好每一封邮件的类别,然后将整个训练数据集输入给机器,机器从中学习到分类的技巧。我们称这样的学习方式为批量(batch)学习。对应的,我们将数据一条一条的输入给机器,机器判断其类别,根据其结果的正确性相应修正hypothesis,这样的学习方式成为在线(online)学习。PLA算法、增强式学习通常应用于在线学习。最近又发展处了可以主动“问问题”的机器学习算法,比如有一个手写识别的机器,其主动写出一个数字(比如8),人工去标记它(标记为8),然后机器就知道了“哦,类似这样的手写数字可能是哪个(可能是8)”。类似这样的学习方式,我们称之为主动(active)学习。主动学习使机器能够有技巧的主动“问问题”,通常用于标记数据成本昂贵的问题。

下图给了三者的一个形象比喻。这个课程主要介绍批量学习。

机器学习基石第三讲:types of learning

然后本小节测试:

机器学习基石第三讲:types of learning

Learning with Different Input Space

这一小节讲的是特征工程(feature engineering):将原始的数据转化为真正可以作为机器学习的training set的过程。特征工程实际上用到了一些待处理问题所在领域的一些相关问题,比较复杂,在后面的课程还会介绍。实际上这一小节要告诉大家的是,我们要对最原始的数据进行特征提取等处理后,再输入给机器,去做机器学习。

机器学习基石第三讲:types of learning

本节小测试:

机器学习基石第三讲:types of learning

最后一张图是对这一讲内容的概括。

机器学习基石第三讲:types of learning