PCA线性降维 与 自编码器(Auto-Encoder )

简介: 本分分享了关于学习参考多篇博客PCA降维算法,自编码神经网络算法的原理后总结的个人理解,以供参考学习

线性降维与非线性降维

降维是一种减少特征空间维度以获得稳定的、统计上可靠的机器学习模型的技术。降维主要有两种途径:特征选择和特征变换。特征选择通过选择重要程度最高的若干特征,移除共性的或者重要程度较低的特征。

特征变换也称为特征提取,过程在于试图将高维数据投影到低维空间。常用的特征变换方法有主成分分析(PCA)、矩阵分解、自动编码器(Autoencoders)、t-Sne、UMAP等。

PCA和LDA是最常见的线性降维方法,它们按照某种准则为数据集寻找投影空间,空间变换满足 $z_i = Wx_i + b$ 的线性变换。
非线性降维的两类代表方法是流形降维和 AutoEncoders,这两类方法也体现出了两种不同角度的“非线性”。AutoEncoders的非线性和神经网络的非线性是一回事,都是利用堆叠非线性激活函数来近似任意函数。所以 Auto-Encoders 就是一种神经网络,通过基于输入与输出的近似来训练网络参数,它真正有意义的地方不在于Auto-Encoders 的输出结果,而是于训练出来的函数$h(x)$。

1、ML-PCA

对PCA的推导一般是基于最小化重建误差或者最大化可分性,或者说是通过提取数据集特征信息来建模一个约束最优化问题来推导的。
![ML:PCA]

2、NPL-Auto-Encoder

自动编码器是一种无监督的人工神经网络,它将数据压缩到较低的维数,然后重新构造输入。自动编码器通过消除重要特征上的噪声和冗余,找到数据在较低维度的表征。它基于 编解码结构(encode-decode),编码器将高维数据编码到低维,解码器接收低维数据并尝试重建原始高维数据。根据激活函数的不同,数据从高纬度到低纬度的映射可以是线性的,也可以是非线性的。所以可以对相对复杂的非线性关系进行建模,抽取这些复杂特征来表征对象。

自编码器的一些特点:

  • 它是一种类似于 PCA 的无监督机器学习算法
  • 它要最小化和 PCA 一样的目标函数
  • 这种神经网络的目标输出就是其输入

![NPL: Auto-Encoder]

3、PCA. VS . Auto-Encoder

>

  • PCA 只能做线性变换;而自动编码器既可以做线性变换,也可以做非线性变换。
  • PCA 将数据投影到若干正交的方向;而自动编码器降维后数据维度并不一定是正交的。
  • PCA 是输入空间向最大变化方向的简单线性变换;而自动编码器是一种更复杂的技术,可以对相对复杂的非线性关系进行建模。
  • PCA 适用于数据量较小的场景;而自动编码器可以用于复杂的大型数据集。

    添加非线性激活函数的自动编码器能够捕获到数据集的 非线性特征 来表征复杂数据结构,在低维空间上能够更准确的反映数据的分布。


Reference

(概率)PCA和(变分)自编码器 - 知乎 (zhihu.com)
降维算法:主成分分析 VS 自动编码器_机器学习:使用自编码器进行降维示例_deephub的博客-CSDN博客
自编码器如何应用到分类任务特征提取中
自编码AutoEncoder 及PyTorch 实现

目录
相关文章
|
3月前
|
机器学习/深度学习 算法 C语言
5.2.1 Backbone(特征提取) 5.2.2 Neck(多尺度检测)
这篇文章介绍了YOLOv3目标检测模型中的Backbone(特征提取)部分,详细阐述了使用Darknet53作为骨干网络来提取图像特征的方法,并通过代码示例展示了如何实现Darknet53网络结构以及如何查看不同层级输出特征图的形状,同时还讨论了Neck(多尺度检测)的概念,解释了如何通过特征图的尺寸放大和融合来实现对不同尺寸目标的检测。
|
3月前
HanLP — HMM隐马尔可夫模型 -- 训练--归一化,计算概率
HanLP — HMM隐马尔可夫模型 -- 训练--归一化,计算概率
44 0
|
4月前
|
机器学习/深度学习 数据采集 PyTorch
使用 PyTorch 创建的多步时间序列预测的 Encoder-Decoder 模型
本文提供了一个用于解决 Kaggle 时间序列预测任务的 encoder-decoder 模型,并介绍了获得前 10% 结果所涉及的步骤。
64 0
|
机器学习/深度学习 算法 数据可视化
基于线性SVM的CIFAR-10图像集分类
基于线性SVM的CIFAR-10图像集分类
742 0
基于线性SVM的CIFAR-10图像集分类
|
机器学习/深度学习 数据挖掘 计算机视觉
What?UFO! | UFO-ViT用X-Norm让你的Transformer模型回归线性复杂度(二)
What?UFO! | UFO-ViT用X-Norm让你的Transformer模型回归线性复杂度(二)
158 0
|
机器学习/深度学习 编解码 算法
What?UFO! | UFO-ViT用X-Norm让你的Transformer模型回归线性复杂度(一)
What?UFO! | UFO-ViT用X-Norm让你的Transformer模型回归线性复杂度(一)
120 0
|
机器学习/深度学习 计算机视觉
RMNet推理去除残差结构让ResNet、MobileNet、RepVGG Great Again(必看必看)(一)
RMNet推理去除残差结构让ResNet、MobileNet、RepVGG Great Again(必看必看)(一)
187 0
|
PyTorch 算法框架/工具 计算机视觉
RMNet推理去除残差结构让ResNet、MobileNet、RepVGG Great Again(必看必看)(二)
RMNet推理去除残差结构让ResNet、MobileNet、RepVGG Great Again(必看必看)(二)
167 0
|
算法 C++
降维算法:主成分分析 VS 自动编码器(三)
降维算法:主成分分析 VS 自动编码器(三)
171 1
降维算法:主成分分析 VS 自动编码器(三)
|
机器学习/深度学习 自然语言处理 算法
介绍stacked autoencoder堆叠自编码器
堆叠自编码器(Stacked Autoencoder)是一种基于神经网络的无监督学习算法,用于特征提取和降维。与单个自编码器(Autoencoder)不同的是,堆叠自编码器由多个自编码器组成,每个自编码器的隐藏层作为下一个自编码器的输入层,形成多层结构,每一层都可以提取出数据的不同特征。
965 0