PaddlePaddle论文复现:U-GAT-IT论文阅读笔记

PaddlePaddle论文复现:U-GAT-IT论文阅读笔记

笔者想提高深度学习的代码功底,参与了AIStudio举办的论文复现课程。这次论文复现的主题是GAN和视频分类两个方向。本文要介绍的是GAN方向的论文U-GAT-IT: Unsupervised Generative Attentional Networks with Adaptive Layer-Instance Normalization for Image-to-Image Translation。论文实现地址:Tensorflow版Pytorch版。其中在Tensorflow版中作者提供了selfie2anime数据集的下载地址以及模型的权重。

论文的任务以及创新点

论文需要实现的任务为无监督式的图像翻译。在这篇文章中,采用相同的网络结构以及超参数,可以实现保持图像形状的图像风格迁移,如horse2zebra,也可以实现图像形状改变较大的图像翻译,如cat2dog、selfie2anime。

论文在cycleGAN的基础之上进行改进,主要的创新点有两个:

  • 自适应归一化函数AdaLIN
  • attention模块的引入

模型介绍

模型结构

PaddlePaddle论文复现:U-GAT-IT论文阅读笔记
模型中的生成器和判别器分别如上图所示,生成器为Encoder-Decoder结构,图像在Encoder中结果下采样得到特征图,通过一个全连接层学习特征图不同channel的权重,然后得到注意力机制下的特征图,将这些特征图输入到Decoder中,首先通过一个全连接网络学习到自适应层的参数 γ\gammaβ\beta,然后通过包含自适应层的网络以及上采样得到生成的图像。

判断器在Encoder以及注意力特征图结构与生成器网络是相同的,不同之处在于之后接的是一个分类器,用来判别图像是否是生成的。

损失函数

文章包含以下几个损失函数:

  • 对抗损失(Adversarial loss):保证生成的图片的分布与实际目标域的分布尽可能接近。
    PaddlePaddle论文复现:U-GAT-IT论文阅读笔记

  • 循环损失(cycle loss):将XX域的图像一次经过XYX\rightarrow YYXY \rightarrow X的生成器,结果应该与XX域的原始图像接近。
    PaddlePaddle论文复现:U-GAT-IT论文阅读笔记

  • 身份损失(Identity loss): 保证源域与目标域的颜色分布尽可能接近。
    PaddlePaddle论文复现:U-GAT-IT论文阅读笔记

  • CAM损失(CAM loss):运用辅助分类器的信息,计算目前状态中哪个部分需要重点注意。
    PaddlePaddle论文复现:U-GAT-IT论文阅读笔记
    最终的目标函数为:
    PaddlePaddle论文复现:U-GAT-IT论文阅读笔记
    其中lambda1=1lambda_1=1, λ2=λ3=10\lambda_2=\lambda_3=10, λ4=1000\lambda_4=1000

AdaLIN

对于生成对抗网络来说,层归一化(LN)可以使图像风格转换更加彻底,但是生成的图像会损失一定的语义信息,而Instance normalization(IN)的效果则相反,因此,论文提出自适应的归一化层AdaLIN,可以自适应地平衡LN和IN的比例。

AdaLIN(α,γ,β)=γ(ρα^I+(1ρ)α^L)+βα^I=αμIσI2+ϵ,α^L=αμLσL2+ϵρclip[0,1](ρτΔρ) \begin{aligned} AdaLIN(\alpha,\gamma,\beta)&=\gamma\cdot(\rho\cdot\hat{\alpha}_I+(1-\rho)\cdot\hat{\alpha}_L)+\beta\\ \hat{\alpha}_I&=\frac{\alpha-\mu_I}{\sqrt{\sigma^2_I+\epsilon}},\hat{\alpha}_L=\frac{\alpha-\mu_L}{\sqrt{\sigma^2_L+\epsilon}}\\ \rho&\leftarrow \text{clip}_{[0,1]}(\rho-\tau\Delta\rho) \end{aligned}

此外关于类别**图(CAM)以及论文中的特征提取网络中的Hourglass网络,可以通过参阅相关论文及博客进行了解。

可以参考的博客:

有包含网络结构以及CAM的介绍:

http://www.twistedwg.com/2019/08/07/UGATIT.html

https://zhen8838.github.io/2020/06/08/U-GAT-IT/

Hourglass网络:https://zhuanlan.zhihu.com/p/57631965