降维的定义
降维是将高维数据变成低维表示,同时数据中蕴含的信息尽量保持不变。(高维 —> 低维)
降维是一种非监督学习任务。因为降维过程中不用样本的标签。(非监督)
降维的必要性
有时候虽然原始输入是高维数据,但这些输入特征之间有冗余。其本质维度可能很低。
降维方式
PCA降维
基本思路
对原数据样本的协方差矩阵做特征值分解。
算法流程
-
-
- 对所有样本进行去中心化:每个样本减去样本均值,作为新的样本值
- 计算输入样本的协方差矩阵。
- 对协方差矩阵做特征值分解。
-
推导流程(为什么是对协方差矩阵做特征值分解?)
假设原矩阵X大小位D X N,变换矩阵W大小为D X D',将WT乘以X,也就是:(D' X D) X (D X N) 得到变换后的矩阵Z大小为D' X N。
自编码器
组成
编码器网络:将原始数据编码为低维隐向量;相当于用一个神经网络表示的函数g(x)代替中的WTx。
解码器网络:从隐编码中重构出原始数据。用解码器神经网络f(z)代替PCA中的Wz。
目标函数
第一项同 PCA,表示训练数据集上的重构残差平方和。第二项为正则项,用于控制编码器的复杂度。
实现编码器和解码器的神经网络的方法
全连接自编码器
包含多个隐含层。降维和重构都要经过这些隐含层。
训练时候,通常采用逐层训练的方式确定模型初始参数,最后在初始值的基础上进行参数细调。
先训练784 —> 1000 —>784自编码器,然后固定好训练完毕的1000维结果,训练1000 —> 500 —>1000,固定训练好的500维结果,继续训练500 —> 250 —>500。此时,前面三层的参数已经训练完毕。最后一层接一个回归器,将整个网络使用反向传播进行训练,对参数进行微调。
卷积自编码器
此方法更加适用于输入数据为图像。
编码器通常由卷积层和池化层(下采样层)堆叠而成,用于降维;
解码层由反卷积层和反池化层(上采样层)堆叠而成,用于重构原始输入。
反卷积:本质也是卷积
反池化:平均池化对应的反池化操作为反平均池化,将分辨率扩大,复制均值多份即可;反最大池化可以记录池化时最大值的位置,然后扩大分辨率后最大值位置复制最大值,其他位置置 0;或者每个位置都复制最大值。
LSTM自编码器
适用于输入数据是序列。
使用LSTM编码器将输入序列转换为包含整个序列信息的单个向量,重复该向量T次,并运行一个LSTM解码器将该恒定序列转换为目标序列。
LSTM自动编码器通常与注意力机制结合。
MDS降维
基本思想
样本高维空间中的距离关系与在低维空间中的距离关系保持不变。
用数据之间的距离表示来求降维后数据内积矩阵,对内积矩阵做特征值分解,求得降维后的数据特征表示。
算法流程
计算样本两两之间的距离。
计算内积矩阵B:
对B做特征值分解,降到D'维,就用前D'个最大的特征值构造。
降维后的矩阵表示:
:前D'个最大特征值组成的对角矩阵。
:前D'个最大特征值对应的特征向量作为列构成的矩阵。
推导流程
等度量映射
基本思想
流形学习理论认为,在高维空间直接计算距离是不合适的。因此使用测地距离。
图A中蓝色虚线为两点之间距离。图B中红色为测地距离。
因此计算距离的方式为:在局部进行欧式距离的计算,再在整个流行结构上累加,获得流行曲面上的测地距离。(类似于单源点最短路径算法)。
具体实现
对于每个节点,基于欧式距离构造邻接图。
选取K个近邻节点建立边,边的权重为两点之间的欧氏距离,样本点与非邻近点的距离定义为无穷大。
对于不直接相邻的两个样本点,它们之间的测地距离为邻接图上的最短路径,采用最短路径算法获得所有流形曲面上点与点之间的距离。
基于T分布的随机邻域嵌入
适用于高维度数据降到2维或三维进行可视化。
基本思想
高维空间相似的数据点,映射到低维空间也相似。
相似度表示
首先,使用条件概率来表示相似度。在高维空间中,给定xi的条件下,xj的条件概率pj|i与xj和xi之间的欧式距离有关:
pj|i表示给定中心xi,方差为σi2的高斯分布下,xj和xi有多接近。
px|x=0
进一步定义对称的联合分布表示样本之间的相似性:
在低维空间中,给定样本zi和zj之间的相似度用自由度为1的T分布表示为:
qi,i=0
目标函数
如果降维的效果比较好,数据的局部结构保留完整,那么pi,j=qi,j。所以可以所有两个分布之间的距离-KL散度,目标函数为:
KL散度在低维映射中不同的距离对应的惩罚权重不同,距离较远的两个点来表示距离较近的两个点会产生更大的费用,用距离较近的两个点表达距离较远的两个点的费用相对较小。
如使用较小的qi,j=0.2来建模较大的pi,j=0.8,此时费用C=plog(p/q)=1.11;用较大的qi,j=0.8来建模较小pi,j=0.2,此时费用C=-0.277,因此T-SNE会倾向于保留数据中的局部结构。
对于目标函数求极小值可以通过梯度下降法来求解,目标函数为:
缺点
此方法计算量太大,工程上可以先对高维原始输入先用PCA等快速降维技术降到一定的维度,然后再使用T-SNE进一步降维。
标签:特征值,编码器,机器,样本,矩阵,距离,降维,数据处理 From: https://www.cnblogs.com/RedNoseBo/p/17086904.html