[论文阅读] Rethinking the Truly Unsupervised Image-to-Image Translation

pre

title: Rethinking the Truly Unsupervised Image-to-Image Translation
accepted: ICCV 2021
paper: arxiv | ICCV
code: https://github.com/clovaai/tunit
ref: https://zhuanlan.zhihu.com/p/149211151
ref: https://zhuanlan.zhihu.com/p/151336482
ref: https://v.qq.com/x/page/y31001hnvbk.html (英文的,无字幕,ref2推荐的,实际上没看)
ref: https://zhuanlan.zhihu.com/p/35379531

亮点: 完全无监督,自动预测域标签

针对问题

近来的各种I2I模型使用图像级(即输入 - 输出对)或集合级(即域标签)监督中的一种。但随着域跟样本的数量增多,集合级监督也可能成为数据收集过程中的瓶颈,比如标注大数据集的样本十分昂贵,而且域的边界也很模糊。

图1 不同级别的监督。 (a) 图像级(label与输入配对) (b) 集合级监督(label按类别给出,如猫、狗) (c) 无任何监督的数据集(完全无标注)

因此本文提出的方法既不需要配对图片也不用给定域标签,实现了完全的无监督(图1 c),同时也支持加上一点标注数据扩展为半监督学习。

论文贡献

  • 明确无监督I2I的定义,第一个做到该任务中模型端到端训练
  • 提出引导网络并展示转换跟聚类的互动对任务有益
  • TUNIT与之前的模型进行定性定量分析
  • TUNIT超越当前半监督SOTA,且对超参数不敏感,可以作为一个强baseine

相关研究

Image-to-image translation. 从开创性的Pix2Pix开始,I2I模型取得了不少成果,利用循环一致约束跟共享隐空间假设,这些方法以集合级监督的方式训练模型。但域信息实在不好获取,特别是从各个混杂的域里收集来的数据。

\(S^3GAN\) 和 Self-conditioned GAN 将聚类跟GAN整合,是用更少的标注数据进行高质量生成。FUNIT可以用于未知目标类别,但训练仍需要标注。Wang et al用上有噪声抗性的伪标签方案减少训练的标注代价。Bahng et al.则使用ImageNet预训练分类器来抽取域信息,一定程度上解决了问题。而本文的方法连预训练分类器也不用,什么都不用。

Unsupervised representation learning and clustering. 无监督的表示学习要抽取对下游任务有意义的特征,并且不用任何人类监督。近来,通过将对比学习纳入词典学习框架(dictionary learning framework),MoCo选取合理的batch size,在多种下游任务上取得了优异性能。IIC以无监督方式利用互信息最大化,使得网络在对图像进行聚类的同时能够均匀地分配图像。IIC聚类不错,但面对I2I这样复杂的下游任务就无法很好地scale up

核心方法(模型)

图2 模型总览。更改猫的品种

训练D只需要E预测伪标签,训练生成器还需要E去抽取的风格编码,再将生成的图像交给D预测标签并与伪标签计算损失

模型核心是引导网络guiding network,记为E,上图绿色部分,双分支编码器,一个提供伪域标签,另一个将图片编码为特征向量(风格编码)。论文的核心思想就是利用E直接预测图片所属域标签,一方面教判别器判断图片的域标签(上半部分),另一方面给判别器提供参考图片域标签去计算损失。实验表明E比直接在图片或特征空间进行k-means聚类效果好

E通过将风格代码馈入到生成器G(蓝色)以及将伪域标签馈入到判别器D(红色)来指导转换过程。

然后使用来自判别器的反馈,生成器合成目标域(例如品种)的图像,同时遵照参考图像的风格(例如毛发图案),保持源图像的内容(例如姿势)。

Learning to produce domain labels and encode style features

为了估计域标签,作者采用一种可微聚类方法,基于互信息最大化(mutual information maximization)来估计域标签,并计算抽取的风格编码间的对比损失。

作者发现像这样聚类跟对比损失两个任务塞在一个模块里完成,能互相受益。

而且引导网络跟GAN也是端到端一起训练的,实验表明比各自单独训练效率更高且性能更好

Unsupervised domain classification 引入可微聚类技术最大化图片x跟随机增强后的\(x^+\)之间的互信息(MI),最优互信息\(I(p, p^+)\)当熵\(H(p)\)最大且条件熵\(H(p|p^+)\)最小时取得,其中\(p=E_c(x)\)表示引导网络E的域标签输出端\(E_c\)的softmax输出,指示\(\hat{K}\)个聚类域的概率向量x。
最大化MI鼓励\(E_c\)给x跟\(x^+\)分配相同的域标签,同时均匀地将所有样本分配到所有域里。损失如下:

\[\mathcal{L}_{M I} = I{({\bf p},{\bf p}^{+})} = I{({\bf P})} = \sum_{i=1}^{\bar{K}}\sum_{j=1}^{\bar{K}} {\bf p}_{i j}\ln\frac{{\bf P}_{i j}}{{\bf P}_{i}{\bf P}_{j}}, \\ s.t.\;\mathbf{P}=\mathbb{E}_{\mathbf{x}^{+}\sim f(\mathbf{x})|\mathbf{x}\sim p_{d a t}a(\mathbf{x})}[E_{C}(\mathbf{x})\cdot E_{C}(\mathbf{x}^{+})^{T}]. \tag{1} \]

其中函数f就是对图片x进行一系列随机增强,比如裁剪跟仿射变换。这个互信息\(I(p, p^+)\)需要最大化,因为随机变量相同时有最大的互信息,而\(p^+\)是增强来的,理应跟p很像,根据互信息\(I(X;Y) = H(X) - H(X|Y)\)、联合熵、条件熵跟熵的公式应该是能推出上述损失的...大概。

注:
作者并没有给出熵的定义,应该默认是信息论里的那个,借此机会整理了篇随笔:https://www.cnblogs.com/Stareven233/p/16832388.html

Style encoding and improved domain classification 为了学习风格表达,用一个对比损失:

\[\mathcal{L}_{s t y l e}^{E} = \displaystyle{-\,l o g}\displaystyle{\frac{\exp(\mathbf{s\cdot s^{+}/\tau)}}{\sum_{i=0}^{N}\exp(\mathbf{s\cdot s_{i}^{-}}/\tau)}}, \tag{2} \]

s就是引导网络E的风格输出端\(E_s\)编码的风格向量。而\(s_i^-\)是之前生成的图片的风格,作为负样本。这个跟前面不同,得最小化。参照Contrastive Loss的公式,分子部分\(s\cdot s^+\)似乎是s跟正样本的距离,越小越好,才会有小的损失,而分母是s跟负样本的距离和
\(\cdot\)运算跟\(\tau\)没有具体说明,似乎默认读者应当对无监督学习比较熟悉

随后做了实验表明这两个损失对于训练引导网络E确实有效,使用精度acc跟the ratio of the inter-variance over the intra-variance (IOI) 这俩指标

Learning to translate images

这部分作者采用了三种损失:

  1. 对抗性损失以生成逼真的图像;
  2. 风格对比损失以鼓励模型不忽略风格编码;
  3. 图像重建损失以维持域不变特征。

其中,对于对抗性损失训练,作者采用多任务判别器,其设计目的是同时对每个域进行判别。然后仅利用估计输入图像的域的损失来计算其梯度。

\[\mathcal{L}_{a d v} \,=\, \mathbb{E}_{\tilde{x} \sim p_{data}(x)} [\log D_{\tilde{y}}(\tilde{x})] \\ +\mathbb{E}_{\bf x, \tilde{\bf x} \sim p_{d at a}(x)} [\log({\bf1}-D_{\tilde{y}}(G({\bf x},\bf\tilde{s})))], \tag{3} \]

另外,为了防止出现生成器忽略给定的风格编码而合成域的随机图像的退化情况,对生成器施加的风格对比损失函数如下:

\[\mathcal{L}_{s t y l e}^{G}=\mathbb{E}_{\bf x,\check{\bf x}\sim p_{d a t a}({\bf x})} \left[-\log\frac{\exp({\bf s}^{\prime}\cdot\tilde{{\bf s}})}{\sum_{i=0}^{N}\exp({\bf s}^{\prime}\cdot{\bf s}_{i}^{-}/\tau)}\right]. \tag{4} \]

为了保证生成器在给定其原始风格时可以重建源图像,其施加图像重建损失为:

\[\mathcal{L}_{r e c}=\mathbb{E}_{\mathbf{x}\sim p_{d a t a}(\mathbf{x})}[\|\mathbf{x}-G(\mathbf{x},\mathbf{s})\|_{1}] \tag{5} \]

上述公式不仅能保证生成器可以保留其输入图像的域不变性特征(例如,姿态),而且还有助于通过提取源图像的原始风格来学习引导网络的风格表示。最后,总的训练模型公式表示如下:

\[\mathcal{L}_{D} = -\mathcal{L}_{a d v}, \\ \mathcal{L}_{G}=\mathcal{L}_{a d v}+\lambda_{s t y l e}^{G}\mathcal{L}_{s t y l e}^{G}+\lambda_{r e c}\mathcal{L}_{r e c.} \tag{6} \\ \mathcal{L}_{E} = \mathcal{L}_{G} - \mathcal{L}_{M I}\mathcal{L}_{M I}+\lambda_{s t y l e}^{E}\mathcal{L}_{s t y l e}^{E} \]

其中\(\lambda\)是超参数,引导网络的损失\(\mathcal{L}_{E}\)包含了生成器损失\(\mathcal{L}_{G}\),是本方法的关键

数据集和指标

标注数据从AnimalFaces跟Food-101去抽取子集,无标注数据集选取AFHQ, FFHQ 和 LSUN Car

指标取 类别相关的平均Fr ́enchet Inception Distance (mFID) ,可以避免原始FID退化情况。此外为了提供一个更细粒度的评估,引入了Density and Coverage (D&C)指标,分别评估模型输出的忠实度跟多样性,它已知对于离群点跟模型超参数鲁棒。越低的mFID说明图片质量越好,D&C越大或越接近1分别表示更忠实和更加多样,可以参考附录3的详细说明。

实验

Comparative Evaluation on Labeled Datasets

表1 TUNIT每个部分影响以及跟FUNIT比较结果

图3 表1中不同设置下模型的定性比较

对于表1每列前面的字母,A表示原始的FUNIT,B表示使用本文修改后的FUNIT,C... E加上了可微聚类,减少了训练步骤,这样模型性能就接近原始的A,然而样本多样性不令人满意。最终的模型G的联合训练是GAN跟引导网络,它取得了类似B(有监督的!所以作者认为已经挺不错了)mFID分数。

Analysis on Generalizability

robustness to vasrious K

表2 不同K下模型的t-SNE可视化结果

上图中\(\hat{K}\)是引导网络聚类后的域数量,a图取10,b图取20,作者发现当\(\hat{K}\)取接近真值K=10的时候才有最优的mFID。事实上大于等于7(足够大)的时候就有不错表现,有趣的是当\(\hat{K}\)取100倍大,即1000的时候TUNIT表现也还行,说明超参数\(\hat{K}\)具有鲁棒性

with few labels
作者还尝试用TUNIT在半监督任务上,用上面提到的AnimalFaces跟Food数据集
然后将数据集\(\mathcal{D}\)分为标注\(\mathcal{D}_{sup}\)跟非标注\(\mathcal{D}_{un}\)两部分,记一个比例\(\gamma = |\mathcal{D}_{sup}| / |\mathcal{D}_{un}|\)

表3 当有少量标注数据的时候的评估结果(mFID),这里的TUNIT用的是表1的G

图4 使用0.1%标注样本的跨域属性转换

如表3,此时对比的是 FUNIT 和 SEMIT 模型,因为二者都可以用于半监督场景,其中当\(\gamma\)减小,即标注数据部分少的时候FUNIT退化严重,SEMIT能跟TUNIT保持相近的mFID。而大数据集上TUNIT表现也非常好,更详细的比较看附录。

Validation on Unlabeled Dataset

最后在无标注数据集AFHQ, FFHQ 和 LSUN-Car上面评估TUNIT,这些数据集没有显式的域划分。

图5 未标注数据集上风格指引的图像转换

作者认为图5展示了TUNIT充分地反映了参考的风格特征,如猫或车的纹理(颜色花纹之类的)和野生动物的物种。虽然FFHQ没有显示的域区别,但TUNIT捕捉到了眼镜或微笑等域的存在,可以加上或去掉眼镜跟微笑。而FUNTI的输出就糟糕多了。

图6 AFHQ Wild上训练的风格空间的t-SNE可视化。

因为这个数据集没有真值标签,因此每个点根据引导网络的预测来上色。虽然设置K=10大于数据集可能有的类别数,但网络将同一物种的簇放得更近,实际上形成了6个大簇

作者可视化了俩模型的风格空间去评估表达的质量。图6展示了AFHQ Wild和每个聚类样例的t-SNE图,模型会将同一物种的两个类放得更近,也就是说这里给出10个应该预测的域,但模型近似于正确预测了6个域,因此作者任务模型能够高度解耦风格特征,并且特征具有实际语义。另一方面,因为FUNIT没能学会有意义的域(点很多很乱),因此也无法正确地执行转换。更多结果和可视化见附录。

总结

列举自己的贡献,对比先前方法至少需要给出域标签,而TUNIT不用任何外部信息就能做得不错。而且模型可以容易地扩展到半监督设置,能取得跟SOTA比有竞争力的结果,表明TUNIT在实际应用中很有潜力。

这里并没提到不足跟未来的研究思路,看着效果很不错,而且idea很有意思,可视化也挺漂亮的。不过看图5,这些转换好像只是换了个纹理,形状(物种/内容)总觉得没变化,不过看图3又好像是具备转换内容的能力,尤其是对食物的转换,很有意思。由于看的是ICCV的版本,并没有附录,嘛,反正也没力气继续看了,推荐还是arxiv版本好一些,内容丰富,虽然正文部分没什么差别。

待解明

风格对比损失函数(公式2)的含义不甚清楚

posted @ 2022-10-25 22:15  NoNoe  阅读(250)  评论(0编辑  收藏  举报