论文阅读笔记(8):Structured Sparse Subspace Clustering: A Joint Affinity Learning and Subspace Clustering Framework,结构化稀疏子空间聚类:一种联合affinity和子空间聚类框架
介绍
在本文中,我们试图将这两个独立的阶段整合到一个统一的优化框架中。一个重要的观察结果是:最佳的子空间聚类通常从次优的affinity矩阵得到。换句话说,谱聚类步骤可以纠正affinity矩阵中的错误,并可以看作是通过去噪得到额外信息的过程。因此,如果我们适当反馈信息增益,它可能有助于自我表达模型产生更好的affinity矩阵。
在本文中,我们提出了一种新的子空间聚类方法,称为结构化稀疏子空间聚类(SSSC或S3C),它集成了计算稀疏表示矩阵和将谱聚类应用到统一优化框架中的两个独立阶段。该方法基于最小化一个新的、用 ℓ 1 \ell_1 ℓ1范数结构化的子空间,它使用segment依赖项来augment ℓ 1 \ell_1 ℓ1范数。产生的优化问题在交替最小化框架中解决,其中谱聚类的输出用于定义子空间segment矩阵,然后在下一次迭代中用于对表达矩阵的重新加权。
我们获得了S3C框架的两种不同实现:
-
Hard S3C: 在这种情况下,谱聚类产生的分割(即,在k-均值步骤之后)用于构造二进制分割矩阵,以便在下一次迭代中重新加权表示矩阵。
-
Soft S3C: 在这种情况下,嵌入谱聚类产生的数据用于构造连续实值分割矩阵,以便在下一次迭代中重新加权表示矩阵。这种扩展不仅带来了更具原则性的优化框架,而且还具有更好的经验性能,因为它从以前的迭代中捕获了更多的信息。
此外,我们将S3C框架扩展为约束S3C(CS3C)框架,这使我们能够借助部分pairwise的边信息(例如,关于哪些点属于同一组,哪些点不属于同一组的先验知识)形成子空间聚类。
提议的方法
子空间聚类需要解决的问题在之前已经多次叙述,因此不再赘述。
这个问题的结果是希望得到一个 N × n N\times n N×n的分割矩阵 Q Q Q,即 N N N个数据点作为行,聚类出来的 n n n个子空间作为列,那么第 i i i行第 j j j列的元素(一般是0或1的二进制)即表示第 i i i个数据点(也就是数据矩阵 X X X的第 i i i列)是否属于第 j j j个子空间,如果是就为1,否则为0。
显然,每个数据点应当只能被指派到某一个数据点,就算用浮点表示概率的时候也应当概率和为1,故有:
Q
1
=
1
Q{\bf 1}={\bf 1}
Q1=1
又知道所有
n
n
n个子空间都应该被指派有至少一个数据点,于是每个列上都有至少一个非零元素,那么:
r
a
n
k
(
Q
)
=
n
rank(Q)=n
rank(Q)=n
最后有效分割矩阵的集合组成的空间:
聚类问题
关于自表达模型和采用的不同正则化在此也不再赘述。在得到了自表达系数矩阵
C
C
C后,计算:
A
=
1
2
(
∣
C
∣
+
∣
C
⊤
∣
)
A=\frac{1}{2}(|C|+|C^\top|)
A=21(∣C∣+∣C⊤∣)
这是因为,数据完整性矩阵A 表示了成对数据点的相似性,也可解释为成本矩阵,其中每个元素
A
i
A_i
Ai是点
x
i
x_i
xi和
x
j
x_j
xj划分到两个不同类的成本。给定affinity矩阵
A
A
A,对其的聚类是通过找到一个分割矩阵Q来实现的,该分割矩阵Q应当最小化如下成本和:
其中
q
(
i
)
\textbf q^{(i)}
q(i)和
q
(
j
)
\textbf q^{(j)}
q(j)是矩阵
Q
Q
Q的不同列。通常
Q
∈
Q
Q\in \mathcal Q
Q∈Q可被relax到
Q
Q
⊤
=
I
QQ^\top=I
QQ⊤=I。最后在
Q
Q
Q上执行
k
k
k-means得到二进制的分割矩阵。
以前的方法采用的子空间聚类的通用框架将过程分为两个独立的步骤:
a)计算表示矩阵C,依此得到A
b)将谱聚类应用于affinity矩阵A。
不幸的是,它未能利用这两个步骤之间的相关性。
请注意,表示**表达矩阵
C
C
C和分割矩阵
Q
Q
Q**都试图捕获数据的分段。为了量化矩阵
C
C
C和
Q
Q
Q之间的相互作用,我们提出了C关于Q的范数概念,即
请注意,优化(4)中的目标是搜索一个矩阵Q,该矩阵Q以固定值最小化分割成本,并且a从表示矩阵C中定义,而表示矩阵C又通过搜索优化(1)中最小化正则化项的所有可能表示矩阵来获得。因此,我们可以将这两个优化程序结合起来,在联合优化框架中同时搜索Q和C。准确地说,我们推导了子空间聚类的联合优化框架,如下所示:
这个优化问题可以通过交替地计算
(
C
,
E
)
(C,E)
(C,E)和
Q
Q
Q解决。这是因为当给定
Q
Q
Q时这是一个对于
(
C
,
E
)
(C,E)
(C,E)的凸优化问题,这可以通过交替方向乘子算法(alternating direction method of multipliers, ADMM)求解;而对于给定
(
C
,
E
)
(C,E)
(C,E),
Q
Q
Q可以通过谱聚类近似求解。
S 3 ^3 3C
对于使用
ℓ
1
\ell_1
ℓ1范数的子空间聚类,
因此,根据分割矩阵Q,当点
i
i
i和
j
j
j位于不同的子空间时,S3C的
ℓ
1
\ell_1
ℓ1范数可被视为通过对
C
i
j
C_ij
Cij的额外惩罚。通过这样做,Q中的分割信息被纳入保子空间解的搜索中。我们选择使用
ℓ
1
\ell_1
ℓ1正则化的原因有两个:
- 这导致了加权l1范数形式的组合范数。稍后我们将看到,这有助于在解决优化问题时更新系数矩阵C。
- SSC建立的许多理论结果已经表明当子空间独立或仿射,以及当数据被异常值破坏、被噪声污染并使用降维进行预处理]时,SSC能够找到保持子空间的解。
对于
∣
∣
C
∣
∣
1
,
Q
||C||_{1,Q}
∣∣C∣∣1,Q这样的联合范数,我们可以将(7)中用于子空间聚类的统一优化框架重新表述如下:
用ADMM求解S 3 ^3 3C
在计算子空间稀疏表示和应用谱聚类之间进行交替,即:
- Find C and E given Q by solving a subspace structured sparse representation problem.
- Find Q given C and E by spectral clustering.
具体而言,在谱聚类中,放松约束 Q ∈ Q Q\in \mathcal Q Q∈Q以便从图拉普拉斯矩阵的奇异值分解计算最优的Q,然后再应用 k k k-means算法将Q量化到有效分割集 Q \mathcal Q Q中。我们把这个过程称为hard-S 3 ^3 3C。
在hard-S 3 ^3 3C中,二进制分割矩阵 Q Q Q用于在下一次迭代中重新加权 C C C的更新。虽然使用二进制分割矩阵Q在概念上很简单,但它可能无法捕获聚类结果中的详细信息。
请注意,有些数据点更容易分割,因此它们的聚类结果更可靠,而有些数据点更难分割,因此它们的聚类结果不太可靠。当将聚类结果量化为二进制分割矩阵Q时,此类详细的置信度或不确定性信息将被忽略。
因此,我们建议使用实值矩阵Q,而不是使用k-均值对Q再进行重新加权C的更新。我们把这个过程称为soft-S 3 ^3 3C。连续实值Q携带了先前聚类结果的更详细信息,从而平滑地重新加权表示矩阵C的更新。这有利于产生更好的聚类结果。
第一步:子空间稀疏表示
如前所示,对于给定的分割阵Q,更新C和E就是优化(8)和(9),它可以等价写为:
其中 A A A可以看做一种对 C C C的放松,C不一定对角元素为零,但它接近对角为零的 A A A,当diag( C C C) = 0 =0 =0时 C = A C=A C=A
于是,这种新的优化形式可以使用的ADMM算法解决,对应的增广拉格朗日函数(augmented lagrangian)形式为:
增广拉格朗日方法在拉格朗日方法的基础上添加了二次惩罚项,如公式的最后一行所示
其中, Y Y Y和 Z Z Z为拉格朗日乘子矩阵。为了找到该函数的鞍点(saddle point),我们在保持其它变量不变的情况下依次更新 C , A , E , Y , Z C,A,E,Y,Z C,A,E,Y,Z,具体步骤如下
-
更新 C C C:
通过解决如下问题:
其中
在第t次迭代后 C C C的闭式解可以如下求出:
其中 C ~ ( t + 1 ) \tilde C^{(t+1)} C~(t+1)的元素通过 U ( t ) U^{(t)} U(t)的元素计算得到
其中其中 S τ ( ⋅ ) \mathcal S_τ(·) Sτ(⋅)是收缩阈值算子。也就是说,我们不是用一个常量值对矩阵 U ( t ) U^{(t)} U(t)的所有元素进行统一软阈值化,而是用一个不同的值对每个元素进行阈值化,且该值取决于 Θ i j \Theta_{ij} Θij。 -
更新 A A A:
此时 C C C已更新完并得到 C ( t + 1 ) C^{(t+1)} C(t+1),此时它的对角元素已经为零
它的解为:
在这里我给出自己的推导过程
3. 更新
E
E
E:
可以看到,E的出现位置和C几乎一致,故求解的形式也和C一致
其中:
如果我们对E也是用
ℓ
1
\ell_1
ℓ1范数,那么解的形式就和C一样了:
4. 更新拉格朗日乘子:
把其他变量当常数挨个求导就完了,由于拉格朗日乘子不出现于2次项,所以好求的,简单的gradient ascent即可
以上步骤总结为算法1:
第二步:谱聚类
给定了C和E后,
∣
∣
C
∣
∣
1
||C||_1
∣∣C∣∣1和
∣
∣
E
∣
∣
ϵ
||E||_\epsilon
∣∣E∣∣ϵ也确定了,因此,公式9的联合优化问题就退化为:
利用子空间范数的定义,上述问题是如下的谱聚类问题:
其中,C可以得到affinity矩阵A,然后
L
‾
\overline L
L是A的图拉普拉斯矩阵,即:
其中D (degree matrix) 是 diagonal matrix,其对角元素
D
‾
j
j
=
∑
i
A
‾
i
j
\overline D_{jj}=\sum_i\overline A_{ij}
Djj=∑iAij,并将
Q
∈
Q
Q\in \mathcal Q
Q∈Q的约束放松到
Q
⊤
D
‾
Q
=
I
Q^\top \overline DQ=I
Q⊤DQ=I从而得到:
具体来说,通过进行
Q
~
=
D
‾
1
2
Q
\tilde Q=\overline D^{\frac{1}{2}}Q
Q~=D21Q的拆分,可以得到约束形如
Q
~
⊤
Q
=
I
\tilde Q^\top Q=I
Q~⊤Q=I的优化,中间的图拉普拉斯矩阵变成了
D
−
1
2
L
‾
D
−
1
2
D^{-\frac{1}{2}}\overline L D^{-\frac{1}{2}}
D−21LD−21
在这里,
Q
~
\tilde Q
Q~的解由
D
−
1
2
L
‾
D
−
1
2
D^{-\frac{1}{2}}\overline L D^{-\frac{1}{2}}
D−21LD−21的最小的
n
n
n个特征向量给出。
到此hard和soft S
3
^3
3C之间出现分歧:hard-S
3
^3
3C会对
Q
~
\tilde Q
Q~用
k
k
k-means使其元素为0或1,然后用变换后的
Q
~
\tilde Q
Q~构建二进制子空间结构矩阵:
Θ
i
j
=
1
2
∣
∣
q
(
i
)
−
q
(
j
)
∣
∣
2
2
∈
{
0
,
1
}
\Theta_{ij}=\frac{1}{2}||\textbf q^{(i)}-\textbf q^{(j)}||_2^2\in\{0,1\}
Θij=21∣∣q(i)−q(j)∣∣22∈{0,1}
若使用soft-S
3
^3
3C,则只对
Q
~
\tilde Q
Q~进行单位
ℓ
2
\ell_2
ℓ2标准化(即
ℓ
2
\ell_2
ℓ2单位球面),然后:
Θ
i
j
=
1
2
∣
∣
q
(
i
)
−
q
(
j
)
∣
∣
2
2
∈
[
0
,
2
]
\Theta_{ij}=\frac{1}{2}||\textbf q^{(i)}-\textbf q^{(j)}||_2^2\in{[0,2]}
Θij=21∣∣q(i)−q(j)∣∣22∈[0,2]
算法总结
S
3
^3
3C算法在使用算法1求解稀疏系数矩阵和误差矩阵
(
C
,
E
)
(C,E)
(C,E)和使用谱聚类求解Q之间交替进行。为清楚起见,我们总结了算法2来描述解决联合优化问题的过程。由于affinity矩阵是稀疏的,算法2的主要计算负担是解决优化(13)。具体而言,计算成本为
O
(
T
1
T
2
(
N
3
+
D
N
2
)
)
O(T_1T_2(N^3+DN^2))
O(T1T2(N3+DN2)),这是由于在更新A时使用(17)进行矩阵求逆和矩阵乘法,其中
T
1
T_1
T1是使用ADMM求解的迭代次数,
T
2
T_2
T2是算法2中的外部迭代次数。