BicycleGAN详解与实现

1

L_1

L1​损失。因此使用 GAN 的鉴别器来学习目标函数,以判断伪造的图像是否真实,并使用 VAE 作为生成器,生成的图像更清晰。如果忽略上图(c)中的图像

A

A

A,那就是 VAE-GAN ,由于以

A

A

A 为条件,其成为条件 cVAE-GAN 。训练步骤如下:

  1. VAE 将真实图片

B

B

B 编码为多元高斯分布的潜在编码,然后从它们中采样以创建噪声输入,此流程是标准的VAE工作流程;
2. 使用图像

A

A

A 作为条件及从潜矢量

z

z

z 采样的噪声用于生成伪图像

B

^

\hat B

B^.

训练中的数据流为

B

z

B

^

B->z->\hat B

B−>z−>B^ ( 图(c) 中的实线箭头),总的损失函数由三个损失组成:

  1. L

G

A

N

V

A

E

\mathcal L_{GAN}^{VAE}

LGANVAE​:对抗损失
2. L

1

V

A

E

\mathcal L_1^{VAE}

L1VAE​:

L

1

L_1

L1​重建损失
3. L

K

L

\mathcal L_{KL}

LKL​:

K

L

KL

KL散度损失

cLR-GAN(Conditional Latent Regressor GAN)

cVAE-GAN 中,对真实图像B进行编码,以提供潜在矢量的真实样本并从中进行采样。但是, cLR-GAN 的处理方式有所不同,其首先使用生成器从随机噪声中生成伪图像

B

^

\hat B

B^ ,然后对伪图像

B

^

\hat B

B^ 进行编码,最后计算其与输入随机噪声差异。
前向计算步骤如下:

  1. 首先,类似于 cGAN ,随机产生一些噪声,然后串联图像A以生成伪图像

B

^

\hat B

B^。
2. 之后,使用来自 VAE-GAN 的同一编码器将伪图像

B

^

\hat B

B^ 编码为潜矢量。
3. 最后,从编码的潜矢量中采样

z

^

\hat z

z^ ,并用输入噪声

z

z

z 计算损失。

数据流为

z

B

^

z

^

z-> \hat B -> \hat z

z−>B−>z ( 图(d) 中的实线箭头),有两个损失:

  1. L

G

A

N

\mathcal L_{GAN}

LGAN​:对抗损失
2. L

1

l

a

t

e

n

t

\mathcal L_1^{latent}

L1latent​:噪声 N(z) 与潜在编码之间的

L

1

L_1

L1​ 损失

通过组合这两个数据流,在输出和潜在空间之间得到了一个双映射循环。 BicycleGAN 中的 bi 来自双映射(双向单射),这是一个数学术语,简单来说其表示一对一映射,并且是可逆的。在这种情况下,BicycleGAN 将输出映射到潜在空间,并且类似地从潜在空间映射到输出。总损失如下:

l

o

s

s

B

i

c

y

c

l

e

=

L

G

A

N

V

A

E

L

G

A

N

λ

L

1

V

A

E

λ

l

a

t

e

n

t

L

1

l

a

t

e

n

t

λ

K

L

loss_{Bicycle}=\mathcal L_{GAN}^{VAE}+\mathcal L_{GAN}+λ\mathcal L_1^{VAE}+λ_{latent}\mathcal L_1^{latent}+λ_{KL}

lossBicycle​=LGANVAE​+LGAN​+λL1VAE​+λlatent​L1latent​+λKL​
  在默认配置中,

λ

=

10

λ = 10

λ=10、

λ

l

a

t

e

n

t

=

0.5

λ_{latent} = 0.5

λlatent​=0.5、

λ

l

a

t

e

n

t

=

0.01

λ_{latent} = 0.01

λlatent​=0.01。

BicycleGAN实现

BicycleGAN 中有三种类型的网络——生成器,鉴别器和编码器。为 cVAE-GANcLR-GAN 使用单独的鉴别器可以提高图像质量,因此我们将使用四个网络-生成器,编码器和两个鉴别器。

img
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

在默认配置中,

λ

=

10

λ = 10

λ=10、

λ

l

a

t

e

n

t

=

0.5

λ_{latent} = 0.5

λlatent​=0.5、

λ

l

a

t

e

n

t

=

0.01

λ_{latent} = 0.01

λlatent​=0.01。

BicycleGAN实现

BicycleGAN 中有三种类型的网络——生成器,鉴别器和编码器。为 cVAE-GANcLR-GAN 使用单独的鉴别器可以提高图像质量,因此我们将使用四个网络-生成器,编码器和两个鉴别器。

[外链图片转存中…(img-igFi10Sw-4702036757017)]
[外链图片转存中…(img-vCAK3lv7-4702036757018)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值