【内涵】深度生成式模型导论
1. 如何理解生成式模型这一概念的引入?
生成式模型是基于判别式模型来讲的,这两者是“掌握”这个世界进程中的两个里程碑。v1.0是判别式,v2.0是生成式。判别式模型中,检测、分类等已经可以给一张图片来回答这副图片中什么位置,有什么内容。而生成式是直接生成图片。这就好比一个人只有能听懂别人的英语(判别式)并且能够以英语来做回应(生成式)才算真正的“掌握”了这门语言。或者说判别式有点像给到一个数学证明,能看懂;而生成式则是进一步的可以自己独立做出推导。这很像费曼的一句名言:“我不能创造的,我不能理解”。而且一般来讲,我们认为,判别式任务是生成式任务的一个子集,也就是说我们可以将生成式任务退化为判别式任务(或者说以生成式任务的方式来重新建模判别式任务),并且我们相信,如果能够将生成式任务做的足够好,我们可以完成之前更多判别式建模方式无法完成的任务。
2. 一个最符合直觉的朴素的做法
想实现生成一张图片的一个朴素的想法,是我们可以定义一些抽象类,然后配合不同的参数,实例化为不同的对象,然后再渲染出来,就可以实现最为朴素的图像生成。这种做法是计算机图形学中的范畴吧,可能在早于计算机视觉之前,就是采用这种做法。这种以人为定义的概念来设计抽象类,并且将抽象类实例化的过程看作一个个物体生成的过程当然是可以的。只是深度学习时代告诉我们一个道理:当我们面对一个人类无法穷举或者显式写出其机制定义的问题,我们可以通过数据驱动的方式来学习并建模该问题。虽然后续的不同的深度生成模型的角度不同,但都可以看到类似的影子:以数据驱动的方式来学习建模(建模得到的网络参数来替代这里人为定义的抽象函数);学习到了建模,我们就可以生成图片;而这里抽象函数/类的输入参数,则对应了生成模型的prompt或者说隐变量。而基于图片的逆问题,就是可以理解为基于生成式思维来解决判别式任务。
但要注意的是,基于数据驱动的建模方式不是完全的没有Prior信息,而是尽可能的减少Prior信息的使用。而采用不同角度的Prior信息,采用不同程度的Prior信息得到了不同的深度生成模型。但一般来讲,Prior的信息越少(假设),采用的近似越少,深度生成模型的潜力越大。(另:假设+近似是物理学的两大利器,AI领域也在采用这样的方式。)
