ICCC2017 CAN创意对抗网络

原文

CAN: Creative Adversarial Networks Generating “Art” by Learning About Styles and Deviating from Style Norms

1 研究亮点

  • 看绘画,学风格
  • 确保生成的结果可被称为绘画(经典GAN可以实现)
  • 生成难以进行风格归类的绘画——即新风格,体现创意

2 从模仿到创意

GAN的缺点:只能生成和已有图像相似的结果,缺乏创新性

CAN模型

2.1 先看损失函数

$$
\begin{aligned}
\min_G \max_D V(D,G) =& \mathbb{E}_{x,\hat{c}\sim p_{data}} [\log D_r(x) + \log D_c(c=\hat{c}|x)] + \\
& \mathbb{E}_{z\sim p_z} [\log(1-D_r(G(z))) - \\
& \sum_{k=1}^K \frac {1}{K} \log(D_c(c_k|G(z))+ (1-\frac {1}{K}) \log(1-D_c(c_k|G(z))) ]
\end{aligned}
$$

2.2 判别器

一个中心,两个基本点

  • 一个中心
    • 通过带风格标签(如巴洛克、印象派等)的绘画数据库,学习区分风格
  • 两个基本点:
    • 真品鉴定: $D_r(x)$
    • 风格分类: $D_c(c=\hat{c}|x)$

2.3 生成器

很惭愧,做了三件小事

  • 从随机输入生成图像
  • 伪造:$D_r(G(z))$(以上都同GAN)
  • 风格模糊化(即新风格):$-\sum_{k=1}^K \frac {1}{K} \log(D_c(c_k|G(z))+ (1-\frac {1}{K}) \log(1-D_c(c_k|G(z)))$

    风格模糊化中,使用了$D_c$和均匀分布的交叉熵,因为交叉熵在分类越确定时惩罚力度越大

3 架构

采用DCGAN的结构,在生成器中,随机噪声z经过多层反卷积转化为256*256的RGB图像(第一个应该是$4 × 4 × 2048$吧,不知是不是论文里写错了,公式和文本描述不一样);

$$
\begin{aligned}
z \in \mathbb R^{100} & → 4 × 4 × 1024 → 8 × 8 × 1024 → 16 × 16 × 512 → 32×32×256 \\
& →64×64×128→128×128×64→256×256×3
\end{aligned}
$$

在判别器中,两个分类器共用6个卷积层,这些以LeakyReLU为激活函数的公共卷积层将输入图片转化为4*4*512的feature map。真假分类器使用一层fc将feature map转化为真品的概率$D_r(c|x)$,风格分类器使用3层fc($1024→512→K$)将feature map转化为多分类的概率$D_c(c=\hat{c}|x)$

4 算法

  • 参数初始化为正态分布$N(0,0.02)$
  • mini-batch大小128
  • 学习率0.0001
  • LeakyReLU负数端斜率0.2
  • Batch-Nomalization
  • Adam优化器迭代100次
  • 使用crop数据增强,上下左右中5处90%裁剪
  • 数据集:WikiArt

Input: mini-batch图像x,相应的风格标签c, #迭代步 S
for n=1 to S do
$z\sim \mathcal N(0,1)^Z$ //绘制随机噪声
$\hat{x} ← G(z)$ //生成图像
$s^r_D ← D_r(x)$ //真画,真/假损失
$s^c_D ← D_r(\hat{c}|x)$ //真画,风格损失
$s^f_G ← D_r(\hat{x})$ //假画,真/假损失
$s^c_G ← \sum_{k=1}^K \frac {1}{K} \log(D_c(c_k|G(z))+ (1-\frac {1}{K}) \log(1-D_c(c_k|G(z)))$ //假画,风格损失
$\mathcal L_D ← \log (s^r_D)+ log(s^c_D)+\log (1-s^f_G)$ //判别器损失函数
$D ← D-\alpha \partial \mathcal L_D/\partial D$ //更新判别器
$\mathcal L_D ← \log (s^f_D)-s^c_G$ //生成器损失函数
$G ← G-\alpha \partial \mathcal L_G/\partial G$ //更新生成器
end for


5 结果

CAN生成的结果

人工打分表示一些生成的画作甚至超过了艺术家的作品


体会

本文的网络结构其实并不复杂,亮点就在损失函数上

风格损失的定义很有启发意义,更多的需求就可以在这类损失函数上入手

引入多模态输入的话,或许可以实现情感化生成

本文生成的图片其实语义性很弱,更偏向于抽象画,应用领域偏向于艺术绘画。如果能够在产品领域得到应用,会更好