Unsupervised Attention-guided Image-to-Image Translation
这是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的更多相关文章
- (转)Attention
本文转自:http://www.cosmosshadow.com/ml/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/2016/03/08/Attention.ht ...
- CVPR 2017 Paper list
CVPR2017 paper list Machine Learning 1 Spotlight 1-1A Exclusivity-Consistency Regularized Multi-View ...
- 神经机器翻译(NMT)相关资料整理
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 1 简介 自2013年提出了神经机器翻译系统之后,神经机器翻译系统 ...
- Abstractive Summarization
Sequence-to-sequence Framework A Neural Attention Model for Abstractive Sentence Summarization Alexa ...
- MATLAB批量打印输出600PPI的图像且图像不留空白
一 前言 最近收到审稿人的修改意见,其中有三条:一条为<RC: There were only five images evaluated in the experiment, and I re ...
- (原)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 在 ...
- 课程五(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 ...
- 论文笔记之:DualGAN: Unsupervised Dual Learning for Image-to-Image Translation
DualGAN: Unsupervised Dual Learning for Image-to-Image Translation 2017-06-12 21:29:06 引言部分: 本文提出 ...
- Unsupervised Image-to-Image Translation Networks --- Reading Writing
Unsupervised Image-to-Image Translation Networks --- Reading Writing 2017.03.03 Motivations: most ex ...
- Phrase-Based & Neural Unsupervised Machine Translation基于短语非监督机器翻译
1. 前言 本文介绍一种无监督的机器翻译的模型.无监督机器翻译最早是<UNSUPERVISED NEURAL MACHINE TRANSLATION>提出.这个模型主要的特点,无需使用平行 ...
随机推荐
- Elastic:如何在一个机器上同时模拟多个node
Elastic:如何在一个机器上同时模拟多个node /bin/elasticsearch -E node.name=node1 -E cluster.name=my-application -E p ...
- .net 通过反射实现两个相同结构实体类的转换
public static T2 CopyToModel<T1, T2>(T1 source) { T2 model = default(T2); PropertyInfo[] pi = ...
- 湖南省web应用软件(中慧杯)
湖南省web应用软件 写这篇博客已经是比完赛的第四天了,我还记得那天下着小雨.我们早早的到了比赛的现场抽检机器,在比赛前一天我很是激动.我还记得我们从学校,去株洲的时候我们的领导来给我加油,特别是我的 ...
- 13. 罗马数字转整数(C#)
看到这道题,存在键值对,所以先建个泛型字典,把键值填进去. 由于这道题存在两个字符表示一个数字的情况,所以在for循环的时候判断一下,看看当前字符串中循环到的字符是否和下一个字符能够组成存在在字典里的 ...
- node开发基础概念
1.以严格模式运行一个js文件 node --use_strict xxx.js 2.退出node交互模式 连续按两次Ctrl+C. 3,node.js的模块不支持ES6的export.import规 ...
- [转]The Regular Expression Object Model
本文转自:https://docs.microsoft.com/en-us/dotnet/standard/base-types/the-regular-expression-object-model ...
- Android框架Volley之:利用Imageloader和NetWorkImageView加载图片
首先我们在项目中导入这个框架: implementation 'com.mcxiaoke.volley:library:1.0.19' 在AndroidManifest文件当中添加网络权限: < ...
- 使用android日志工具
Log的级别? 日志级别按照高低排序为:ERROR,WARN,INFO,DEBUG,VERBOSE, 日志输出: Log.e()输出ERROR级别的日志信息 Log.w()输出WARN,ERROR级别 ...
- Python—版本和环境的管理工具(Pipenv)
pipenv简介 虚拟环境本质是一个文件,是为了适应不同的项目而存在.pipenv相当于virtualenv和pip的合体. 整合了 pip+virtualenv+Pipfile,能够自动处理好包的依 ...
- 11. ==和equals方法 & 常量池
一.使用==来判断两个变量是否相等 1. 如果两个变量是基本类型变量,且都是数值类型,则只要两个变量的值相等,就将返回true 2. 如果两个变量是引用类型变量,则只有它们指向同一个对象时,才返回tr ...