当前位置: 首页 > news >正文

论文阅读(一种新的稀疏PCA求解方式)Sparse PCA: A Geometric Approach

这是一篇来自JMLR的论文,论文主要关注稀疏主成分分析(Sparse PCA)的问题,提出了一种新颖的几何解法(GeoSPCA)。

该方法相比传统稀疏PCA的解法的优点:1)更容易找到全局最优;2)计算效率更高;3)因为不再需要计算存储整个协方差矩阵,所以对存储资源需求更少;4)GeoSPCA能够一次性构建所有主成分,而不是通过迭代的方式逐步添加,这有助于避免因迭代过程中的数据秩减而导致的信息损失。

这个笔记不会记录原文中过于数学的证明和推理部分,仅整理原理、结论和算法流程等。对数学推理感兴趣的,可自行到以下地址查看原文:

https://www.jmlr.org/papers/volume24/22-0088/22-0088.pdf

1,什么是稀疏PCA

首先给不了解的读者补充一下稀疏PCA概念:

普通PCA得到的主成分有大量非0的原始变量,所以主成分其实是不太清晰的。稀疏PCA通过减少构建主成分的变量数量,可以提高模型的可解释性、预测能力或降低操作成本。相比较而言,稀疏PCA更适用于需要模型解释性的场景。

稀疏PCA 在普通PCA的基础上,引入了一个惩罚函数。这样做的目的是使得大部分系数变为零,从而凸现出主成分的主要部分。

稀疏PCA的实现通常涉及到在标准的PCA优化问题中加入一个正则化项,以促使某些系数变为零。

2,现有稀疏PCA计算方式的缺陷

大多数现有方法通过迭代方式构建主成分(PCs),这些方法通常无法保证整体最优解,且计算成本较高。

3,本文提出的GeoSPCA方法

这种方法通过将问题转化为一个二元线性优化问题(BLO)来近似原始问题,从而绕开了非凸优化的问题。

GeoSPCA算法一次性构建所有主成分,而不是通过迭代的方式。这种方法通过引入一个参数η来近似原始问题,并通过一系列切割平面算法(cut generation algorithm)来逐步改进解。

切割平面算法的核心思想是逐步添加约束条件(即切割平面),以逼近问题的最优解。

3.1 整体流程思路:

  1. 初始化:算法开始时,首先解决一个没有额外约束的基本二元线性优化问题(BLO),以获得初始解。

  2. 计算当前解的正交投影:对于当前解,计算数据矩阵在由当前解定义的子空间上的正交投影。

  3. 检查投影误差:计算当前解的正交投影与原始数据矩阵之间的差异(即误差)。如果这个误差小于预设的阈值η,当前解就是可接受的。

  4. 生成切割平面:如果投影误差超过阈值η,算法会生成一个新的线性约束(切割平面),该约束会排除当前解,迫使算法在下一次迭代中寻找更好的解。

  5. 迭代过程:将新生成的切割平面添加到优化问题中,并重新解决BLO问题以获得新的解。这个过程会不断重复,直到找到满足误差阈值的解或达到预设的迭代次数。

  6. 终止条件:算法在以下情况下终止:1)找到一个满足误差阈值η的解。2)达到预设的最大迭代次数。3)无法进一步改进当前解。

注:其中,线性约束(也称为切割平面或切割约束)是一种限制变量取值范围的表达式,它以线性方程或不等式的形式出现。

3.2 具体落实的算法

在具体落实层面,原文提出了2个算法。

算法1在给定参数η的情况下,找到一组最优支持(Optimal support),这些支持用于构建稀疏主成分。

算法2是从较大的η值开始,逐步细化η的值,以逼近最优的η值,同时也获得稀疏PCA的最优解。

算法1:

算法步骤如下:

  1. 初始化:开始时,使用一个二元线性优化(BLO)问题,目标是最大化数据矩阵列的范数加权和,约束条件是支持的大小不超过k。

  2. 求解BLO问题:使用BLO求解器找到当前问题的最优解 s∗。

  3. 计算正交投影:对找到的解 s∗,计算数据矩阵在由解 s∗ 定义的子空间上的正交投影,并求解PCA以得到对应的主成分。

  4. 检查投影误差:计算正交投影与原始数据矩阵之间的Frobenius范数误差 η(s∗)。(注:两个矩阵之间的Frobenius范数一般指的是两个矩阵差的Frobenius范数,也就是同位置元素相减后的平方和的平方根)

  5. 生成切割平面:如果误差 η(s∗)超过给定的阈值η,则生成一个新的线性约束(切割平面),将其添加到BLO问题中,以排除当前解。

  6. 迭代:重复求解BLO问题,并根据需要生成和添加新的切割平面,直到找到满足误差阈值的解。

  7. 返回结果:算法返回找到的支持集,这些支持集定义了稀疏主成分。

 算法2:

算法步骤如下:

  1. 初始化:设置初始η值 η0和最优解的η值 η∗ 为较大的值。

  2. 迭代过程:进行多次迭代,每次迭代使用算法1来求解当前η值下的BLO问题。

  3. 更新η值:如果当前解的η值 ηt小于 η∗,并且当前解的函数值 f(ηt) 高于 η∗,则更新 η∗为 ηt,并减小η值以进行下一步迭代。

  4. 检查停止条件:如果经过λ次迭代后没有改进,或者达到预设的迭代次数,则停止迭代。

  5. 返回结果:算法返回找到的近似最优解的支持集 s∗,以及对应的η值 η∗和函数值 f(η*)。

相关文章:

论文阅读(一种新的稀疏PCA求解方式)Sparse PCA: A Geometric Approach

这是一篇来自JMLR的论文,论文主要关注稀疏主成分分析(Sparse PCA)的问题,提出了一种新颖的几何解法(GeoSPCA)。 该方法相比传统稀疏PCA的解法的优点:1)更容易找到全局最优&#xff…...

Chrome/Edge浏览器视频画中画可拉动进度条插件

目录 前言 一、Separate Window 忽略插件安装,直接使用 注意事项 插件缺点 1 .无置顶功能 2.保留原网页,但会刷新原网页 3.窗口不够美观 二、弹幕画中画播放器 三、失败的尝试 三、Potplayer播放器 总结 前言 平时看一些视频的时候&#xff…...

pg修炼之道学习笔记

一、数据库逻辑结构介绍 1、一个pg数据库服务下有多个db(多个数据库),当应用连接到一个数据库时,一般只能访问这个数据库中的数据,而不能访问其他数据库的内容(限制) 2、表索引:一…...

使用宝塔面板部署Django应用(不成功Kill Me!)

使用宝塔面板部署Django应用 文章目录 使用宝塔面板部署Django应用 本地操作宝塔面板部署可能部署失败的情况 本地操作 备份数据库 # 备份数据库 mysqldump -u root -p blog > blog.sql创建requirements # 创建requirements.txt pip freeze > requirements.txt将本项目…...

c++深拷贝、浅拷贝

在 C 中,深拷贝和浅拷贝是两个重要的概念,尤其在涉及动态内存分配和指针成员时。这两个概念描述了对象复制时的行为。 浅拷贝 浅拷贝是指复制对象时,仅复制对象的基本数据成员,对于指针成员,只复制指针地址&#xff…...

k8s核心组件

Master组件: kube-apiserver:用于暴露Kubernetes API,任何资源请求或调用操作都是通过kube-apiserver提供的接口进行。它是Kubernetes集群架构的大脑,负责接收所有请求,并根据用户的具体请求通知其他组件工作。etcd&am…...

反编译腾讯vmp

反编译腾讯vmp 继续学习的过程 多翻译几个vmp 学习 看看他们的是怎么编译的 写一个自己的vmp function __TENCENT_CHAOS_VM(U, T, g, D, j, E, K, w) {// U指令起点// T是指令list// g是函数this 或window对象// D是内部变量和栈}for (0; ;)try {for (var B !1; !B;) {let no…...

Ollama:本地部署大模型 + LobeChat:聊天界面 = 自己的ChatGPT

本地部署大模型 在本地部署大模型有多种方式,其中Ollama方式是最简单的,但是其也有一定的局限性,比如大模型没有其支持的GGUF二进制格式,就无法使用Ollama方式部署。 GGUF旨在实现快速加载和保存大语言模型,并易于阅读…...

JS中splice怎么使用

在JavaScript中,splice() 是一个数组方法,用于添加/删除项目,并返回被删除的项目。这个方法会改变原始数组。 splice() 方法的基本语法如下: array.splice(start[, deleteCount[, item1[, item2[, ...]]]]) start(必…...

Flutter项目,Xcode15, 编译正常,但archive报错

错误提示 PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/目录/Developer/Xcode/DerivedData/Runner-brgnkruocugbipaswyuwsjsnqkzm/Build/Intermediates.noindex/ArchiveIntermediates/Runner/IntermediateBuildFilesPath/Runner.build/Release-iphoneos/Runner…...

云动态摘要 2024-06-17

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [低至1折]腾讯混元大模型产品特惠 腾讯云 2024-06-06 腾讯混元大模型产品特惠,新用户1折起! 云服务器ECS试用产品续用 阿里云 2024-04-14 云服务器ECS试用产品续用…...

【JavaScript脚本宇宙】图像处理新纪元:探索六大JavaScript图像处理库

揭开图像处理的奥秘:六款顶级JavaScript库详解 前言 在现代Web开发中,图像处理变得越来越重要。从图像比较到图像编辑,每个步骤都需要高效、强大的工具来完成。JavaScript生态系统为开发者提供了丰富的图像处理库,这些库不仅功能…...

使用python调ffmpeg命令将wav文件转为320kbps的mp3

320kbps竟然是mp3的最高采样率,有点低了吧。 import os import subprocessif __name__ __main__:work_dir "D:\\BaiduNetdiskDownload\\周杰伦黑胶\\魔杰座" fileNames os.listdir(work_dir)for filename in fileNames:pure_name, _ os.path.spli…...

程序启动 报错 no main manifest attribute

1、报错问题 未找到启动类 2、可能的原因 启动没加注解maven打包插件没有设置...

java-内部类 2

### 8. 内部类的访问规则和限制 #### 8.1 访问外部类的成员 内部类可以直接访问外部类的成员变量和方法,包括私有成员。例如: java class OuterClass { private String outerField "Outer field"; class InnerClass { void di…...

【小技巧】pycharm中自动换行的实现

pycharm如何自动换行 pycharm在setting里面设置自动化换行 具体步骤如下: (我这边用的版本为PyCharm 2023.3版本) 1、打开pycharm,选择“file”(文件) 2、选择“Setting“(设置)…...

如何修改倍福CX7000PLC IP地址

我们可以通过登录网页修改PLC的IP地址,这个需要我们知道PLC的初始IP地址 1、浏览器直接输入PLC 的IP地址 2、点击修改按钮(就是那个旋转) 修改IP地址前DHCP要先disable关闭 。 3、DHCP关闭 4、点击保存 5、在CAT3里搜索 在SYSTEM双击,之后点击搜索,具体过程可以参考下…...

python安装flask,flask框架,使用静态文件、模板、get和post请求

flask框架安装 pip install flask1.创建app.py文件 启动运行 # 导入Flask类 from flask import Flask#Flask类接收一个参数__name__ app Flask(__name__)# 装饰器的作用是将路由映射到视图函数index app.route(/) def index():return Hello World# Flask应用程序实例的run方…...

Docker:Harbor

目录 一、Harbor介绍 二、安装 Harbor 2.1 环境准备 2.2下载 Harbor 3.3 修改配置(可选) 3.4 启动 Harbor 3.5访问 Harbor 三、使用 Harbor 3.1 管理Harbor 一、Harbor介绍 Docker Harbor 是由 VMware 公司开源的一款企业级的 Docker Registry …...

2024 6.10~6.16 周报

一、上周工作 完成毕设 二、本周计划 吴恩达的机器学习、实验-回顾之前密集连接部分,调整损失函数 三、完成情况 3.1 机器学习的两种主要类型: 监督学习(supervised learning)(实际中使用最多的)&…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 ​二、实现思路 总体思路: 用户通过Gradio界面上…...

边缘计算网关提升水产养殖尾水处理的远程运维效率

一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...

【java面试】微服务篇

【java面试】微服务篇 一、总体框架二、Springcloud(一)Springcloud五大组件(二)服务注册和发现1、Eureka2、Nacos (三)负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...