在机器学习和数据科学问题中,主要目标是找到在决定和影响输出结果方面起主导作用的最相关的特征。
在大多数数据科学问题中,机器学习数据集中充斥着大量的特征,容易导致过度拟合,并增加训练成本,这会使得过程相当缓慢。
降维在图像、音频、视频分析中扮演着重要的角色,尤其是在我们日常生活中的疾病调查和治疗中。在医学研究领域,它的重要性不容忽视,每个医院、诊所和诊断中心都使用机器学习(PCA、ICA、降维)技术来诊断疾病并为患者开出正确的药物处方。
在这篇文章中,主要讨论内容如下:
- 降维算法包括PCA(主成分分析),ICA(独立成分分析)和投影与流形学习。
- 在各个领域的应用,特别是Manifold Learning在研究领域的应用。
主成分分析(PCA):
确定PCA的第一步,是对协方差矩阵进行特征值分解,我们先理解特征向量和特征值的概念,然后再讨论PCA的细节。
特征向量
当向量乘以矩阵A时,几乎所有向量都改变方向。特征向量(x)是与Ax相同方向的某些exceptional vectors。这里的相乘结果Ax由矩阵A和特征向量x组成。
特征值
对于上面的等式,标量⋋被称为A的特征值。当⋋= 0时,Ax = 0x意味着特征向量x在零空间中。矩阵A被投射到由特征向量的方向确定的另一个空间中。对于Ax = b,输出向量b表示新的变换空间。
下面的动画显示了矩阵如何将一个空间转换为特征向量所在的空间。
从上图和动画中可以明显看出,特征向量的行为就像一个风向标,在不改变方向的情况下改变长度。它总是指向同一个方向和空间,这个矩阵把所有的向量都推向这个方向和空间。
- PCA通过分析数据在这些方向上的重要性来确定数据最大方差的方向。如果三维点被馈送到PCA进行评估,并且第三维正交于该平面,则能够成功地返回二维平面。与具有零权重的第三平面相比,PCA能够将正权重分配给表示位于二维平面上的点的向量。
- 当数据位于或靠近d维线性子空间时,PCA是用于在高维数据中查找模式的有用工具。PCA优先考虑维度(通过除了centering,旋转和缩放数据之外还删除低方差维度),这有助于提高神经网络的收敛速度和结果的整体质量。
核主成分分析
核主成分分析(KPCA)是一种增强型PCA方法,它结合了核函数来确定不同高维空间中的主成分,从而有助于解决非线性问题。KPCA基于核矩阵找到新的方向。与线性主成分分析相比,KPCA无法确定变量的重要性,这限制了KPCA的能力,在线性主成分分析中,可以识别有助于PCA得分分布的关键变量。
使用核主成分分析降低维数
独立成分分析(ICA):
ICA是一种将多元信号分解为可additive子成分的计算方法。ICA的工作原理是假设组成信号源的子成分是非高斯的,并且在统计上相互独立。
ICA在生物医学信号提取和分离的医学研究中起主导作用。来自包括心脏,大脑和内分泌系统在内的许多来源的生物医学信号提出了挑战,因为研究人员需要分离来自多个污染物和噪声源的微弱信号。
下图是ICA如何识别来自不同比例混合的不同源的信号的例子。ICA的目标是将信号分解为子成分,以识别不同信号源的活动。
- 线性投影不一定彼此正交。
- 泛化的PCA主成分几乎是统计独立的。
- 源数据包括非高斯未知潜在变量的线性混合。
流形学习
近年来,降维流形学习在辅助图像处理任务如分割、配准、跟踪、识别和计算解剖学等方面得到了广泛的关注。
由于PCA在处理非线性奇异曲面和曲面降维问题上的不足,因此需要开发更先进的算法,如流形学习。流形学习有不同的变体,它们通过次优的数据表示,解决了从非均匀的奇异曲面上减少数据维数和特征集的问题。这种数据表示从嵌入高维空间的低维流形中选择性地选择数据点,试图泛化像PCA这样的线性框架。
流形给人一种平面和无特征空间的感觉,就像欧几里德空间一样。流形学习问题是无监督的,它从数据本身学习数据的高维结构,不使用预先确定的分类,也不丢失关于原始变量某些特征信息的重要性。
流形学习算法的目标是恢复原来的域结构,达到一定的缩放和旋转。这些算法的非线性使得它们能够在流形不是线性嵌入的情况下也能揭示出域结构。
流形学习算法分为两类:
- 全局方法:允许将高维数据从高维映射到低维,从而保留全局属性。示例包括多维缩放(MDS)。
- 局部方法:允许将高维数据映射到低维,以便保留布局属性。示例包括局部线性嵌入(LLE)、拉普拉斯特征映射(LE)、局部切线空间对齐(LSTA)、Hessian特征映射(HLLE)。
不同的学习算法使用Isomap,局部线性嵌入,拉普拉斯特征映射,半定嵌入等算法发现不同的参数和机制来推导数据的低维表示。
与流形学习相关的算法及其应用有:
- 图像强度
- 坐标转换,例如不同的图像之间的变形。
- 要分析以解释类似对象组的图像数。
当在swiss_roll数据集中运行10个邻域和2个成分(不相关,简化特征集)时,对于5000个点,流形学习的不同算法如下。
不同类型的流形学习(scikit-learn swiss roll数据集)
- IsoMap算法 :最早的流形学习方法之一,可以被视为多维缩放(MDS)或核PCA的扩展。IsoMap旨在实现低维嵌入,保持所有点之间的测地距离。下图说明了如何评估所有点的距离。
下图说明:A.邻域图采用固定半径/ k均值算法构造;B.计算最短路径/测地距离 ;C. MDS采用d维嵌入。。
- 局部线性嵌入(LLE):降维算法之一是LLE,它通过评估一系列局部主成分分析中的最佳非线性嵌入来映射到数据的低维投影。当邻域的数量大于输入维度的数量时,它使用正则化参数'r'。这也导致了正则化问题,其表现为嵌入和扭曲了流形的基本几何形状。通过在每个邻域中使用多个向量来导致修改的局部线性嵌入(MLLE)来处理该问题,并且使用关键字method ='modified'来调用该函数,其中n_neighbors> n_components。
- 局部切线空间对齐(LTSA) :此算法的行为与上述LLE类似,唯一的区别在于通过切线空间表征每个邻域的局部几何。然后通过在相邻数据点上应用PCA来减少更高维度来推导低维数据,从而保留原始数据的局部线性关系。生成的低维数据集表示相邻点的坐标,用于近似该点处的切线空间。它还执行全局优化以对齐这些局部切线空间以学习嵌入。通过使用method ='ltsa'指定关键字来调用该函数。
- Hessian Eigenmapping(基于Hessian的LLE:HLLE):这种降维解决方案涉及解决LLE的正则化问题。此外,它可以减少多类问题的维度。它围绕着每个邻域的基于hessian的二次形式,用于恢复局部线性结构。它的缺点是数据量大,扩展性差。然而,scikit-learn库的改进包含了优化,使其成本可以与其他LLE变体相比,用于较小的输出维度。它需要使用method = ' hessian '指定关键字,并且n_neighbors > n_components * (n_components + 3) / 2。
Hessian EigenMap中的邻域选择
- Spectral嵌入:该算法通过对图像拉普拉斯分解得到数据的低维表示,从而计算非线性嵌入。分解得到的图与高维空间中的低维流形近似,保证了局部距离保持不变,并且在低维空间中,流形上出现较近的点也映射得较近。
- 多维缩放(MDS) :该降维算法是将数据转换为低维空间,将原始高维(n维)空间之间的距离映射到低维空间,从而测量数据相似性或差异性的多元技术之一。距离度量是在几何空间中度量的,在几何空间中,数据范围可以从对象之间的相似性评级到分子的相互作用频率,或国家之间的贸易指数。多维缩放也用于通过最小化称为STRESS或SSTRESS的量来识别新闻表示。
- MDS度量和非度量 :MDS包括度量和非度量算法。在度量MDS中,输入相似性矩阵来自度量(因此尊重三角不等式),然后将输出两点之间的距离设置为尽可能接近相似性或不相似性数据。在非度量版本中,算法将尝试保持距离的顺序,并因此寻求嵌入空间中的距离与相似性/不相似性之间的单调关系。单调关系在不同维度上产生更大或更小的距离,对应于更大或更小的不相似性。
- t-SNE : 是一种用于高维数据集可视化的降维的非线性技术。t-SNE首先计算高维空间和低维空间中相似的一组点的概率,推导出a点选择其相邻点作为b点的条件概率,并通过最小化Kullback-Leibler散度的和,使条件概率在高维空间和低维空间中都最小,从而从高维空间得到低维空间中点的有效表示。然而,t-SNE不会给出维度> 3的最佳结果,因为它会陷入局部最优。
流形学习在医学研究中的应用:
- 从嵌入高维空间的大量点到低维空间,识别正在进行医学研究的底层结构。这样的例子包括将脑MRI图像映射到低维流形,学习骨关节炎。通过构建图形来考虑流形的相邻区域,流形学习在患者位置检测中也起着重要作用。在这种情况下,通过保存局部邻域信息,使用拉普拉斯特征图来构建一个图,并将数据的高维表示近似到低维空间。
- 通过低维图像表示,通过简单的组间统计比较,流形学习可以方便地观察到人群中疾病的存在或发展的标记。
- 核主成分分析(Kernel PCA)是一种对异构数据源进行降维处理的方法,通过对来自不同数据源的数据进行合并和评估来解释最突出的因素。例如,它用于减少生物代谢数据的“非线性”变化的数据维度。下图显示了KPCA如何用于分析与饮食密切相关的代谢物的示例,事实证明,hippurate与摄入更多的蔬菜和水果有关。
- 流形学习通过生成合成图像来促进医学研究。下图说明了一个半自动参考图生成管道,它将病理学家提供的结果与自动分割技术相结合,产生不同版本的合成图像(通过旋转、修剪、几何扭曲和缩放等转换生成)。它通过生成对应于身体不同部位的隐式流形的高质量图像来辅助医学研究。
- 根据人体头部、腹部、小腿等不同部位对图像切片进行分类,利用多种结构对图像进行清晰的区分。例如,t-SNE是通过根据组织类型的相似性来识别聚类来对身体的不同组织进行分类。
- 局部线性嵌入用于脑功能检测。下图描述了大脑功能网络嵌入的前三个主要维度。图A描绘了在LogEuclidean流形空间中使用LLE-SPD(对称正定(SPD))的脑功能网络的嵌入,而图B描绘了在欧几里得空间中使用LLE的脑功能网络的嵌入。
- 应用独立分量分析(ICA)对一组基图像/信号进行评估,并将输入图像/信号表示为这些基图像/信号的线性组合。下图演示了ICA如何应用于ECG中分离单个成分。