「这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战」
提到降维大家第一个会想到 PCA 会想到编码器和解码器已经词向量这些降维方法,不过今天我们可能不会谈一些具体降维方法,而是站在以一定高度地去看降维。
其实我们做分类问题时候,通常都会用到距离的概念,为什么要降维呢? 通常我们的数据都是高维数据,而且在高维空间内我们的数据都是稀疏的。
维度即使维度特征 增加一个维度,数据量就成指数增长
其实机器学习中降维方法很多,不过我们大致可以将他们分为两个大类别,
矩阵因式分解(Matrix Factorization)
- Principal Component Analysis
- Sparse PCA
- Linear Autoencoder
- Latent Dirichlet Allocation
- Non-negative Matrix Factorization
- Generalised Low Rank Models
- Word2Vec
- GloVe
- Probalistic PCA
矩阵因式分解实际上是指这一大类技术,从主题建模到 Word2Vec,普通的 PCA,以及其他各种概率技术,涵盖了大量的算法,这些大量算法都基于一种非常简单的基本单一矩阵因式分解框架下。
好吧,矩阵因式分解的目标是,我们想把一个矩阵表达为两个小矩阵的近似乘积,这就是我们要做的,所以在降维方面,蓝色矩阵是他们的数据,也就是我们得到的源数据,每一行是一个样本,每一列是一个特征,我们想把它变成一个乘以一些原型的表示。
蓝色数据 Data 行是样本,列是样本的特征,将其分解为表示(representation)乘以原型(archetypes)
可以认为这个表征(representation)是低维的表征,原型(archetypes)是一种基本形式,是你用来重建原始数据的方式,
数据的单行表示单个样本,每个样本都有一个相应的表征,表征乘以整个原型矩阵。表征可以将表征乘以原型得到样本还原到高维空间。
将样本分解为原型的线性组合,表示(presentation)就是低维的表示,数据表示为这些原型的组合,这就是矩阵分解
Neighbour Graphs
- Laplacian Eigenmaps
- Spectral Embedding
- Hessian Eigenmaps
- Local Tangent Space Alignment
- JSE
- Isomap
- t-SNE
- Locally Linear Embedding
- LargeVis
对于从数据中建立一个图,然后把这个图嵌入一个低维空间,所有的细节都是何构建这个图,以及如何布局这个图。
重点在于核心直觉和核心思想,而不是这些算法如何工作的具体细节。
几何角度
图 A 是在边长为 1 正方形内切圆的面积可以表示为 内切于立方体中的球的体积为
在高维空间内,内切于高维边长为 1 的的球体为 D 为高维空间,当 D 足够大,内切高维球体体积接近于 0。
在高维空间内有时候会打破我们在低纬空间的认知, 在高维空间球体样本都分布在边缘,这样就造成数据稀疏性,不但稀疏而分布还不均匀。