这是NeurIPS 2018一篇图像翻译的文章。目前的无监督图像到图像的翻译技术很难在不改变背景或场景中多个对象交互方式的情况下将注意力集中在改变的对象上去。这篇文章的解决思路是使用注意力导向来进行图像翻译。下面是这篇文章的结果图:

可以看到文章结果很好, 只有前景(对象)改变了, 而背景变化很小, 而其他的方法背景变化很大, 效果偏差.

现在介绍作者的方法,作者在cyclegan的基础上加入另外一个注意力网络,如下图所示:

上图的左边就是斑马转普通马的具体流程,首先\(s\)(斑马)会通过\(F_{S \rightarrow T}\)(\(S\)代表Source,\(T\)代表Target)得到普通马的预测,通知\(s\)还会通过一个注意力网络\(A_S\)得到掩模\(s_a\),这个注意力层是想将前景突显出来(很大的值),背景则忽略掉(很小的值),这样与\(F_{S \rightarrow T}\)的输出进行按点相乘,就会只凸显出马,而背景就是很低的值,这个掩模还有用处,通过\(1-s_a\)可以得到只凸显背景而忽略前景的掩模,将这个掩模去与\(s\)相乘,得到source的背景,而其前景则被置于很低的值,然后两者进行相加,得到最终预测\(s^{\prime}\)。\(s^{\prime}\)的计算公式可由下面公式表示:
\[
s^{\prime}=\underbrace{s_{a} \odot F_{S \rightarrow T}(s)}_{\text { Foreground }}+\underbrace{\left(1-s_{a}\right) \odot s}_{\text { Background }}
\]
由于基于cyclegan,所以还需要将\(s^{\prime}\)转换成\(s^{\prime\prime}\), 约束\(s^{\prime\prime}\)和\(s\)尽可能相似,所以还有一个普通马转斑马的过程,与斑马转普通马的过程一样,也用到了注意力网络\(A_T\).

注意力网络所生成的掩模为什么会与前景相关呢?如果不跟前景相关,根据上述公式知道,Foreground将不会凸显前景,因为掩模不跟前景相关,相乘会得到低值前景,而Background将凸显斑马的特征,相加后还是斑马,与普通马差异大,无法骗过鉴别器,所以注意力网络的掩模会学习与前景相关。

注意力网络的输出是\([0, 1]\)之间的连续值,而不是二进制分割掩码,这有三点原因:

  • 连续可微,可以进行训练
  • 可以让注意力网络在训练过程中保持注意力的不确定性,允许收敛
  • 允许网络学习如何组合边缘,否则可能会使前景对象看起来“粘在”边缘上。

现在来看看损失函数(这里只介绍\(S \rightarrow T\)以及\(S \rightarrow T \rightarrow S\)的loss,\(T \rightarrow S\)和\(T \rightarrow S \rightarrow T\)是一样的),首先是GAN固有的对抗损失:
\[
\mathcal{L}_{a d v}^{s}\left(F_{S \rightarrow T}, A_{S}, D_{T}\right)=\mathbb{E}_{t \sim P_{T}(t)}\left[\log \left(D_{T}(t)\right)\right]+\mathbb{E}_{s \sim \mathrm{P}_{S}(s)}\left[\log \left(1-D_{T}\left(s^{\prime}\right)\right)\right]
\]
然后是cyclegan中的一致性损失\(S \rightarrow T \rightarrow S\), 公式如下:
\[
\mathcal{L}_{c y c}^{s}\left(s, s^{\prime \prime}\right)=\left\|s-s^{\prime \prime}\right\|_{1}
\]
总的loss为:
\[
\mathcal{L}\left(F_{S \rightarrow T}, F_{T \rightarrow S}, A_{S}, A_{T}, D_{S}, D_{T}\right)=\mathcal{L}_{a d v}^{s}+\mathcal{L}_{a d v}^{t}+\lambda_{c y c}\left(\mathcal{L}_{c y c}^{s}+\mathcal{L}_{c y c}^{t}\right)
\]
似乎到这里就结束了,其实还没有,作者发现翻译后的马现在看起来像斑马,但整体场景是假的,因为背景仍然显示了马生活在草地上的地方,而不是斑马生活在热带稀树草原上的地方,要向骗过鉴别器,注意力网络也会将背景凸显出来,这是我们不想看到的,具体事例如下图所示:

可以看到在30个epochs的时候,前景就差不多完全凸显出来了,所以作者采取了two-stage的策略,第一个stage按照上述loss训练\(F_{S}, F_{T}, A_{S}, A_{T}, D_{T}, D_{S}\), 在第二个stage的时候,中断$ A_{S}, A_{T}$的训练,只训练鉴别器和生成器,当然第二个stage的loss也要变化了。

第二个stage的掩模是固定的,生成器的输出根据掩模进行了阈值处理,处理公式如下:
\[
t_{\text { new }}=\left\{\begin{array}{ll}{t} & {\text { if } A_{T}(t)>\tau} \\ {0} & {\text { otherwise }}\end{array} \quad \text { and } \qquad s_{\text { new }}^{\prime}=\left\{\begin{array}{ll}{F_{S \rightarrow T}(s)} & {\text { if } A_{S}(s)>\tau} \\ {0} & {\text { otherwise }}\end{array}\right.\right.
\]
其中\(\tau\)设定为0.1,对应的对抗loss的公式就变为:
\[
\mathcal{L}_{a d v}^{s}\left(F_{S \rightarrow T}, A_{S}, D_{T}\right)=\mathbb{E}_{t \sim \mathrm{P}_{T}(t)}\left[\log \left(D_{T}\left(t_{\text { new }}\right)\right)\right]+\mathbb{E}_{s \sim \mathrm{P}_{S}(s)}\left[\log \left(1-D_{T}\left(s_{\text { new }}^{\prime}\right)\right)\right)
\]
总的训练过程如下所示:

作者提出的这种方法还是有限制的,对域之间的形状更改没有鲁棒性,如下所示:

可以看到狮子转成斑马域后,狮子的毛发形状特征缺失很多,而斑马转狮子一样,没有形状细节。

总的来说,这篇文章还是挺有意思的,值得写写笔记!

Unsupervised Attention-guided Image-to-Image Translation的更多相关文章

  1. (转)Attention

        本文转自:http://www.cosmosshadow.com/ml/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/2016/03/08/Attention.ht ...

  2. CVPR 2017 Paper list

    CVPR2017 paper list Machine Learning 1 Spotlight 1-1A Exclusivity-Consistency Regularized Multi-View ...

  3. 神经机器翻译(NMT)相关资料整理

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 简介 自2013年提出了神经机器翻译系统之后,神经机器翻译系统 ...

  4. Abstractive Summarization

    Sequence-to-sequence Framework A Neural Attention Model for Abstractive Sentence Summarization Alexa ...

  5. MATLAB批量打印输出600PPI的图像且图像不留空白

    一 前言 最近收到审稿人的修改意见,其中有三条:一条为<RC: There were only five images evaluated in the experiment, and I re ...

  6. (原)Show, Attend and Translate: Unsupervised Image Translation with Self-Regularization and Attention

    转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9333844.html 论文网址:https://arxiv.org/abs/1806.06195 在 ...

  7. 课程五(Sequence Models),第三周(Sequence models & Attention mechanism) —— 1.Programming assignments:Neural Machine Translation with Attention

    Neural Machine Translation Welcome to your first programming assignment for this week! You will buil ...

  8. 论文笔记之:DualGAN: Unsupervised Dual Learning for Image-to-Image Translation

    DualGAN: Unsupervised Dual Learning for Image-to-Image Translation 2017-06-12  21:29:06   引言部分: 本文提出 ...

  9. Unsupervised Image-to-Image Translation Networks --- Reading Writing

    Unsupervised Image-to-Image Translation Networks --- Reading Writing 2017.03.03 Motivations: most ex ...

  10. Phrase-Based & Neural Unsupervised Machine Translation基于短语非监督机器翻译

    1. 前言 本文介绍一种无监督的机器翻译的模型.无监督机器翻译最早是<UNSUPERVISED NEURAL MACHINE TRANSLATION>提出.这个模型主要的特点,无需使用平行 ...

随机推荐

  1. oracle 中 to_date 函数的用法

    常犯错的使用方法. to_date('2019-08-12 22:05:','yyyy-MM-dd HH24:mm:ss') Oracle中会引起错误:"ORA 01810 格式代码出现两次 ...

  2. fastjson对于yyyy-MM-dd HH:mm格式的反序列化问题

    原创GrayHJX 发布于2017-03-14 22:56:33 阅读数 6851  收藏 展开 问题:最近在工作中遇到这么一个问题:有个实体类,它有个date类型的属性,当在这个属性加上fastjs ...

  3. wpf 单例模式和异常处理 (原发布 csdn 2017-04-12 20:34:12)

    第一次写博客,如有错误,请大家及时告知,本人立即改之. 如果您有好的想法或者建议,我随时与我联系. 如果发现代码有误导时,请与我联系,我立即改之. 好了不多说,直接贴代码. 一般的错误,使用下面三个就 ...

  4. hash算法原理及应用漫谈【加图版】

    原文:https://blog.csdn.net/Tencent_TEG/article/details/103021226 提到hash,相信大多数同学都不会陌生,之前很火现在也依旧很火的技术区块链 ...

  5. MongoDB 高级教程

    MongoDB 关系 MongoDB 的关系表示多个文档之间在逻辑上的相互联系. 文档间可以通过嵌入和引用来建立联系. MongoDB 中的关系可以是: 1:1 (1对1) 1: N (1对多) N: ...

  6. PlayJava Day007

    今日所学: /* 2019.08.19开始学习,此为补档. */ 1.String类 实例化:①String name1 = "张三" ; ②String name2 = new ...

  7. Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析

    Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析 说明:Java生鲜电商平台中,由于服务进行了拆分,很多的业务服务导致了请求的网络延迟与性能消耗,对应的这些问题,我们 ...

  8. 自定义Vue组件打包、发布到npm以及使用

    本文将帮助:将自己写的Vue组件打包到npm进行代码托管,以及正常发布之后如何使用自己的组件. 本文讲述的仅仅是最基础的实现,其他复杂的操作需要非常熟悉webpack的相关知识,作者将继续学习. 先附 ...

  9. python 生成 树状结构

    树状结构: 字典里只有一个键值对, key 为根, 值为一个列表, 列表里的某个或多个元素可以再进行分支(分支还是列表) 比如: 邮件的发件人, 收件人, 转发关系树状结构 forwarding_re ...

  10. sqlmap的浅研究

    sqlmap注入工具: sqlmap 是一个开源的渗透测试工具,他可以自动的检测和利用SQL注入漏洞:sqlmap配置了一个强大功能的检测引擎,如果URL存在注入漏洞,它就可以从数据库中提取数据,完成 ...