核心思想
有映射 Y m ∗ n = f ( X d ∗ n ) \underset{m*n}{Y}=f(\underset {d*n}X) m∗nY=f(d∗nX),能够实现将d维的样本变换到m维空间之中
假设:对于一个好的降维方法,在高维空间下距离近(相似度高)的两个点,在低维空间下依旧保持相近的关系。高维空间相似度高的两个点在低维空间相似度依旧很高
考虑映射 Y = W T X Y=W^TX Y=WTX,即原样本空间中有 x i x_i xi与 x j x_j xj距离近, y i y_i yi 与 y j y_j yj( y i = W T x i y_i=W^T x_i yi=WTxi)仍保持相近关系
a r g m i n W ∑ i ∑ j ∣ ∣ y i − y j ∣ ∣ 2 s i j \underset{W}{arg\ min} \sum_i \sum_j ||y_i- y_j||^2s_{ij} Warg mini∑j∑∣∣yi−yj∣∣2sij
去除乘数,最终优化目标为:
t r ( Y L Y T ) tr(YLY^T) tr(YLYT)
带入 Y = W T X Y = W^TX Y=WTX,得到最小化目标:
t r ( W T X L X T W ) tr(W^TXLX^TW) tr(WTXLXTW)
该目标存在平凡零解: W = O m ∗ d W=O_{m*d} W=Om∗d
此时L取最小值0,出现维度坍缩,所有样本映射到同一个点上,此解无意义
当W不取零矩阵时,由于没有添加尺度约束,在降维子空间一定(组成基向量方向一致)情况下,当尺度不断变小时,目标L会同时变小,无限趋于0,不存在最小值
因此,考虑对最小化目标变形为:
t r ( Y L Y T ) t r ( Y D Y T ) = t r ( W T X L X T W ) W T X D X T W \frac{tr(YLY^T)}{tr(YDY^T)} = \frac{tr(W^TXLX^TW)}{W^TXDX^TW} tr(YDYT)tr(YLYT)=WTXDXTWtr(WTXLXTW)
考虑到尺度因素,加以约束 Y D Y T = I YDY^T=I YDYT=I也即 W T X D X T W = I W^TXDX^TW=I WTXDXTW=I,
原始优化问题有多个解。由于是线性映射,若同比例缩小低维样本 y i y_i yi,得到的数据集Y都可作为最优的低维数据集。故加入约束: t r ( Y D Y ⊤ ) = ∑ i = 1 n d i i y i T y i = 1 tr(YDY^\top)=\sum_{i=1}^nd_{ii}y_i^Ty_i=1 tr(YDY⊤)=∑i=1ndiiyiTyi=1,通过限制 y i y_i yi的模长,使问题有唯一解。
参考LDA中提到的广义瑞利商,可知:
λ m i n ( ( X D X T ) − 1 ( X L X T ) ) ≤ t r ( W T X L X T W ) t r ( W T X D X T W ) ≤ λ m a x ( ( X D X T ) − 1 ( X L X T ) ) λ_{min}((XDX^T)^{-1}(XLX^T))≤\frac{tr(W^TXLX^TW)}{tr(W^TXDX^TW)}≤λ_{max}((XDX^T)^{-1}(XLX^T)) λmin((XDXT)−1(XLXT))≤tr(WTXDXTW)tr(WTXLXTW)≤λmax((XDXT)−1(XLXT))
变换矩阵: W = [ w 1 , w 2 , . . . , w m ] W=[w_1,w_2,...,w_m] W=[w1,w2,...,wm]由 ( X D X T ) − 1 ( X L X T ) (XDX^T)^{-1}(XLX^T) (XDXT)−1(XLXT)最小m个特征向量构成
矩阵形式推导:
由拉格朗日乘子法,构建L: L = t r ( W T X L X T W ) − t r ( Λ ( W T X D X T W − I ) ) L = tr(W^TXLX^TW)-tr(\Lambda(W^TXDX^TW-I)) L=tr(WTXLXTW)−tr(Λ(WTXDXTW−I))
对W求偏导并令为0:
2 X L X T W − 2 X D X T W Λ = 0 X L X T W = X D X T W Λ 有: ( X D X T ) − 1 X L X T W = W Λ 2XLX^TW-2XDX^TW\Lambda=0\\ XLX^TW= XDX^TW \Lambda\\ 有:(XDX^T)^{-1}XLX^TW=W\Lambda 2XLXTW−2XDXTWΛ=0XLXTW=XDXTWΛ有:(XDXT)−1XLXTW=WΛ
W由 ( X D X T ) − 1 X L X T (XDX^T)^{-1}XLX^T (XDXT)−1XLXT的特征向量作为列向量构成,且为了最小化目标函数,选取的特征向量应该是最小m个特征值对应的特征向量
权重矩阵S:
定义样本 x i x_i xi和 x j x_j xj之间的权重 w i j w_{ij} wij, 原则是样本点之间距离越小,权重越大
权重矩阵S常用定义方式:
S i j = { s i j = e x p ( − ∣ ∣ x i − x j ∣ ∣ 2 t ) x i ∈ N k ( x j ) 即 x i 是 x j 的 k 近邻 s i j = 0 e l s e S_{ij} = \left\{ \begin{matrix} s_{ij} = exp(-\frac{||x_i - x_j||^2}{t})\ \ \ \ \ x_i∈N_k(x_j) 即x_i是x_j的k近邻\\ s_{ij}=0\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ else \end{matrix} \right. Sij={sij=exp(−t∣∣xi−xj∣∣2) xi∈Nk(xj)即xi是xj的k近邻sij=0 else
度矩阵D:
度矩阵D是一个对角阵,其对角元素 D i i = ∑ j = 1 n s i j D_{ii} = \sum_{j=1}^{n} s_{ij} Dii=∑j=1nsij
D = { ∑ j = 1 n s 1 j 0 . . . 0 0 ∑ j = 1 n s 2 j . . . 0 . . . . . . . . . . . . 0 0 . . . ∑ j = 1 n s n j } D= \left. \left \{ \begin{matrix} \sum_{j=1}^ns_{1j}\ \ \ \ 0\ \ \ \ ...\ \ \ \ 0 \\ 0\ \ \ \ \sum_{j=1}^ns_{2j}\ \ \ \ ...\ \ \ \ 0 \\ ...\ \ \ \ ...\ \ \ \ ...\ \ \ \ ... \\ 0\ \ \ \ 0\ \ \ \ ...\ \ \ \ \sum_{j=1}^ns_{nj} \end{matrix} \right. \right\} D=⎩ ⎨ ⎧∑j=1ns1j 0 ... 00 ∑j=1ns2j ... 0... ... ... ...0 0 ... ∑j=1nsnj⎭ ⎬ ⎫
拉普拉斯矩阵L:L=D-S
有运算:
Y D Y T = [ y 1 , y 2 , . . . , y n ] [ d 11 0 . . . 0 0 d 22 . . . 0 . . . . . . . . . . . . 0 0 . . . d n n ] [ y 1 T y 2 T . . . y n T ] = [ d 11 y 1 , d 22 y 2 , . . . , d n n y n ] [ y 1 T y 2 T . . . y n T ] = d 11 y 1 y 1 T + d 22 y 2 y 2 T + . . . + d n n y n y n T = ∑ i = 1 n y i d i i y i T = ∑ i = 1 n d i i y i y i T YDY^T = [y_1,y_2,...,y_n] \left. \left [ \begin{matrix} d_{11}\ \ \ \ 0\ \ \ \ ...\ \ \ \ 0 \\ 0\ \ \ \ d_{22}\ \ \ \ ...\ \ \ \ 0 \\ ...\ \ \ \ ...\ \ \ \ ...\ \ \ \ ... \\ 0\ \ \ \ 0\ \ \ \ ...\ \ \ \ d_{nn} \end{matrix} \right. \right] \left. \left [ \begin{matrix} y_1^T \\ y_2^T \\ ... \\ y_n^T \end{matrix} \right. \right] \\ =[d_{11}y_1,d_{22}y_2,...,d_{nn}y_n] \left. \left [ \begin{matrix} y_1^T \\ y_2^T \\ ... \\ y_n^T \end{matrix} \right. \right] \\ =d_{11}y_1y_1^T + d_{22}y_2y_2^T + ... + d_{nn}y_ny_n^T=\sum_{i=1}^ny_id_{ii}y_i^T=\sum_{i=1}^nd_{ii}y_iy_i^T\\ YDYT=[y1,y2,...,yn] d11 0 ... 00 d22 ... 0... ... ... ...0 0 ... dnn y1Ty2T...ynT =[d11y1,d22y2,...,dnnyn] y1Ty2T...ynT =d11y1y1T+d22y2y2T+...+dnnynynT=i=1∑nyidiiyiT=i=1∑ndiiyiyiT
因此有:
t r ( Y D Y T ) = ∑ i = 1 n d i i y i T y i tr(YDY^T) = \sum_{i=1}^nd_{ii}y_i^Ty_i tr(YDYT)=i=1∑ndiiyiTyi
类似可得:
t r ( Y S Y T ) = ∑ i = 1 n ∑ j = 1 n s i j y i T y j tr(YSY^T) = \sum_{i=1}^n\sum_{j=1}^ns_{ij}y_i^Ty_j tr(YSYT)=i=1∑nj=1∑nsijyiTyj
方法流程
1)由样本矩阵X构建权重矩阵S,度矩阵D,拉普拉斯矩阵L
2)求 ( X D X T ) − 1 X L X T (XDX^T)^{-1}XLX^T (XDXT)−1XLXT的特征向量,取最小m个作列向量构成变换矩阵W
3)由 Y = W T X Y=W^TX Y=WTX完成降维