正文
再说一说生成模型(Generative Model)。生成模型可以描述数据的生成过程。换句话说,已知了这个模型,我们就可以产生该模型描述的数据。而数据由两部分组成,也就是(X,Y),前者是特征,后者则是类别(Y是标量)或者序列类别(Y是向量)。要描述整个数据,也就是要对p(X,Y)进行建模,所以是对联合概率进行建模。生成模型本身不是做分类或者序列标注的,但是可以用来解决这些问题,也可以用于生成式问题,比如聊天机器人、比如AI谱曲等问题。
而机器学习可以分成下面几种类别:
-
监督学习从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练数据中的目标是由人标注的。常见的监督学习算法包括回归分析和统计分类。
-
无监督学习与监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有聚类。
-
半监督学习介于监督学习与无监督学习之间。它主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题。。
-
增强学习通过观察来学习做成如何的动作。每个动作都会对环境有所影响,学习对象根据观察到的周围环境的反馈来做出判断。
在传统的机器学习领域,监督学习最大的问题是训练数据标注成本比较高,而无监督学习应用范围有限。利用少量的训练样本和大量无标注数据的半监督学习一直是机器学习的研究重点。
当前非常流行的深度学习GAN模型和半监督学习的思路有相通之处,GAN是“生成对抗网络”(Generative Adversarial Networks)的简称,包括了一个生成模型G和一个判别模型D,GAN的目标函数是关于D与G的一个零和游戏,也是一个最小-最大化问题。
GAN实际上就是生成模型和判别模型之间的一个模仿游戏。生成模型的目的,就是要尽量去模仿、建模和学习真实数据的分布规律;而判别模型则是要判别自己所得到的一个输入数据,究竟是来自于真实的数据分布还是来自于一个生成模型。通过这两个内部模型之间不断的竞争,从而提高两个模型的生成能力和判别能力。
(图片来自Nvidia Deep Learning Training Workshop)
目前主流的深度学习框架: