首页 > 其他分享 >机器学习-数据处理-降维

机器学习-数据处理-降维

时间:2023-02-02 22:34:51浏览次数:51  
标签:特征值 编码器 机器 样本 矩阵 距离 降维 数据处理

降维的定义

降维是将高维数据变成低维表示,同时数据中蕴含的信息尽量保持不变。(高维 —> 低维)

降维是一种非监督学习任务。因为降维过程中不用样本的标签。(非监督)

 

降维的必要性

有时候虽然原始输入是高维数据,但这些输入特征之间有冗余。其本质维度可能很低。

降维方式

PCA降维

基本思路

对原数据样本的协方差矩阵做特征值分解。

算法流程

      1. 对所有样本进行去中心化:每个样本减去样本均值,作为新的样本值
      2. 计算输入样本的协方差矩阵。
      3. 对协方差矩阵做特征值分解。

推导流程(为什么是对协方差矩阵做特征值分解?)

假设原矩阵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|ixjxi之间的欧式距离有关:

pj|i表示给定中心xi,方差为σi2的高斯分布下,xjxi有多接近。

px|x=0

进一步定义对称的联合分布表示样本之间的相似性

 

在低维空间中,给定样本zizj之间的相似度用自由度为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

相关文章