链接: https://arxiv.org/abs/1809.03627v2
ClusterGAN 是一个 GAN 的变体, 通过使得生成样本反推的隐变量在隐空间中具有明显的簇的特征, 来提升 GAN 的性能.
相关工作
InfoGAN [4] 是一个研究在隐空间中进行可解释性的表征学习的开创新方法, 目标是创建可解释性的和可解的隐变量. 虽然 InfoGAN 使用了离散的隐变量, 但它不是为聚类设计的.
方法
本文主要贡献: 1. 利用混合离散和连续型变量的 隐变量来创建一个不平滑的集合形状. 2. 提出一种新的反向传播算法, 可以适应离散连续的混合变量, 以及一个确切的逆映射网络, 来得到给定数据对应的隐变量. 3. 联合训练 GAN 和逆映射网络, 使得投影空间的几何距离反映出变量的几何距离.
上图是 ClusterGAN 的结构, 与标准的 GAN 相比, 它多了编码网络 E, 编码样本来获得隐变量和类别. 生成器的输入除了隐变量
Z
n
Z_n
Zn, 还嵌入了随机生成的 one-hot 编码的类别变量.
优化目标:
min
Θ
G
,
Θ
E
max
Θ
D
E
x
∼
P
x
r
q
(
D
(
x
)
)
+
E
z
∼
P
z
q
(
1
−
D
(
G
(
z
)
)
)
+
β
n
E
z
∼
P
z
∥
z
n
−
E
(
G
(
z
n
)
)
∥
2
2
+
β
c
E
z
∼
P
z
H
(
z
c
,
E
(
G
(
z
c
)
)
\begin{aligned} \min _{\Theta_{G}, \Theta_{E}} \max _{\Theta_{D}} \underset{x \sim \mathbb{P}_{x}^{r}}{\mathbf{E}} q(\mathcal{D}(x)) & +\underset{z \sim \mathbb{P}_{z}}{\mathbf{E}} q(1-\mathcal{D}(\mathcal{G}(z))) \\ & + \beta_{n} \underset{z \sim \mathbb{P}_{z}}{\mathbf{E}}\left\|z_{n}-\mathcal{E}\left(\mathcal{G}\left(z_{n}\right)\right)\right\|_{2}^{2} \\ & + \beta_{c} \underset{z \sim \mathbb{P}_{z}}{\mathbf{E}} \mathcal{H}\left(z_{c}, \mathcal{E}\left(\mathcal{G}\left(z_{c}\right)\right)\right. \end{aligned}
ΘG,ΘEminΘDmaxx∼PxrEq(D(x))+z∼PzEq(1−D(G(z)))+βnz∼PzE∥zn−E(G(zn))∥22+βcz∼PzEH(zc,E(G(zc))
q
(
⋅
)
q(\cdot)
q(⋅) 是质量函数(quality function), 标准 GAN 使用的是
q
(
x
)
=
log
(
x
)
q(x)=\log(x)
q(x)=log(x).
z n , z c z_n, z_c zn,zc 分别是连续型的隐变量和离散性的类别变量(one-hot 编码). E \mathcal{E} E 是编码器, 用于将样本编码为隐变量. H ( ⋅ , ⋅ ) \mathcal{H}(\cdot,\cdot) H(⋅,⋅) 是交叉熵损失函数.
将样本和标签解码为隐变量的算法如下:
训练生成器和编码器的伪代码如下:
注意: 此处有个错误之处, 前面的优化目标以及伪代码中的生成器输入应该为 ( z n , z c ) (z_n,z_c) (zn,zc).
参考
[4] Xi Chen, Yan Duan, Rein Houthooft, John Schulman, Ilya Sutskever, and Pieter Abbeel. Infogan: Interpretable representation learning by information maximizing generative adversarial nets. In Advances in Neural Information Processing Systems, pages 2172{2180, 2016.
补充
聚类评价指标
https://blog.csdn.net/Avery123123/article/details/103903767
本人才疏学浅, 如有遗漏或错误之处, 请多多指教!