Deep Adversarial Subspace Clustering 理解
翻译链接:https://blog.csdn.net/shaodongheng/article/details/82932612
主要理一下过程,仅个人见解。
以上图的模型结构为例:
假设输入的图象集合为,则通过卷积自动编码器(Encoder)之后得到,作为自我表示层的输入得到输出,是自我表示层的权重矩阵,即自我表示系数矩阵。同时得到affinity matrix ,然后利用NCut算法和affinity matrix 聚类,得到K个聚类C。
自表示层损失:
,即共n个样本表示,每个样本表示d维。
是自我表示系数矩阵。
Real data:
聚类有个样本,采样层计算聚类中每个样本的对应到上的映射残差
为聚类中的第 j 个样本的样本表示。然后选择具有较小残差的个“真实”数据,。
Fake data:
对于每个具有个样本的簇,采样层先从(0,1]均匀分布中采样个随机向量,然后生成个假数据
为标量,即向量 的第 j 项,共项;为聚类 的第 j 个样本表示,共个样本表示;该式即表示的每一项与聚类 中的对应样本表示相乘,并求和(线性组合),从而得到对应的假数据 ,共得到个假数据。
的初始化:
,的大小在不同数据集有不同定义。是鉴别器的参数矩阵。使用簇中的表示,通过QR分解来计算。即在由构成的特征矩阵上使用QR分解来计算其对应的 ,即每个簇的样本表示矩阵都计算一个,应该是QR的Q矩阵。 的每一列都服从
的更新和鉴别器损失:
,是一个小的正参数。
,是大于0的常数
,是大于0的常数,是单位矩阵
鉴别器最终的训练目标是:
DASC中的鉴别器可以由两个全连接层的K个线性网络实现,即每个聚类对应一个线性网络。 此外,在每个网络中,两个层共享它们的参数。 对于输入数据,第一层和第二层的输出分别是和。 通过最小化鉴别器损失,可以学习参数 。
生成器损失:
最终的损失函数:
G的最终训练目标是将这种对抗性损失与样本重建损失和自我表示损失相结合(自动编码器,自我表示层,自动解码层都属于生成器)
表示所有的输入样本,表示自编码器-解码器对的重构后的表示。这里表示生成器的参数,包括编码器和解码器中的参数,以及自表达层中的表示系数。 第二项表示自动编码器-解码器的重建损失,而后两项对应于等式(2)中的自我表示损失。 在上采用F-范数惩罚。
生成器和鉴别器更新:
在每个时期内异步更新D和G,分别为5次和1次