热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

matlabpca求曲率和法向量_从优化的角度看PCA降维的原理

参考周志华老师的西瓜书,对PCA的求解构成进行细节的推导,希望能有所帮助。主成分分析简称PCA,是一种在尽可能减少信息损失的情况下找到某种

参考周志华老师的西瓜书,对PCA的求解构成进行细节的推导,希望能有所帮助。

主成分分析简称PCA,是一种在尽可能减少信息损失的情况下找到某种方式降低数据的维度的方法。对于正交属性空间中的样本点,如何用一个超平面对所有样本进行恰当的表达?这里这个超平面应该有两个性质:

I.最近重构性:重构后的样本映射回原空间,与原样本的距离都足够的近;
II.最大可分性:样本在这个超平面上的投影尽可能分开。

本文主要基于这个两个性质,从PCA的公式推导的角度,来看优化在其中的作用。

一、最近重构性

设在n维空间中有m个样本点矩阵X:

现在对这些点进行压缩,使其投影到k维空间中,其中k,使其损失的信息最小。假设数据样本进行了去中心化,即

, 再假定矩阵
,是投影变换后的得到的新坐标系, 是投影矩阵,其中
是标准的正交基向量,即满足:

若丢弃新坐标系中的部分坐标,即将维度降低到k

由矩阵的乘法可知,将样本点

低维空间的坐标为
,其中
&#xff0c; j<&#61;k。

所以&#xff0c;利用该坐标系重构数据&#xff0c;即把数据集合Z从k维空间重新映射回n维空间&#xff0c;得到新的坐标点

这里假设新得到的数据与原始的数据点之间的距离最小&#xff0c;即PCA可转化为求解约束最优化问题&#xff1a;

1.1

根据F范数与矩阵迹的关系:

1.2

利用1.2对1.1进行简化:

1.3

由于已知项&#xff0c;不会影响到最优化的结果&#xff1b;有负号转为最大值&#xff0c;所以1.4等式简化为&#xff1a;

1.4

1.4式变换为&#xff1a;

1.5

最终PCA的最优化问题就简化为&#xff1a;

1.6

利用拉个朗日乘子法来求解1.6的最优化问题&#xff0c;引入乘子矩阵

&#xff0c;若此时仅考虑约束
&#xff0c;则拉格朗日乘子矩阵
此时为对角矩阵 &#xff0c; 另新的拉格朗日乘子矩阵为
&#xff0c;1.6式转化为求解拉格朗日函数的极值&#xff1a;
1.7

对1.7式求W的偏导数&#xff0c;在导数为0处取极值&#xff1a;

由矩阵微分公式

&#xff1a;
1.8

从1.8式根据特征向量的定义可知&#xff0c;

分别表示由协方差矩阵
的特征值和特征向量&#xff0c;特征值越大&#xff0c;数据在其对应额特征向量的方向上所包含的信息越丰富。

显然&#xff0c;此时只需要令

分别为 协方差
的前
个最大的特征值和单位特征向量就能使得目标函数达到最优值。

二、最大可分性

从最大可分性出发&#xff0c;能得到PCA的另一种解释。样本点

在新空间中超平面上的投影是
&#xff0c;若所有样本点的投影能尽可能分开&#xff0c;则应该使投影后样本点的方差最大化&#xff1a;
9cf4902da920c84025005ffe1b27b581.png
使所有的样本的投影尽可能的分开&#xff0c;则叙最大话投影点的方差

投影后样本点的方差是

&#xff0c;优化目标可以转化为矩阵的迹&#xff1a;

后面的求解构成与第一种的最近重构性一致。


PCA的算法步骤&#xff1a;
输入&#xff1a;n维空间的样本集合其中&#xff1b;映射到k维空间
1、归一化&#xff0c;将X中样本变换为标准正态分布
&#xff1a;

1.1

1.2

2、计算协方差矩阵

3、对协方差矩阵
进行特征分解

4、求取最大的k个特征值以及对应的特征向量&#xff0c;依次记录为

输出&#xff0c;其中

三、PCA的应用

&#xff08;一&#xff09;、数据降维。数据降维是处理高维度数据的基础。使用PCA降维有什么意义&#xff1f;

  1. 数据在低维下更容易进行处理与使用&#xff0c;算法的开销也将大大减少&#xff0c;比如在研究高维度数据分群中&#xff0c;使用无监督聚类的距离公式计算相似度不准确且开销大&#xff1b;
  2. 相关特征&#xff0c;重要特征通过降维能在数据中显现出来&#xff1b;同时&#xff0c;降至2维或3维也能进行可视化&#xff1b;
  3. 去除数据噪声&#xff0c;当数据受到噪声影响时&#xff0c;最小的特征值所对应的特征向量往往与噪声有关&#xff0c;将它们舍弃能再一定程度上起到去噪的作用。
398beb6c24391fb683e3a57a58a21364.png
将三维数据降至二维平面

&#xff08;二&#xff09;、人脸识别与手写数字识别。PCA在这方面的应用这几年随着深度学习技术的发展&#xff0c;而不断弱化。这里可以看下相关的blog文章&#xff0c;以人脸识别为例&#xff0c;计算人脸图像库中的“平均脸”并提取前K为特征向量&#xff0c;用于做映射矩阵。最终就是计算残差的大小&#xff0c;来判断人脸。残差公式就是上面的1.1式

PCA检测人脸的简单示例_matlab实现 - CSDN博客​blog.csdn.net
0c3ffbfac1b6fbffd69cdde3c3ad66d6.png

手写数字识别的例子没有找到&#xff0c;可以参考下PRML的截图&#xff1a;

afa3cbd23bd8b965e48a71c7cb0f71dc.png
南瓜书PumpkinBook_机器学习公式推导​datawhalechina.github.io阿泽&#xff1a;【机器学习】降维——PCA&#xff08;非常详细&#xff09;​zhuanlan.zhihu.com
b67034954b385020c3b7606b71c42aa0.png
矩阵乘法的本质是什么&#xff1f;​www.zhihu.com
0acb13556a668bf73b72619ab46f1a47.png



推荐阅读
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 在2019中国国际智能产业博览会上,百度董事长兼CEO李彦宏强调,人工智能应务实推进其在各行业的应用。随后,在“ABC SUMMIT 2019百度云智峰会”上,百度展示了通过“云+AI”推动AI工业化和产业智能化的最新成果。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 深入浅出解读奇异值分解,助你轻松掌握核心概念 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 2019年斯坦福大学CS224n课程笔记:深度学习在自然语言处理中的应用——Word2Vec与GloVe模型解析
    本文详细解析了2019年斯坦福大学CS224n课程中关于深度学习在自然语言处理(NLP)领域的应用,重点探讨了Word2Vec和GloVe两种词嵌入模型的原理与实现方法。通过具体案例分析,深入阐述了这两种模型在提升NLP任务性能方面的优势与应用场景。 ... [详细]
  • 在第七天的深度学习课程中,我们将重点探讨DGL框架的高级应用,特别是在官方文档指导下进行数据集的下载与预处理。通过详细的步骤说明和实用技巧,帮助读者高效地构建和优化图神经网络的数据管道。此外,我们还将介绍如何利用DGL提供的模块化工具,实现数据的快速加载和预处理,以提升模型训练的效率和准确性。 ... [详细]
  • 利用TensorFlow.js在网页浏览器中实现高效的人脸识别JavaScript接口
    作者|VincentMühle编译|姗姗出品|人工智能头条(公众号ID:AI_Thinker)【导读】随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升。在 ... [详细]
author-avatar
梅爱敏_629
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有