目录
概
以往的图片到图片的转换(或者图片到文字, 文字到图片等等), 往往需要成对的数据集, 本文提出了一种方法, 只需给出两种不同的数据集, 就能学习到风格之间的转换.
主要内容
倘若我们想将数据集\(X\)的图片的图片转换为\(Y\)类型的图片, 很自然的, 构造一个生成器\(G\)
\[G(X) : X \rightarrow Y,
\]
为了达到类型转换的目的, 需要添加一个判别器\(D_Y\), 判断输入是否为\(Y\)类型的图片. 如果仅仅如此是不够的, 因为
- 一个图片到另一个图片的转化是很多的;
- 仅仅有\(G\)和\(D_Y\)往往会导致mode collapse.
于是作者又引入了生成器\(F: Y \rightarrow X\)和判别器\(G_X\), 这是一个逆操作, 并且引入cycle一致损失,
\[\mathcal{L}_{cyc} (G, F) = \mathbb{E}_{x \sim p_{data(x)}} [\|F(G(x)) – x\|_1] + \mathbb{E}_{y \in p_{data}(y)} [\|G(F(y)) – y\|_1].
\]
即, 我们希望\(F(G(X)) \approx X\), \(G(F(Y)) \approx Y\), 非常直接却很有意思的想法.
最后的损失是
\[\mathcal{L}(G, F, D_X, D_Y) = \mathcal{L}_{GAN} (G, D_Y,X, Y) + \mathcal{L}_{GAN}(F, D_X, Y, X) + \lambda \cdot \mathcal{L}_{cyc} (G, F).
\]
注: 仅仅有\(\mathcal{L}_{cyc}\)也是不足以进行图片转换的, 这是很直观的.