由于标记数据通常很耗时且成本很高,因此您通常会拥有大量未标记的实例,而标记的实例却很少。 某些算法可以处理部分标记的数据。 这称为半监督学习。
下图是一个半监督学习的例子,三角形和方形的示例是有标签的训练样本,圆形的点是无标签的点。该例子利用这些无标记的点,把心的点归类为三角形,而不是方形(虽然这个点离方形的样本点最近)。大多数半监督学习算法是无监督算法和有监督算法的组合。
2.1.4 强化学习:学习系统自己观察环境,并作出自己的选择,在作出正确选择时会获得奖励,在作出错误选择时,会获得惩罚。随着时间推移,强化学习系统必须找到一个策略,来获得最多的奖励。DeepMind的AlphaGo就是强化学习的例子,AlphaGo通过分析数百万场比赛,来学习获胜策略,之后AlphaGo和自己来对弈。
2.2 批量和在线学习:用于对机器学习系统进行分类的另一个标准是: 系统是否可以从传入数据流中逐步学习。
2.2.1 批量学习(Batch Learning)在批处理学习(Batch Learning)中,系统无法进行增量学习,所以需要获取所有的训练数据,对模型进行训练,产出后投入生产并运行。一般可以离线运行,并且该模型只适用于其所学习的样本。这种方式比较简单,但是需要耗费较多的CPU和其他资源。
如果希望批处理学习系统了解新的数据(例如新型垃圾邮件),则需要从头开始在整个数据集上训练系统的新版本(不仅是新数据,还包括旧数据),然后停止旧系统并用新系统替换它。
2.2.2 在线学习(Online learning)在线学习以连续的小批量数据来逐步训练模型。在线学习非常适合那些连续不断地接收数据(例如股票价格)并且需要适应快速或自主变化的系统。
在线学习系统的一个重要参数是模型适应变化数据的速度,称为学习率。如果设置较高的学习率,那么系统将迅速适应新数据,但也往往会很快忘记旧数据。相反,将学习率设置得较低,则系统将具有更大的惯性,也就是说,它将学习得更慢,但对新数据中的噪声或非代表性数据点序列(异常值)的敏感性也将降低。
下图表示:online learning模型先上生产环境,再源源不断地学习小批量数据:
下图表示:使用online learning来处理大批量训练数据(模型训练 机器无法存储这么巨大的训练数据集):
通过以上描述,会发现Online learning的一个比较大的挑战和问题是,如果新来的小批数据中包含过多噪声数据,会严重影响模型训练效果。如果发现新数据中有大量杂质,应该立即停止学习过程。
2.3 基于实例与基于模型的学习下面简单描述下基于实例和基于模型学习的区别。首先,机器学习的最终目的,肯定是使模型具有更好的泛化能力,也就是该模型对一个新的样本的预测准确能力更强。在对一个新的示例来分类时,我们有2种方式,第一种是比较与该新示例最相似的几个训练样本,并取这些样本的分类标签作为该新的样本的归类标签,这就是基于实例的学习。
下图描述了基于实例的学习,找出与new instance相似度最高的三个样本,其中2个归类三角形,一个归类方形,那么new instance归类为三角形。
下图描述了基于模型的学习,与上边方法不同,这种方法训练出一个模型,再利用new instance带入模型,发现new instance属于三角形类别。