监督学习是一种目的明确的训练方式,你知道得到的是什么;而无监督学习则是没有明确目的的训练方式,你无法提前知道结果是什么。在本章的内容中,将详细使用TensorFlow开发无监督学习程序的知识。
12.1 无监督学习的基本概念
如果按照学习理论进行划分,可以将机器学习模型分为有监督学习、半监督学习、无监督学习、迁移学习和强化学习,具体说明如下所示。
- 当训练样本带有标签时是有监督学习;
- 训练样本部分有标签,部分无标签时是半监督学习;
- 训练样本全部无标签时是无监督学习。
- 迁移学习就是就是把已经训练好的模型参数迁移到新的模型上以帮助新模型训练。
- 强化学习是一个学习最优策略(Policy),可以让本体(Agent)在特定环境(Environment)中,根据当前状态(State),做出行动(Action),从而获得最大回报(Reward)。强化学习和有监督学习最大的不同是,每次的决定没有对与错,而是希望获得最多的累计奖励。
12.1.1 什么是无监督学习?
在现实生活中常常会有遇到下面的的问题:
(1)缺乏足够的先验知识,因此难以人工标注类别;
(2)进行人工类别标注的成本太高。
很自然地,我们希望计算机能代我们(部分)完成这些工作,或至少提供一些帮助。常见的应用背景包括:
(1)一从庞大的样本集合中选出一些具有代表性的加以标注用于分类器的训练。
(2)先将所有样本自动分为不同的类别,再由人类对这些类别进行标注。
(3)在无类别信息情况下,寻找好的特征。
在遇到上述问题时,人们很自然地希望计算机能代我们完成这些工作,或至少提供一些帮助。根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题,称之为无监督学习。
12.1.2 监督学习、无监督学习和半监督学习的对比
在现实应用中,很多人会混淆监督学习、无监督学习和半监督学习的概念,接下来简单对比三者的概念和关系。
1. 监督学习
监督学习的任务是学习一个模型,这个模型可以处理任意的一个输入,并且针对每个输入都可以映射输出一个预测结果。这里模型就相当于我们数学中一个函数,输入就相当于我们数学中的X,而预测的结果就相当于数学中的Y。对于每一个X,我们都可以通过一个映射函数映射出一个结果。
2. 无监督学习
直接对没有标记的训练数据进行建模学习,注意在这里的数据是没有标记的数据,与监督学习的最基本的区别是建模的数据一个有标签一个是没有标签的。例如聚类(将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类)就是一种典型的无监督学习,分类就是一种典型的监督学习。
3. 半监督学习
当我们拥有标记的数据很少,未被标记的数据很多,但是人工标注又比较昂贵的时候。我们可以根据一些条件(查询算法)查询(query)一些数据,让专家进行标记。这是半监督学习与其他算法的本质的区别。所以说对主动学习的研究主要是设计一种框架模型,运用新的查询算法查询需要专家来认为标注的数据。最后用查询到的样本训练分类模型来提高模型的精确度。