Manifold Algorithms

(图片懒得上传了。。具体的slides -- https://drive.google.com/file/d/1i0zfVgGC5akTbzaSRIeIxGos6Cvhj2k7/view) 

1. PCA

  1. 过程
    1. 特征值分解法
      1. 所有PC从数据中心出发
      2. 第一个PC:向最大的方差的方向映射点
      3. 剩下的每个PC都和之前的所有的orthogonal,指向是余下空间中方差最大的方向。
    2. 奇异值分解法
      1. 把原来的数据X(D*M)分解成USV。
      2. U=X*XT的特征向量矩阵
      3. V=XT*X的特征向量矩阵
      4. UTU=I,VTV=I
      5. PCA分解出lambda1,lambda2,…,SVD分解出S对角阵s1,s2, …他们的关系是 lambda_i = (s_i )^2
      6. 所以用SVD可以得到特征值分解法中的特征向量矩阵 - U
      7. 也可以使用X=USV, Y=USV'的方式重reconstruct data, V'是coefficients for reconstruction the samples!
    3. 注意:
      1. 求协方差矩阵的k个eigenvector,X=D*m, result = D*k,所以是点变少了!
      2. engenvalue从大到小排列
      3. 实际使用pca时,常常会进行最小变选择,判断是否计算XXT的eigenvectors还是XTX的eigenvectors,XTX的特征向量v求得后,Xv即为XXT的特征向量矩阵。
      4. 所以PCA在所有的MANI算法中最快!
    4. 问题:
      1. 使用欧式距离,不是geomesic距离,所以会让本来很远的点在PCA之后变近,不能发现非线形结构。
    5. 超参数:无

 

2. MDS:Multi-dimensinal Scaling

  1. 介绍:
    1. 目的:PCA的会让pairwise距离改变,MDS不会!
    2. 一个同样天天被吐槽(和PCA一样)的线形的不能发现non linear结构的而且速度很慢的算法。
    3. 和PCA的不同在于PCA处理的是XXT(X=D*N,result=D*k),MDS处理的是XTX(同样,X=D*N,result=k*N),所以PCA让点变少,而MDS让点数不变,维度降低。
    4. 他的理论基础在于,如果给定了点和点之间的pairwise distance,那么我们可以确定他的几何结构是没有改变的,这里几何结构的定义是他们的内积。所以目的变成了让向量内积尽量保持不变。(希望M保持不变,就求M矩阵的eigenvector!PCA我们希望variance不变,所以M=协方差矩阵=XXT,所以求了XXT的eigenvector)
    5. 这里在数学上类似SVD
  2. 算法:
    1. G=XTX = N*N
    2. LAMBDA = lambda1到lambdak的对角阵,从高到低排列
    3. [phi 1, …, phi k]是对应的特征向量
      1. [y1, …, yn] = LAMBDA^(1/2)[phi1, …, phik]^T = k*N
  3. 超参数:无

 

3. Isomap

  1. 介绍:就是把MDS的输入,从两个点之间的距离(MDS没有使用两个点的距离,而是直接使用了内积。)MDS首先计算矩阵D(N*N),Dij代表Di和Dj之间的用自己的方法计算的距离,再把D变成内积形式,也就是MDS的输入从原来的G=XTX变成了G'=DTD。
  2. 算法:
    1. 建立图谱(KNN or Epsilon)
    2. 计算pairwise distance, 最短路径法
    3. MDS
  3. 超参数:K(KNN的K)(或者Epsilon里面的Epsilon)

 

 

4. LLE

  1. 介绍:Isomap使用了点和点之间的基于knn的最短路径(长度)表示了intrinsic geometric properties of neighborhood, 那么LLE使用了weights(点和点之间的weights)表示了intrinsic geometric properties of neighborhood。二者都希望这个character保持不变。
  2. 算法:
    1. 建立knn/Epsilon图谱
    2. 计算W = argmin_w {sum_i ||xi - \sum_j xjWij|| ^2}
      1. 如果在同一个类里,如果不在同一个类里,=0.
      2. 对于i,所有的Wij的和=1.,就是每个点的所有neighbor的weight和=1.
    3. 计算[y1,…,yn] = argmin_[y1,…,yn] {sum_i || yi - \sum_j yjWij||^2}
  3. 重要的理论基础(文邹邹):
    1. The same weights that reconstruct the data points in D dimensions should also reconstruct the points in d dimensions.
    2. The weights characterize the intrinsic geometric properties of each neighborhood.
  4. 超参数:K(knn)/Epsilon(Epsilon)

 

 

5. MVU (Maximum Variance Unfolding )

  1. 介绍:
    1. 就是为了unfold图像的简单算法!怎么unfold?点和点(局部!一个cluster里的)之间的距离不变就好了!怎么降维?让点和点尽可能分散 - 方差尽可能的大 - 就铺平了! (TODO:为什么方差大就铺平了。。?)
    2. 这是一个半定的求最优解问题 (semidefinite programming)
      1. 条件:Qii + Qjj - 2 Qij == Pii + Pjj - 2 Pij 对于每一个i,j在同一个cluster里面的点都成立。
      2. 解释:P = XTX, Q = YTY, X=D*N
      3. 目标函数:Max Q 「1/N tr(Q) - 1/N^2 tr(Q11T)」
      4. 解释:最大化Y的方差,就是最大化Y的协方差矩阵的trace!!!

 

  1. 超参数:KNN的k或者Epsilon的Epsilon

 

 

6. Laplacian Eigenmap

  1. 介绍:
    1. 只能处理同分布问题!!假设所有的点都是高斯分布!
    2. 也需要先建立knn/Epsilon图谱
    3. 假设点和点之间的weight满足Wij = exp(- 1/t ||xi - xj || ^ 2)
    4. 目标函数:argmin(y1,…,yn) \sum (yi-yj)2Wij, -- 最小化带有权重的同一个cluster里面的点的距离!注意是最小化!!!
    5. 可以理解为希望一个cluster里面的点更加紧凑。
  2. 算法:
    1. knn/Epsilon
    2. 计算Wij =  exp(- 1/t ||xi - xj || ^ 2)
    3. 计算D,对角阵,Dii = 所有i的neighbor的权重的和
    4. 计算L=D-W,是对称阵。
    5. 计算Lf=lambda D f,求最小的m个特征值对应的特征向量!!!最小的!!!
    6. F=N*1,注意,这里面,每个f不是对应了原来的每个x输入,而是F矩阵的行,对应了每一个原来的xi!!!F矩阵 = N*m。一行代表一个原来的点对应的m维reconstruction结果。
    7. 目标函数:argmin(y1,…,yn) \sum (yi-yj)2Wij -- 为什么是唯一一个求最小特征向量的算法。 == min yTLy (这里省略公式推导) == min tr(YTLY) 精彩的推导过程!!
    8. 为什么求解特征向量这么奇怪?Lf=lambda D f。有限制条件:
      1. yTDy = 1
      2. yTD1 = 0
    9. 自己推一遍就好了。
  3. 超参数:
    1.  K(knn)/e
    2. t(Weight)

 

 

7. t-SNE (t-Distributed Stochastic Neighbor Embedding)

- 介绍:

  1. 让最可能选取在同一个cluster里面的点最相似,最相似的点最可能出现在同一个cluster里。
  2. 所以涉及两个指标:
    1. 最可能选取在同一个cluster里面:
      1. 假设xi的neighbor都是从xi的高斯density center选取的, 所以对于i来说,所有的Pij的合=1

 

  1. 但是这个pij不是对称的!所以 TODO 这样pij对于所有i所有j, I != j,和=1!!!
  2. 最相似的两个点:
    1. 对于所有的i不等于j来说,sumi, sumj qij = 1  #TODO,怎么就=1了,不应该=N嘛?
  3. 算法:
    1. 求P分布
    2. 求Q分布
    3. 求KL(P||Q),希望它最小

 

- 超参数:对于每个点i,i对应的高斯分布(P)的sigma!

- 文绉绉的总结:

  1. t-SNE constructs a probability distribution over pairs of high- dimensional objects such that:
  2. similar objects have a high probability of being picked,
    1. dissimilar points have an extremely small probability of
      being picked.
  3. t-SNE defines a similar probability distribution over the points in the low-dimensional map, and it minimizes the Kullback–Leibler divergence between the two distributions with respect to the locations of the points in the map.

 

8. 总结

  1. PCA:希望样本方差不变 - 无
  2. MDS:希望样本间距不变(内积) -  无
  3. Isomap:希望样本的geometric距离不变 - k
  4. MVU:希望样本的距离相同!方差尽可能大 - k
  5. t-SNE:希望X的高斯分布和Y的另一种分布相似 - 高斯分布的每一个sigma,共N个
  6. LE:希望相同cluster里面的样本距离(带有权重)尽量小 -  k,t(wieght里面的系数)
  7. LLE:希望同一个cluster里面的权重weight尽量不变 - k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值