原文
1 研究亮点
- 看绘画,学风格
- 确保生成的结果可被称为绘画(经典GAN可以实现)
- 生成难以进行风格归类的绘画——即新风格,体现创意
2 从模仿到创意
GAN的缺点:只能生成和已有图像相似的结果,缺乏创新性
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 结果
人工打分表示一些生成的画作甚至超过了艺术家的作品
体会
本文的网络结构其实并不复杂,亮点就在损失函数上
风格损失的定义很有启发意义,更多的需求就可以在这类损失函数上入手
引入多模态输入的话,或许可以实现情感化生成
本文生成的图片其实语义性很弱,更偏向于抽象画,应用领域偏向于艺术绘画。如果能够在产品领域得到应用,会更好