Truncated Power Method for Sparse Eigenvalue Problems

article/2025/10/3 8:08:56

目录

  • 算法
  • k的选择
  • \(x\)的初始化
  • 代码

在这里插入图片描述

抱歉,真的没怎么看懂,当然,估计和我现在没法静下心来好好看也有关系。

算法

在这里插入图片描述

想法非常非常简单吧,就是在原来幂法的基础上,每次迭代的时候再加个截断。当然,论文里给出了,为什么这么做的理由,把我弄得晕晕的,但是思想就是这么朴素。现在的问题是:
1.k怎么选?
2.初始\(x\)的选择

k的选择

这个我没在论文里找到,但是看数值实验,感觉在k上面是有操作空间的。

\(x\)的初始化

\(x\)的初始化,是这篇论文的大头,讲了怎么样怎么样就能怎么样怎么样。
总结就是有如下3种方案:

  • \(x=e_j,j=argmax\{A_{ii}\}\)实在是简单粗暴啊。
  • 分俩步,第一步先把\(k\)放大一些,然后进行迭代(初始化估计就用第一种吧),迭代几步之后,把\(k\)变回来,再继续迭代。
  • \(k\approx p\)的时候,采用Moghaddam et al. 2006后向选取的方法。

注:文章还提到,当\(A\)具有唯一的稀疏的主特征向量,那么,TPower方法能够从\(A\)的带噪声的观测中,讲该特征向量近似地恢复出来。

代码

def You_eig_value(C, x, k):  #幂法p = C.shape[1]x1 = x     #初始化while True:x2 = C @ x1truncate(x, k)x2 = x2 / np.sqrt(x2 @ x2)if np.sum(np.abs(x2-x1)) < 0.0001:breakelse:x1 = x2return x1def truncate(x, k): #截断p = len(x)label = np.argsort(np.abs(x))[:p-k]x[label] = 0

转载于:https://www.cnblogs.com/MTandHJ/p/10527942.html


http://chatgpt.dhexx.cn/article/BhZr0ZZr.shtml

相关文章

R语言将向量数据按照行方式转化为矩阵数据(设置参数byrow为TRUE)、计算矩阵数据的特征值(eigenvalue)

R语言将向量数据按照行方式转化为矩阵数据&#xff08;设置参数byrow为TRUE&#xff09;、计算矩阵数据的特征值&#xff08;eigenvalue&#xff09; 目录 R语言将向量数据按照行方式转化为矩阵数据&#xff08;设置参数byrow为TRUE&#xff09;、计算矩阵数据的特征值&#x…

Nonlinear Component Analysis as a Kernel Eigenvalue Problem

目录 引kernel PCA kernel 的选择性质一些问题代码 Scholkopf B, Smola A J, Muller K, et al. Nonlinear component analysis as a kernel eigenvalue problem[J]. Neural Computation, 1998, 10(5): 1299-1319. 引 普通的PCA将下式进行特征分解&#xff08;用论文的话讲就是对…

拉格朗日乘数法和KKT条件的直观解释

拉格朗日乘数法和KKT条件的直观解释 标签&#xff08;空格分隔&#xff09;&#xff1a; 机器学习 linbin 2018-05-10 Abstract 在SVM的推导中&#xff0c;最优化问题是其中的核心&#xff0c;这里我们简单介绍下最优化问题&#xff0c;特别是带有约束的最优化问题&#xff…

[Math Algorithm] 拉格朗日乘数法

https://www.cnblogs.com/maybe2030/p/4946256.html 阅读目录 1. 拉格朗日乘数法的基本思想2. 数学实例3. 拉格朗日乘数法的基本形态4. 拉格朗日乘数法与KKT条件 拉格朗日乘数法&#xff08;Lagrange Multiplier Method&#xff09;之前听数学老师授课的时候就是一知半解&…

每天五分钟机器学习算法:拉格朗日乘数法和KKT条件

KKT条件 当我们要求一个函数的极值,同时还有两种类型的约束条件,一种约束条件是等式约束,另外一种约束是不等式约束: x是一个变量(n维,n个样本),我们想要找到使得f(x)最大的x,还要满足上面的约束。此时KKT条件就出来说话了,如果要想让x满足这个条件下的f(x)的最大…

拉格朗日乘数法及python实现拉格朗日乘数法

拉格朗日乘数法&#xff08;Lagrange Multiplier Method&#xff09;基本思想 作为一种优化算法&#xff0c;拉格朗日乘子法主要用于解决约束优化问题&#xff0c;它的基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有&#xff08;nk&am…

SVM(一):拉格朗日乘数法详解

目录 what直观理解法高数书上的解法 学习SVM的过程中遇到了这个拉格朗日乘数法&#xff0c;之前学高数的时候也学过&#xff0c;不过看到视频里的直观理解法和高数书上的解法有些不同&#xff0c;于是在这里把这两种方法记录下来&#xff0c;也当做是一次理解的过程。 what 先…

拉格朗日乘数法什么时候考虑端点?解得的点是什么?

问题提出 2013年的真题有一道题是用拉格朗日乘数法只能求出来一个点&#xff0c;当时很费解&#xff0c;因此查阅相关资料后&#xff0c;对这部分的知识做一个小总结。 无条件极值和条件极值 首先&#xff0c;在求无条件极值的时候&#xff0c;我们求的是曲面上的极值点。 例…

拉格朗日乘数法的原理,我用10幅图把它讲清楚

机器学习是一个目标函数优化问题&#xff0c;给定目标函数f&#xff0c;约束条件会有一般包括以下三类&#xff1a; 仅含等式约束仅含不等式约束等式和不等式约束混合型 当然还有一类没有任何约束条件的最优化问题 关于最优化问题&#xff0c;大都令人比较头疼&#xff0c;首先…

java 获取随机数方法,java生成随机数的三种方法

随机数有三种生成方式&#xff1a; 1、通过Math.random()方法 2、通过System.currentTimeMillis()方法获取毫秒数 3、通过Random类 第一种&#xff1a;常用方法Math.random()方法&#xff0c;是获取0-1之间的double类型的小数&#xff0c;在通过int类型墙砖即可 示例&#xff1…

Java生成随机数的方式

目录 Random基础使用优缺点分析 SecureRandom基础使用 总结&#xff1a;持续更新 Random Random 类诞生于 JDK 1.0&#xff0c;它产生的随机数是伪随机数&#xff0c;也就是有规则的随机数。Random 使用的随机算法为 linear congruential pseudorandom number generator (LGC)…

Java 生成随机数的 5 种方式,你知道几种?

点击上方“码农突围”&#xff0c;马上关注 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看” 作者&#xff1a;专职跑龙套链接&#xff1a;https://www.jianshu.com/p/2f6acd169202 1. Math.random(…

java 生成随机数 (Random函数)

目录 一、Random是什么&#xff1f; 二、使用步骤 1.引入库 2.创建对象 3.生成随机数 4.完整代码 总结 一、Random是什么&#xff1f; 生成随机数函数 二、使用步骤 1.引入库 代码如下&#xff1a; import java.util.Random; 2.创建对象 代码如下&#xff1a; R…

Java中生成随机数的4种方式!

在 Java 中&#xff0c;生成随机数的场景有很多&#xff0c;所以本文我们就来盘点一下 4 种生成随机数的方式&#xff0c;以及它们之间的区别和每种生成方式所对应的场景。 1.Random Random 类诞生于 JDK 1.0&#xff0c;它产生的随机数是伪随机数&#xff0c;也就是有规则的…

谈论SQL注入攻击的重要性

"SQL注入”是一种利用未过滤/未审核用户输入的攻击方法&#xff08;“缓存溢出”和这个不同&#xff09;&#xff0c;意思就是让应用运行本不应该运行的SQL代码。黑客或者恶搞的用户&#xff0c;利用了程序开发人员在开发的时候没有对SQL进行严格的处理而造成的漏洞&#…

【SQL注入攻击介绍】

目录 前言 本质和危害 分类 注入一般步骤 注入实战 前言 sql注入一直以来都稳居owasp-top10榜首&#xff0c;近年来更是爆出很多的数据库泄露攻击事件&#xff0c;如最近上海某公安存在数据库泄露事件。今天简单的分析以下sql注入的一些特性和方式&#xff1a; owasp-t…

SQL注入攻击与防护

目录 一、SQL注入攻击概述 1.1 SQL注入概念 1.1.1 标准查询过程 1.1.2 SQL注入定义 1.2 SQL注入根本原因 1.3 SQL注入条件 1.4 SQL注入防范 1.4.1 根本原因&#xff1a;过滤不严 1.4.2 安全设计原则&#xff1a;数据与代码分离 1.5 SQL注入流程 1.6 SQL注入分类 1.…

使用日志进行调查 - SQL 注入攻击示例

日志文件是服务器提供的非常有价值的信息。几乎所有服务器、服务和应用程序都提供某种日志记录。日志文件记录在服务或应用程序运行期间发生的事件和操作。 日志文件为我们提供了服务器行为的精确视图以及关键信息&#xff0c;例如何时、如何以及由谁访问服务器。此类信息可以…

Web—SQL注入攻击

文章目录 一、mysql常用语句二、SQL注入概念1. 产生原因2. 攻击分类 三、攻击流程1. 常用检测语句如何识别SQL注入2. Mysql注入常用函数3. 查询数据的核心语法4. 联合查询5. 报错注入6. 布尔盲注7. 时间盲注8. SQL注入爆库语句9. Sqlmap常用命令 四、常见防护手段及绕过方式1. …

DVWA SQL注入攻击

SQL注入原理 SQL注入就是通过SQL命令插入到web表单递交或输入域名页面请求的查询字符串&#xff0c;最终达到欺骗服务器执行恶意的SQL命令。具体来说&#xff0c;它是利用现有应用程序&#xff0c;将恶意的SQL命令注入到后台数据库引擎执行的能力&#xff0c;它可以通过在WEB表…