机器学习中的几个概念区分
监督学习
- 监督学习(supervised learning):是机器学习中的一种方法,可以由训练数据中学习到或通过建立一个模式(函数 / learning model),并依此模式推测新的实例。训练数据是由输入数据(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。[1]
通俗的说就是:监督学习算法训练含有很多特征的带标签(label 或 target)的数据集,来对新的数据集的标签做出预测。我们把需要训练的数据集称为训练集(trainset),需要预测的数据集称为测试集。
我们可以将其形式化(n 表示样本个数):
Input: trainset = \{ x_i, \; y_i \}_{i=1}^n
Output: 映射 f: x_i \mapsto y_i ,\;\; i \in \{1, \cdots, n\}
上面的 x_i 表示特征向量(由若干特征组成的向量),y_i 表示标签值。
无监督学习
- 无监督学习(unsupervised learning):已知数据不知道任何标签,按照一定的偏好,训练一个智能算法,将所有的数据映射到多个不同标签的过程。相对于有监督学习,无监督学习是一类比较困难的问题,所谓的按照一定的偏好,是比如特征空间距离最近,等人们认为属于一类的事物应具有的一些特点。举个例子,猪和鸵鸟混杂在一起,算法会测量高度,发现动物们主要集中在两个高度,一类动物身高一米左右,另一类动物身高半米左右,那么算法按照就近原则,75 厘米以上的就是高的那类也就是鸵鸟,矮的那类是第二类也就是猪,当然这里也会出现身材矮小的鸵鸟和身高爆表的猪会被错误的分类。
常见的非监督式学习是数据聚类。在人工神经网路中,生成对抗网络(GAN)、自组织映射(SOM)和适应性共振理论(ART)则是最常用的非监督式学习。
强化学习
- 强化学习(reinforcement learning):智能算法在没有人为指导的情况下,通过不断的试错来提升任务性能的过程。“试错”的意思是还是有一个衡量标准,用棋类游戏举例,我们并不知道棋手下一步棋是对是错,不知道哪步棋是制胜的关键,但是我们知道结果是输还是赢,如果算法这样走最后的结果是胜利,那么算法就学习记忆,如果按照那样走最后输了,那么算法就学习以后不这样走。
强化学习(英语:Reinforcement learning,简称RL)是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。这个方法具有普适性,因此在其他许多领域都有研究,例如博弈论、控制论、运筹学、信息论、仿真优化、多主体系统学习、群体智能、统计学以及遗传算法。在运筹学和控制理论研究的语境下,强化学习被称作“近似动态规划”(approximate dynamic programming,ADP)。在最优控制理论中也有研究这个问题,虽然大部分的研究是关于最优解的存在和特性,并非是学习或者近似方面。在经济学和博弈论中,强化学习被用来解释在有限理性的条件下如何出现平衡。
在机器学习问题中,环境通常被规范为马可夫决策过程(MDP),所以许多强化学习算法在这种情况下使用动态规划技巧。传统的技术和强化学习算法的主要区别是,后者不需要关于MDP的知识,而且针对无法找到确切方法的大规模MDP。
强化学习和标准的监督式学习之间的区别在于,它并不需要出现正确的输入/输出对,也不需要精确校正次优化的行为。强化学习更加专注于在线规划,需要在探索(在未知的领域)和遵从(现有知识)之间找到平衡。强化学习中的“探索-遵从”的交换,在多臂老虎机问题和有限MDP中研究得最多。
因此,强化学习对于包含长期反馈的问题比短期反馈的表现更好。它在许多问题上得到应用,包括机器人控制、电梯调度、电信通讯、双陆棋和西洋跳棋。[1]
强化学习的强大能来源于两个方面:使用样本来优化行为,使用函数近似来描述复杂的环境。它们使得强化学习可以使用在以下的复杂环境中:
弱监督学习
- 弱监督学习(weakly supervised learning): 已知数据和其一一对应的弱标签,训练一个智能算法,将输入数据映射到一组更强的标签的过程。标签的强弱指的是标签蕴含的信息量的多少,比如相对于分割的标签来说,分类的标签就是弱标签,如果我们知道一幅图,告诉你图上有一只猪,然后需要你把猪在哪里,猪和背景的分界在哪里找出来,那么这就是一个已知若标签,去学习强标签的弱监督学习问题。
半监督学习
- 半监督学习(semi supervised learning) :已知数据和部分数据一一对应的标签,有一部分数据的标签未知,训练一个智能算法,学习已知标签和未知标签的数据,将输入数据映射到标签的过程。半监督通常是一个数据的标注非常困难,比如说医院的检查结果,医生也需要一段时间来判断健康与否,可能只有几组数据知道是健康还是非健康,其他的只有数据不知道是不是健康。那么通过有监督学习和无监督的结合的半监督学习就在这里发挥作用了。
半监督学习(Semi-Supervised Learning,SSL)是模式识别和机器学习领域研究的重点问题,是监督学习与无监督学习相结合的一种学习方法。它主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题。主要分为半监督分类,半监督回归,半监督聚类和半监督降维算法。
至于直推学习,它与半监督学习一样不需要人工干预,不同的是,直推学习假设未标记的数据就是最终要用来测试的数据,学习的目的就是在这些数据上取得最佳泛化能力。相对应的,半监督学习在学习时并不知道最终的测试用例是什么。
也就是说,直推学习其实类似于半监督学习的一个子问题,或者说是一个特殊化的半监督学习,所以也有人将其归为半监督学习。
纯半监督学习与直推学习的区别:
假设有如下的数据集,其中训练集为 X_L+X_U,测试集为 X_{test},标记样本数目为 L,未标记样本数目为 U,L \ll U
- 标记样本 (X_L,Y_L)=\{(x_{1:L},\,y_{1:L})\}
- 未标记样本 X_U=\{x_{L+1:N}\},训练时可用
- 测试样本 X_{test}=\{x_{N+1:}\},只有在测试时才可以看到
纯半监督学习是一种归纳学习(inductive learning),可以对测试样本X_{test} 进行预测。也即纯半监督学习是基于「开放世界」的假设。
直推学习是 transductive 学习,仅仅可以对未标记样本 X_U 进行标记,模型不具备对测试样本 X_{test} 进行泛化的能力。直推学习是基于「封闭世界」的假设。
直推学习假设未标记的数据就是最终要用来测试的数据,学习的目的就是在这些数据上取得最佳泛化能力。相对应的,纯半监督学习在学习时并不知道最终的测试用例是什么。
主动学习
主动学习指的是这样一种学习方法:有的时候,有类标的数据比较稀少而没有类标的数据是相当丰富的,但是对数据进行人工标注又非常昂贵,这时候,学习算法可以主动地提出一些标注请求,将一些经过筛选的数据提交给专家进行标注。这个筛选过程也就是主动学习主要研究的地方了。
主动学习与半监督学习的区别
主动学习的主动指的是主动提出标注请求,也就是说还需要一个外在的能够对其进行标注的实体(通常是相关人员),即主动学习是交互进行的。其目标是使用尽量少的“查询”(query)来获得尽量好的性能。主动学习引入了额外的专家知识,用过与外界的交互来将部分未标记样本转变为有标记样本。
多示例学习
- 多示例学习(multiple instance learning) :已知包含多个数据的数据包和数据包的标签,训练智能算法,将数据包映射到标签的过程,在有的问题中也同时给出包内每个数据的标签。多事例学习引入了数据包的概念,比如说一段视频由很多张图组成,假如 1000 张,那么我们要判断视频里是否有猪出现,一张一张的标注每一帧是否有猪太耗时,所以人们看一遍说这个视频里有猪或者没猪,那么就得到了多示例学习的数据,1000 帧的数据不是每一个都有猪出现,只要有一帧有猪,那么我们就认为这个包是有猪的,所有的都没有猪,才是没有猪的,从这里面学习哪一段视频(1000 张)有猪哪一段视频没有就是多事例学习的问题。