衡量Generator的好坏的方法
徐徐 抱歉选手

Likelihood

传统衡量Generator的方法是用Likelihood。

实现方法就是,目前有一大堆real data(not observed during training),需要计算通过Generator产生这些指定的data的Log Likelihood。

用Likelihood衡量Generator的问题

Log Likelihood: 。但是问题是对于指定的,我们无法计算。我们只能说输入一个Prior Distribution from normal distribution z,让它通过generator产生一笔data。

如果我们的Generator只是一个比较简单的Gaussian Mixture Model,那么对于给定data的产生机率是可以比较简单的计算出来的。但是我们又不希望Generator这么简单,我们的模型是十分复杂的。

Kernel Density Estimation

先让Generator生成一堆data。假设Each sample is the mean of a Gaussian with the same covariance,然后用KDE去fit这些data,获得实际data分布的一个approximation,然后用每一个real data代入这个distribution获得likelihood。

Likelihood v.s. Quality

但是问题是likelihood和generator的quality没有必然联系。

  • Low likelihood and high quality

会发生在Generater产生十分清晰的图像(high quality),但都和做evaluation时用的数据无关,用likelihood来算的时候就是low likelihood。但是你并不能说generator做的不好。

  • High likelihood, low quality

G1估测出产生给定图片的likelihood很高,G2产生99%概率的noise,1%概率的好的图片,这些差异在经过Log Likelihood的计算后差距不会很大。

Using classifier

用一个已经训练好的classfier来判断这个object的好坏。

Inception Score就是由以下两个部分组成的。

image-20201119201914840

每张图片的output distribution越集中越好

image-20201119200933234

GAN是在image领域的,那我们就拿一个已经训练好的off-the-shelf image classifier,他的输入是generator的输出的某一张图,他的输出是一个基于输入图像的分布。这个classifier要判断generator的输出属于哪一类图像。如果某一个class的分布越大,说明generator效果越好。

对所有class做平均后的output distribution越平滑越好

image-20201119201508854

机器能产生很清晰的一类图,但是也只限于这一类图。依然需要衡量generator的diversity,要让机器能够产生多个class的图。

No memory GAN

我们不希望generator的输出是从database中本来就有的东西。

Mode Dropping

Generator产生的东西多样性不够。

Mini-batch Discrimination

让Discriminator一次性check一把image,那么这样discriminator不仅要关注每一张image各自是否是real的,还需要关注每一张image之间有没有类似。

  • 本文标题:衡量Generator的好坏的方法
  • 本文作者:徐徐
  • 创建时间:2020-11-19 15:46:29
  • 本文链接:https://machacroissant.github.io/2020/11/19/ganevaluation/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论