标题(paper):Deep Subspace Clustering Networks
期刊 + 时间 + 有无源代码: NIPS’17: Proceedings of the 31st International Conference on Neural Information Processing Systems + December 2017 Pages 23–32 + 有
作者: Pan Ji, Tong Zhang, Hongdong Li, Mathieu Salzmann, Ian Reid
方法名及缩写: deep subspace clustering networks (DSC-Nets) (based on deep auto-encoders)
算法框架: 首先不加自表达层进行网络参数预训练。然后利用梯度下降(确定方向而不是随机)进行损失函数优化,其中网络参数使用Adam算法调整。
流程图 :
网络结构:堆叠编码器+自表达层+堆叠解码器
i t h i^{th} ith层的编码层有 n i n_i ni个核大小为 k i × k i k_i \times k_i ki×ki的通道,权值参数的数量为 k i 2 n n − 1 n i k^2_i n_{n-1} n_i ki2nn−1ni ( n 0 = 1 n_0=1 n0=1).
网络全部的权值参数数量为: ∑ i 2 k i 2 n n − 1 n i \sum_i2k^2_i n_{n-1} n_i ∑i2ki2nn−1ni, 对于 N N N个输入图像,自表达层的参数个数为 N 2 N^2 N2
主要创新点: 在自编器编码层和解码层中间,提出了一种新的自表达层的方法。
动机: 1、大多数子空间聚类方法基于线性映射的方式不合理。2、一般kernel方法自己选哪种kernel,可能效果好但是没有明确理论原因。
目标函数:
L
(
Θ
,
C
)
=
1
2
∥
X
−
X
^
Θ
∥
F
2
+
λ
1
∥
C
∥
p
+
λ
2
2
∥
Z
Θ
e
−
Z
Θ
e
C
∥
F
2
s
.
t
.
(
d
i
a
g
(
C
)
=
0
)
L(\Theta,\mathbf{C})=\frac12\|\mathbf{X}-\hat{\mathbf{X}}_\Theta\|_F^2+\lambda_1\|\mathbf{C}\|_p+\frac{\lambda_2}2\|\mathbf{Z}_{\Theta_e}-\mathbf{Z}_{\Theta_e}\mathbf{C}\|_F^2\quad\mathrm{s.t.}\quad(\mathrm{diag}(\mathbf{C})=\mathbf{0})
L(Θ,C)=21∥X−X^Θ∥F2+λ1∥C∥p+2λ2∥ZΘe−ZΘeC∥F2s.t.(diag(C)=0)
Θ
\Theta
Θ是网络参数
Θ
e
\Theta_e
Θe编码器参数,
Θ
d
\Theta_d
Θd解码器参数,
C C C自表达层系数矩阵
p p p是范数,可以是 l 1 l_1 l1, l 2 l_2 l2等范数约束
为了方便更新,上述目标函数被改写(本质同一个):
L
~
(
Θ
~
)
=
1
2
∥
X
−
X
^
Θ
~
∥
F
2
+
λ
1
∥
Θ
s
∥
p
+
λ
2
2
∥
Z
Θ
e
−
Z
Θ
e
Θ
s
∥
F
2
s
.
t
.
(
diag
(
Θ
s
)
=
0
)
,
\tilde{L}(\tilde{\Theta})=\frac{1}{2}\|\mathbf{X}-\hat{\mathbf{X}}_{\tilde{\Theta}}\|_{F}^{2}+\lambda_{1}\|\Theta_{s}\|_{p}+\frac{\lambda_{2}}{2}\|\mathbf{Z}_{\Theta_{e}}-\mathbf{Z}_{\Theta_{e}}\Theta_{s}\|_{F}^{2}\quad\mathrm{s.t.}\quad\left(\operatorname{diag}(\Theta_{s})=\mathbf{0}\right),
L~(Θ~)=21∥X−X^Θ~∥F2+λ1∥Θs∥p+2λ2∥ZΘe−ZΘeΘs∥F2s.t.(diag(Θs)=0),
Θ
~
\tilde{\Theta}
Θ~是网络参数
Θ s \Theta_s Θs就是 C C C
第一项:自编码器的损失函数
第二+第三项:自表达层的损失函数
优化步骤: (网络训练)
1、首先在所有数据上预训练深度自编码器,而不使用自表达层。然后我们使用训练好的参数来初始化网络的编码器和解码器层。
2、在此之后,在微调阶段,使用所有数据构建一个大批,以使用梯度下降方法最小化(4)中定义的损失 L(Θ)。具体来说,我们使用Adam,一种基于自适应动量的梯度下降方法来最小化损失,在所有实验中我们将学习率设置为1.0 × 10−3。由于我们总是在每个训练历元中使用相同的批处理(优化策略是基于确定性动量的梯度方法而不是随机梯度方法。)
注解:(优缺点 + 随便想记的内容 )
1、基于深度自编码器实现的方法,在本文中使用了卷积自编码器,但是作者在文中提到也可以用全连接的自编码器代替。
2、代码暂时没看,看了可能更新一点其他内容。
3、DSC-Net-L1 (
l
1
l_1
l1范数约束) DSC-Net-L2 (
l
2
l_2
l2范数约束)