百度顶会论文复现营,使用百度飞浆平台复现感兴趣的论文,方向有两个,GAN和视频分类,最近对GAN比较感兴趣,所以选择了GAN的有关论文。《Unsupervised Generative Attentional Networks with Adaptive Layer-Instance Normaliza》,利用 GAN 的新型无监督图像转换。不知道最后能不能复现出来,,
引入:
图像到图像转换可以应用在很多计算机视觉任务,图像分割、图像修复、图像着色、图像超分辨率、图像风格(场景)变换等都是图像到图像转换的范畴。生成对抗网络不仅仅在模型训练的收敛速度上,同时在图像转换质量上展示了优越的结果。这些优越性能相比 Pixel CNN、VAE、Glow 都是具有很大竞争力的。所以近年来的围绕 GAN 实现图像转换的研究是很多的,例如 CycleGAN、UNIT、MUNIT、DRIT、FUNIT、SPADE。图像转换是 GAN 铺开应用的第一步,跨模态间的转换,文本到图像、文本到视频、语音到视频等,凡是这种端到端,希望实现一个分布到另一个分布转换的过程,GAN 都是可以发挥一定的作用的。图像到图像的转换到目前为止还是具有一定挑战性的,大多数的工作都围绕着局部纹理间的转换展开的,例如人脸属性变换、画作的风格变换、图像分割等,但是在图像差异性较大的情况下,在猫到狗或者是仅仅是语义联系的图像转换上的表现则不佳的。 这就是图像转换模型的适用域问题了,实现一个具有多任务下鲁棒的图像转换模型是十分有必要的。文章中 U-GAT-IT 正是为了实现这种鲁棒性能设计的。
首先是引入注意力机制,这里的注意力机制并不传统的 Attention 或者 Self-Attention 的计算全图的权重作为关注,而是采用全局和平均池化下的类激活图(Class Activation Map-CAM)[2] 来实现的,CAM 对于做分类和检测的应该很熟悉,通过 CNN 确定分类依据的位置,这个思想和注意力是一致的,同时这对于无监督下语义信息的一致性判断也是有作用的,这块我们后续再进行展开。
有了这个注意力图,再加上自适应图层实例归一化(AdaLIN),其作用是帮助注意力引导模型灵活控制形状和纹理的变化量。有了上述的两项作用,使得 U-GAT-IT 实现了鲁棒下的图像转换。 U-GAT-IT 的优点:
提出了一种新的无监督图像到图像转换方法,它具有新的注意模块和新的归一化函数 AdaLIN。
注意模块通过基于辅助分类器获得的注意力图区分源域和目标域,帮助模型知道在何处进行密集转换。
AdaLIN 功能帮助注意力引导模型灵活地控制形状和纹理的变化量,增强模型鲁棒性。
模型整体框架:
模型分为生成器和判别器,生成器和判别器的结构几乎相同,生成器多了一点操作(这多的这点就是 AdaLIN 和 Decoder部分),生成器,首先是对端的输入端进行图像的下采样,配合残差块增强图像特征提取,接下来就是注意力模块,对注意力模块通过 AdaLIN 引导下残差块,最后通过上采样得到转换后的图像。对于判别器相对于生成器而言,就是将解码过程换成判别输出。
如何实现图像编码后注意力模块以及 AdaLIN 怎样引导解码得到目标域图像呢?
CAM Auxillary classifier
CAM模型:
可以看到对于图像经过下采样和残差块得到的 Encoder Feature map 经过 Global average pooling 和 Global max pooling 后得到依托通道数的特征向量。创建可学习参数 weight,经过全连接层压缩到 B×1 维,这里的 B 是 BatchSize,对于图像转换,通常取为 1。对于学习参数 weight 和 Encoder Feature map 做 multiply(对应位想乘)也就是对于 Encoder Feature map 的每一个通道,我们赋予一个权重,这个权重决定了这一通道对应特征的重要性,这就实现了 Feature map 下的注意力机制。对于经过全连接得到的 B×1 维,在 average 和 max pooling 下做 concat 后送入分类,做源域和目标域的分类判断,这是个无监督过程,仅仅知道的是源域和目标域,这种二分类问题在 CAM 全局和平均池化下可以实现很好的分类。当生成器可以很好的区分出源域和目标域输入时在注意力模块下可以帮助模型知道在何处进行密集转换。将 average 和 max 得到的注意力图做 concat,经过一层卷积层还原为输入通道数,便送入 AdaLIN 下进行自适应归一化。
AdaLIN
完整的 AdaLIN 操作就是上图展示,对于经过 CAM 得到的输出,首先经过 MLP 多层感知机得到 γ,β,在 Adaptive Instance Layer resblock 中,中间就是 AdaLIN 归一化。AdaLIN ,就是 Instance Normalization 和 Layer Normalization 的结合,学习参数为 ρ。AdaIN 的前提是保证通道之间不相关,因为它仅对图像 map 本身做归一化,文中说明 AdaIN 会保留稍多的内容结构,而 LN 则并没有假设通道相关性,它做了全局的归一化,却不能很好的保留内容结构,AdaLIN 的设计正是为了结合 AdaIN 和 LN 的优点。
判别器:判别器的设计采用一个全局判别器(Global Discriminator)以及一个局部判别器(Local Discriminator)结合实现。最后通过 extend 将全局和局部判别结果进行连接。
就先这样吧!!