(图片懒得上传了。。具体的slides -- https://drive.google.com/file/d/1i0zfVgGC5akTbzaSRIeIxGos6Cvhj2k7/view)
1. PCA
- 过程
- 特征值分解法
- 所有PC从数据中心出发
- 第一个PC:向最大的方差的方向映射点
- 剩下的每个PC都和之前的所有的orthogonal,指向是余下空间中方差最大的方向。
- 奇异值分解法
- 把原来的数据X(D*M)分解成USV。
- U=X*XT的特征向量矩阵
- V=XT*X的特征向量矩阵
- UTU=I,VTV=I
- PCA分解出lambda1,lambda2,…,SVD分解出S对角阵s1,s2, …他们的关系是 lambda_i = (s_i )^2
- 所以用SVD可以得到特征值分解法中的特征向量矩阵 - U
- 也可以使用X=USV, Y=USV'的方式重reconstruct data, V'是coefficients for reconstruction the samples!
- 注意:
- 求协方差矩阵的k个eigenvector,X=D*m, result = D*k,所以是点变少了!
- engenvalue从大到小排列
- 实际使用pca时,常常会进行最小变选择,判断是否计算XXT的eigenvectors还是XTX的eigenvectors,XTX的特征向量v求得后,Xv即为XXT的特征向量矩阵。
- 所以PCA在所有的MANI算法中最快!
- 问题:
- 使用欧式距离,不是geomesic距离,所以会让本来很远的点在PCA之后变近,不能发现非线形结构。
- 超参数:无
- 特征值分解法
2. MDS:Multi-dimensinal Scaling
- 介绍:
- 目的:PCA的会让pairwise距离改变,MDS不会!
- 一个同样天天被吐槽(和PCA一样)的线形的不能发现non linear结构的而且速度很慢的算法。
- 和PCA的不同在于PCA处理的是XXT(X=D*N,result=D*k),MDS处理的是XTX(同样,X=D*N,result=k*N),所以PCA让点变少,而MDS让点数不变,维度降低。
- 他的理论基础在于,如果给定了点和点之间的pairwise distance,那么我们可以确定他的几何结构是没有改变的,这里几何结构的定义是他们的内积。所以目的变成了让向量内积尽量保持不变。(希望M保持不变,就求M矩阵的eigenvector!PCA我们希望variance不变,所以M=协方差矩阵=XXT,所以求了XXT的eigenvector)
- 这里在数学上类似SVD
- 算法:
- G=XTX = N*N
- LAMBDA = lambda1到lambdak的对角阵,从高到低排列
- [phi 1, …, phi k]是对应的特征向量
- [y1, …, yn] = LAMBDA^(1/2)[phi1, …, phik]^T = k*N
- 超参数:无
3. Isomap
- 介绍:就是把MDS的输入,从两个点之间的距离(MDS没有使用两个点的距离,而是直接使用了内积。)MDS首先计算矩阵D(N*N),Dij代表Di和Dj之间的用自己的方法计算的距离,再把D变成内积形式,也就是MDS的输入从原来的G=XTX变成了G'=DTD。
- 算法:
- 建立图谱(KNN or Epsilon)
- 计算pairwise distance, 最短路径法
- MDS
- 超参数:K(KNN的K)(或者Epsilon里面的Epsilon)
4. LLE
- 介绍:Isomap使用了点和点之间的基于knn的最短路径(长度)表示了intrinsic geometric properties of neighborhood, 那么LLE使用了weights(点和点之间的weights)表示了intrinsic geometric properties of neighborhood。二者都希望这个character保持不变。
- 算法:
- 建立knn/Epsilon图谱
- 计算W = argmin_w {sum_i ||xi - \sum_j xjWij|| ^2}
- 如果在同一个类里,如果不在同一个类里,=0.
- 对于i,所有的Wij的和=1.,就是每个点的所有neighbor的weight和=1.
- 计算[y1,…,yn] = argmin_[y1,…,yn] {sum_i || yi - \sum_j yjWij||^2}
- 重要的理论基础(文邹邹):
- The same weights that reconstruct the data points in D dimensions should also reconstruct the points in d dimensions.
- The weights characterize the intrinsic geometric properties of each neighborhood.
- 超参数:K(knn)/Epsilon(Epsilon)
5. MVU (Maximum Variance Unfolding )
- 介绍:
- 就是为了unfold图像的简单算法!怎么unfold?点和点(局部!一个cluster里的)之间的距离不变就好了!怎么降维?让点和点尽可能分散 - 方差尽可能的大 - 就铺平了! (TODO:为什么方差大就铺平了。。?)
- 这是一个半定的求最优解问题 (semidefinite programming)
- 条件:Qii + Qjj - 2 Qij == Pii + Pjj - 2 Pij 对于每一个i,j在同一个cluster里面的点都成立。
- 解释:P = XTX, Q = YTY, X=D*N
- 目标函数:Max Q 「1/N tr(Q) - 1/N^2 tr(Q11T)」
- 解释:最大化Y的方差,就是最大化Y的协方差矩阵的trace!!!
- 超参数:KNN的k或者Epsilon的Epsilon
6. Laplacian Eigenmap
- 介绍:
- 只能处理同分布问题!!假设所有的点都是高斯分布!
- 也需要先建立knn/Epsilon图谱
- 假设点和点之间的weight满足Wij = exp(- 1/t ||xi - xj || ^ 2)
- 目标函数:argmin(y1,…,yn) \sum (yi-yj)2Wij, -- 最小化带有权重的同一个cluster里面的点的距离!注意是最小化!!!
- 可以理解为希望一个cluster里面的点更加紧凑。
- 算法:
- knn/Epsilon
- 计算Wij = exp(- 1/t ||xi - xj || ^ 2)
- 计算D,对角阵,Dii = 所有i的neighbor的权重的和
- 计算L=D-W,是对称阵。
- 计算Lf=lambda D f,求最小的m个特征值对应的特征向量!!!最小的!!!
- F=N*1,注意,这里面,每个f不是对应了原来的每个x输入,而是F矩阵的行,对应了每一个原来的xi!!!F矩阵 = N*m。一行代表一个原来的点对应的m维reconstruction结果。
- 目标函数:argmin(y1,…,yn) \sum (yi-yj)2Wij -- 为什么是唯一一个求最小特征向量的算法。 == min yTLy (这里省略公式推导) == min tr(YTLY) 精彩的推导过程!!
- 为什么求解特征向量这么奇怪?Lf=lambda D f。有限制条件:
- yTDy = 1
- yTD1 = 0
- 自己推一遍就好了。
- 超参数:
- K(knn)/e
- t(Weight)
7. t-SNE (t-Distributed Stochastic Neighbor Embedding)
- 介绍:
- 让最可能选取在同一个cluster里面的点最相似,最相似的点最可能出现在同一个cluster里。
- 所以涉及两个指标:
- 最可能选取在同一个cluster里面:
- 假设xi的neighbor都是从xi的高斯density center选取的, 所以对于i来说,所有的Pij的合=1
- 最可能选取在同一个cluster里面:
- 但是这个pij不是对称的!所以 TODO 这样pij对于所有i所有j, I != j,和=1!!!
- 最相似的两个点:
- 对于所有的i不等于j来说,sumi, sumj qij = 1 #TODO,怎么就=1了,不应该=N嘛?
- 算法:
- 求P分布
- 求Q分布
- 求KL(P||Q),希望它最小
- 超参数:对于每个点i,i对应的高斯分布(P)的sigma!
- 文绉绉的总结:
- t-SNE constructs a probability distribution over pairs of high- dimensional objects such that:
- similar objects have a high probability of being picked,
- dissimilar points have an extremely small probability of
being picked.
- dissimilar points have an extremely small probability of
- 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. 总结
- PCA:希望样本方差不变 - 无
- MDS:希望样本间距不变(内积) - 无
- Isomap:希望样本的geometric距离不变 - k
- MVU:希望样本的距离相同!方差尽可能大 - k
- t-SNE:希望X的高斯分布和Y的另一种分布相似 - 高斯分布的每一个sigma,共N个
- LE:希望相同cluster里面的样本距离(带有权重)尽量小 - k,t(wieght里面的系数)
- LLE:希望同一个cluster里面的权重weight尽量不变 - k