生成对抗网络在图像到图像的转换领域取得了显著的成就,但是最先进的GAN模型往往复杂、效率低,大量的参数占用了大量的内存。为解决这一问题,需要使用蒸馏将一个复杂模型简化,但是经过研究发现了一些问题

如图,GAN模型尤其是比较小的GAN模型往往会缺少生成高频信息的能力,于是为解决这种问题,我们提出了小波知识蒸馏

Method

总的来说目的有两个,一是通过蒸馏简化模型,二是使简化的模型具有较好生成高频信息的能力

使用的方法也很好理解,既然Student模型缺少生成高频信息的能力,那就只将高频信息教给Student。首先使用小波变换从Teacher和Student生成的图片中提取高频信息,然后只从两者高频信息之间计算loss

具体来说,小波变换可以将图片变换为LL,LH,HL,HHLL,LH,HL,HH四个频带,其中LLLL是低频信息,其余三个是高频信息。在本文中,将图片第一次小波变换获得的结果标记为LL1,LH1,HL1,HH1LL1,LH1,HL1,HH1,然后再对LL1LL1进行小波变换,获得的结果标记为LL2,LH2,HL2,HH2LL2,LH2,HL2,HH2,以此类推,总共进行了三次小波变换。其中,我们在计算loss时使用的高频信息为ΨH(x)={HL3,LH3,HH3,HL2,LH2,HH2,HL1,LH1,HH1}\Psi^{H}(x)=\{HL3,LH3,HH3,HL2,LH2,HH2,HL1,LH1,HH1\}

与分类任务使用的蒸馏损失不同,图像转换任务需要像素级的损失,于是使用了L1损失,小波知识蒸馏损失如下

LWKD=1nin(ΨHft)(xi)(ΨHfs)(xi)1\mathcal L_{WKD}=\frac{1}{n}\sum_{i}^{n}||(\Psi^{H}\circ f_t)(x_i)-(\Psi^{H}\circ f_s)(x_i)||_1

全部的损失如下

Loverall=Lorigin+αLWKD\mathcal L_{overall} = \mathcal L_{origin}+\alpha \mathcal L_{WKD}

其中Lorigin\mathcal L_{origin}代指对抗损失等模型本来就有的损失

Experiment

下面是分数对比和一些结果图

可以看出确实是提高了Student的性能,但是很难说结果有多好,不过大大降低了参数量

下面是消融实验的结果

发现只使用高频信息的时候效果最好,这点就比较匪夷所思了,甚至只使用低频信息效果会变得更差,唯一合理的解释就是,继续使用低频信息进行蒸馏,会使生成高频信息的能力变得更差,从而使得分数更差

总结

GAN缺少生成高频信息的能力,那就用高频信息进行蒸馏,这点很合理。但是我一直有一个问题就是,如何保证Teacher有很强的生成高频信息的能力

根据第一张图获得的结果来看,应该是所有GAN都有这个问题的,而使用一个问题较轻的模型去教一个问题较严重的模型很难说是一个很好的解决办法

其次就是生成高频信息能力不足是否是一个很严重的问题,可不可以直接在训练过程中解决。感觉上是卷积的特点导致的,这点应该可以通过实验验证,那么添加傅立叶变换可能会有效果