们今天在这里详细讲讲机器学习算法的几大分类:
比如,根据数据标注类型区分的:
以及,根据任务类型的
PS:实际上还有更多种类,但是我们这里先只讨论这些比较常见的类别。
我们先从Supervised Learning 有监督学习,Unsupervised Learning 无监督学习,Semisupervised Learning 半监督学习这三项说起。简单来说Supervised Learning就是在训练一个模型的时候,你会应用到数据集中标注的Y。比如下面的例子,可以看到表中的数据集只有3个样本,每个样本都对应了一个已知的Y信息。比如常见的例子如我们之前提到的Linear Regression, Logistic Regression, Decision Tree, KNN 等等。基本上大部分算法都是Supervised Learning,也就是在训练的过程中要充分利用数据中Y的信息,才能更新模型内部的参数来找到符合数据的分布。用一句话总结,就是学习必须有老师指导!
Fig1. 监督学习数据集的例子
相对应下,Unsupervised Learning 无监督学习就是指我的数据集不需要有样本的标注信息,我也能找出整个数据的分布并更新模型内部的参数。比如下面的例子,我们在最后一栏Y的信息是完全丢失的,但这并不影响我们训练一些模型,比如Kmeans, Self-Organizing Map(自组织映射)等Clustering算法。用一句话总结,就是学习完全可以没有老师指导!无师自通!!
Fig2. 无监督学习数据集的例子
而介于这两者之间的就是Semisupervised Learning 半监督学习了,也就是说,在训练我的模型时,需要用到数据集中一些样本的标注信息,从而才能估算整个数据集的分布。这类算法往往都是监督学习或者无监督学习算法的变种,比如Semi-supervised supported vector machine(S3VM半监督支持向量机)等。用一句话总结,就是学习开始时要有老师指导!然后再一通百通!!
Fig3. 半监督学习数据集的例子
由于当前监督学习会充分利用标注信息,所以模型的performance往往会比无监督和半监督要好。这也推动了对于高质量数据的极大需求。但是由于高质量数据往往很有限,所以更多的时候,我们只能采取无监督学习和半监督学习等方法。
再来就是强化学习Reinforcement Learning。这类算法和之前提到的几种方法有些不同。之前提到的方法往往都有明确的目标,比如如果你做股票预测,那么你的目标就是计算生成一个数值去描述股价;或者如果你训练一个图像分类器,那么你的目标就是输出测试图片的类别信息等。
但是对于强化学习,这类学习往往没有明确的目标。我们有的只是基于当前状态下的评估结果。比如,我们走迷宫,我们是看不到终点在哪的,而且通往迷宫终点的路很有可能有很多条,这就意味着我们是不知道当前状态下的目标是什么。但是我们身处在迷宫中,为了脱险必须走下去,而为了评估当前这一步的好坏,我们需要引入Rewards。这就是强化学习的概念了。那么你可以看到,这类算法更适合被用来做各种决策,因为决策往往不是立竿见影的,而是有连锁反应的。常见的应用有很多,比如自动驾驶,扫地机器人,还有像之前提到的AlphaGo,还有像最新的AI玩超级玛丽等等。
Fig4. Artificial intelligence learns Mario level in just 34 attempts
最后就是迁移学习,这项很好理解就是把已经训练好的模型参数,迁移到新的模型上以帮助新模型训练。一个简单的例子就是,我训练了一个分类器区分猫和狗,那么我能不能将这个分类器稍微改变让他能区分狮子和老虎呢(不同,但是相似的任务)。还有就是在上面提到的AI玩超级玛丽。当我们有了这个AI,我们可不可以让他在这个基础上去学如何玩魂斗罗呢。