文章:ICM 2017
代码:TensorFlow实现;pytorch实现
深度学习与子空间聚类的结合。与普通的自编码器相比,增加了低维特征空间的子表示层(蓝色框框)。
表示
顾名思义,自表示,即一个样本可以被同属一个子空间的其他样本线性组合,同时要最小化线性组合系数来避免无穷多个解。
系数C不同的范数限制,产生了不同的自聚类方法。
稀疏子空间聚类:L1正则项
低秩子空间聚类:minrank(Z),进一步松弛为核范数最小化min‖Z‖∗(一个矩阵的秩等于其非零奇异值的个数。那么矩阵的秩最小化等价于矩阵的奇异值非零个数尽量少,进一步可以松弛为矩阵的所有奇异值的和尽量小)
将限制条件以正则项的形式加入目标函数,
目标函数
重构损失 + 系数正则项 + 自表示损失。
self-expressive layer
不带有非线性激活函数,没有bias的全连接线性层。自表示层的权重即为C,用于后续构建亲和力矩阵,因此损失函数进一步统一为:
训练
pre-training:训练没有自表示层的自编码器;
fine-tuning:加入自表示层,以预训练的结果作为初始值进行学习。
注意事项:训练中每个batch应该保持不变,因此是基于确定性动量的梯度法,而不是随机梯度。
构建亲和力矩阵affinity matrix