GPT与GAN结合生成图像——VQGAN原理解析-6.感知损失

与VQVAE相比,VQGAN的作者首先把里面的重构损失 L r e c L_{rec} Lrec换成感知损失(perceptual loss)

所谓的感知损失,在一般请看下,就是把真实的图像,和解码器复原的图像,一起送给一个神经网络,比如VGG16,把这两张图像经过VGG16,都编码成特征向量,然后计算特征向量的差别,比如
L p e r = ∣ ∣ V G G ( x ) − V G G ( x ^ ) ∣ ∣ 2 (2) L_{per}=||VGG(x)-VGG(\hat x)||_2\tag{2} Lper=∣∣VGG(x)VGG(x^)2(2)
这只是举个例子,在文章中VQGAN的代码中,比这个复杂一点,它是在很多层都进行都去计算式(2)。

另外,值得注意的是,虽然论文里面写的是把重构损失换成感知损失,但是在本文上面的代码中,其实两种损失都用到了。我个人觉得也没什么不妥的,很显然重构损失是在图像层面的差异,而感知损失是特征向量的差异,所以两者加起来应当不会有什么问题。

上一篇:PyQt介绍——动画使用详解之动画组QAnimationGroup


下一篇:上位机图像处理和嵌入式模块部署(树莓派4b用skynet实现进程通信)-多线程通信