判别模型可以简单的理解为分类
判别模型是这些年推动机器学习发展的主要力量,但在近3到五年的时间里让人感到很有趣的应用都是生成模型造就的。尤其是英伟达(Nvidia)的styleGAN产生超真实的图片和OpenAI的GPT2创造的高水平的文章。GPT2可以在人给定一小段开头的情况下,把文章写完整。在面部图像生成上也去得了让人吃惊的结果,如图:
a、我们有一份数据集
b、我们假设这份数据集服从某个未知的分布 Pdata
c、我们生成一个模型 Pmodel去模仿分布 Pdata,并用 Pmodel 生成一个新的观测,这个新的观测似乎是用 Pdata 生成的一样。
其中有两个关键规则:
规则1:新生成的观测似乎是用 Pdata 生成的
规则2:模型 Pmodel可以稳定的生成不同于现有观测的新的观察
例如:从一组50个人的时尚搭配中学习生成模型(部分数据如下图),使用生成模型生成一组新的时尚搭配。如图:
在这个数据集中有5列(特征/维度)数据,其中:
发型(toptype)7个值:NoHair, LongHairBun, LongHairCurly, LongHairStraight,
ShortHairShortWaved, ShortHairShortFlat,ShortHairFrizzle
头发颜色(hair color) 6个值:Black, Blonde, Brown, PastelPink, Red, SilverGray
眼镜类型(kinds of glasses)3个值:Blank, Round, Sunglasses
衣服种类(clothing type)4个值:Hoodie, Overall, ShirtScoopNeck, ShirtVNeck
衣服颜色(clothing color)8个值:Black, Blue01, Gray01, PastelGreen, PastelOrange, Pink,Red, White
我们的生成模型其实就是每个特征取值的组合概率即P(x)(它朴素贝叶斯,其实就是贝叶斯公式中分母为1的形式),只有生成的观测概率值不为0并且没有在数据集中出现过就是正确的。假设每个特征和其他特征是独立同分布的,我们要计算某个搭配,如P(LongHairStraight, Red, Round, ShirtScoopNeck, White)的联合概率如下:
每个特征值在数据中出现的概率如下:
这样的话我们就可以为每个可能的组合生成一个概率。选取其中不为0的组合并且没有在数据集中出现过得就是新生成的观测。