SpectralNet
背景
在无监督学习中,谱聚类是一种能够学习非凸流形的方法,然而它有两个局限性:一是可扩展性差,不能适用于数据量较大时场景;二是out-of-sample,即当遇到非训练样本时无法处理。
为了解决上述两个问题,该文提出了一种深度学习的方法SpectralNet. 其要点
- 该文提出一种受限随机优化的方法(constrained stochastic optimization),随机优化使其能够扩展到大的数据集;限制(constraints)是通过一个输出层实现,将输出保持正交(orthogonal)。
- 神经网络方法自然将其应用到out-of-sample上。
- 利用孪生网络(Siamese network)的方法学习样本之间的相似性,获得比传统基于欧式距离的方法更好的效果
神经网络用于谱聚类,分为两个部分,一部分神经网络用于数据降维,即训练得到一个map F θ : R d → R k F_{\theta}: \mathbb R^d \rightarrow \mathbb R^k Fθ:Rd→Rk;另一个部分用于分类,即函数c:$\mathbb R^k \rightarrow {1,2,…,k} $.
整个SpectralNet的训练可分为三个部分:
- 通过一个孪生网络(Siamese network),利用给定的距离度量,无监督学习affinity
- 通过无监督学习优化一个谱聚类的目标 F θ F_{\theta} Fθ, 并且保证正交性orthogonality
- 通过在降维的空间,学习聚类的类别
方法
网络结构
目标是学习一个投射函数 y = F θ ( x ) y = F_{\theta}(x) y=Fθ(x),使得下列式子最小:
L = E [ w ( x , x ′ ) ∣ ∣ y − y ′ ∣ ∣ 2 ] L = \mathbb E[w(x, x')||y-y'||^2] L=E[w(x,x′)∣∣y−y′∣∣2]
其中 y , y ′ ∈ R k y, y' \in \mathbb R^k y,y′∈Rk, 期望是关于数据集 D D D的i.i.d.的元素 ( x , x ′ ) (x, x') (x,x′), θ \theta θ是元素的参数。
当然,如果F函数将所有的元素map到同样的值,那么损失函数最低,但没有意义,为了防止这种情况,我们要求所有的输出是正交的,即
E [ y y T ] = I k × k \mathbb E[yy^T] = I_{k\times k} E[yyT]=Ik×k
由于分布 D D D未知,我们采用随机选取样本的进行优化,即在每次迭代中,随机选取m个样本,不失一般性,我们有 x 1 , . . . , x m ∈ X x_1, ...,x_m \in X x1,...,xm∈X, 并且安排他们在 m × d m \times d m×d的矩阵中,其中第i行包括 x i T x_i^T xiT, 然后最小化损失
L S p e c t r a l N e t ( θ ) = 1 m 2 ∑ i , j = 1 m W i , j ∣ ∣ y i − y j ∣ ∣ 2 (1) L_{SpectralNet}(\theta) = \frac{1}{m^2}\sum_{i,j=1}^m W_{i,j}||y_i - y_j||^2 \tag 1 LSpectralNet(θ)=m21i,j=1∑mWi,j∣∣yi−y