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

线性代数|机器学习-P8矩阵低秩近似eckart-young

文章目录

1. SVD奇异值分解

我们知道,对于任意矩阵A来说,我们可以将其通过SVD奇异值分解得到 A = U Σ V T A=U\Sigma V^T A=UΣVT,通过 Σ \Sigma Σ中可以看到只有r个非零的特征值,所以通过矩阵A奇异值分解可得如下表达式:
A = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ n u n v n T , σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r \begin{equation} A=\sigma_1u_1v_1^T+\sigma_2u_2v_2^T+\cdots+\sigma_nu_nv_n^T,\sigma_1\geq \sigma_2\geq\cdots\geq\sigma_r \end{equation} A=σ1u1v1T+σ2u2v2T++σnunvnTσ1σ2σr
A k = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ k u k v k T , σ 1 ≥ σ 2 ≥ ⋯ ≥ σ k \begin{equation} A_k=\sigma_1u_1v_1^T+\sigma_2u_2v_2^T+\cdots+\sigma_ku_kv_k^T,\sigma_1\geq \sigma_2\geq\cdots\geq\sigma_k \end{equation} Ak=σ1u1v1T+σ2u2v2T++σkukvkTσ1σ2σk
A ∼ A k \begin{equation} A\sim A_k \end{equation} AAk

  • 上面的等式里面,我们希望通过前面k项的和来近似矩阵A,这就是主成分分析PCA

2. Eckart-Young

如果矩阵B的秩为 k ,对于矩阵A和B的距离来说,矩阵A与子矩阵 A k A_k Ak(秩为k)的距离小于等于矩阵A与矩阵B之间的距离
在这里插入图片描述

  • 假设我们有如下矩阵
    A = [ 4 0 0 0 0 3 0 0 0 0 2 0 0 0 0 1 ] ; A 2 = [ 4 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 ] ; B = [ 3.5 3.5 0 0 3.5 3.5 0 0 0 0 1.5 1.5 0 0 1.5 1.5 ] \begin{equation} A=\begin{bmatrix} 4&0&0&0\\\\ 0&3&0&0\\\\ 0&0&2&0\\\\ 0&0&0&1 \end{bmatrix};A_2=\begin{bmatrix} 4&0&0&0\\\\ 0&3&0&0\\\\ 0&0&0&0\\\\ 0&0&0&0 \end{bmatrix};B=\begin{bmatrix} 3.5&3.5&0&0\\\\ 3.5&3.5&0&0\\\\ 0&0&1.5&1.5\\\\ 0&0&1.5&1.5 \end{bmatrix} \end{equation} A= 4000030000200001 ;A2= 4000030000000000 ;B= 3.53.5003.53.500001.51.5001.51.5
  • 用python计算 ∣ ∣ A − B ∣ ∣ ≥ ∣ ∣ A − A k ∣ ∣ ||A-B||\geq ||A-A_k|| ∣∣AB∣∣∣∣AAk∣∣
import numpy as npif __name__=="__main__":A=np.array([  [4,0,0,0],[0,3,0,0],[0,0,2,0],[0,0,0,1]],dtype='int16')A2=np.array([  [4,0,0,0],[0,3,0,0],[0,0,0,0],[0,0,0,0]],dtype='int16')B=np.array([  [3.5,3.5,0,0],[3.5,3.5,0,0],[0,0,1.5,1.5],[0,0,1.5,1.5]],dtype='int16')Aa2norm =A-A2AB2norm =A-Bprint(f"A={A}")print(f"A2={A2}")print(f"B={B}")print(f"Aa2norm={np.linalg.norm(Aa2norm,ord=2)}")print(f"AB2norm={np.linalg.norm(AB2norm,ord=2)}")
#A=[[4 0 0 0]
# [0 3 0 0]
# [0 0 2 0]
# [0 0 0 1]]
#A2=[[4 0 0 0]
# [0 3 0 0]
# [0 0 0 0]
# [0 0 0 0]]
#B=[[3 3 0 0]
# [3 3 0 0]
# [0 0 1 1]
# [0 0 1 1]]
#Aa2norm=2.0
#AB2norm=3.54138126514911
  • 结果: ∣ ∣ A − B ∣ ∣ 2 = 3.54 , ∣ ∣ A − A 2 ∣ ∣ = 2.0 → ∣ ∣ A − B ∣ ∣ ≥ ∣ ∣ A − A 2 ∣ ∣ ||A-B||_2=3.54,||A-A_2||=2.0\rightarrow ||A-B||\geq||A-A_2|| ∣∣AB2=3.54,∣∣AA2∣∣=2.0∣∣AB∣∣∣∣AA2∣∣
  • 向量x乘以正交单位矩阵Q后长度不变,正交矩阵相当于将向量旋转,所以长度不变。
    ∣ ∣ x ∣ ∣ 2 = x T x = x T Q T Q x = ( Q x ) T Q x = ∣ ∣ Q x ∣ ∣ 2 \begin{equation} ||x||_2=x^Tx=x^TQ^TQx=(Qx)^TQx=||Qx||_2 \end{equation} ∣∣x2=xTx=xTQTQx=(Qx)TQx=∣∣Qx2
    这就是主成分分析的原理,因为矩阵A里面有很多无用信息,用 A k A_k Ak 来代替 A

2.1 范数

  • 向量 L 1 L_1 L1范数
    ∣ ∣ V ∣ ∣ 1 = ∣ v 1 ∣ + ∣ v 2 ∣ + ⋯ + ∣ v n ∣ \begin{equation} ||V||_1=|v_1|+|v_2|+\cdots+|v_n| \end{equation} ∣∣V1=v1+v2++vn

  • 向量 L 2 L_2 L2范数
    ∣ ∣ V ∣ ∣ 2 = v 1 2 + v 2 2 + ⋯ + v n 2 \begin{equation} ||V||_2=\sqrt{v_1^2+v_2^2+\cdots+v_n^2} \end{equation} ∣∣V2=v12+v22++vn2

  • 向量 L ∞ L_{\infty} L范数
    ∣ ∣ V ∣ ∣ ∞ = m a x ∣ v i ∣ \begin{equation} ||V||_{\infty}=\mathrm{max}|v_i| \end{equation} ∣∣V=maxvi

  • 我们假设在二维平面上,我们就三个范数进行图形形象表达:
    在这里插入图片描述
    在这里插入图片描述

  • 小结,随着范数越大,图形由原来的菱形膨胀到了正方形,这个正方形就是极限了。这个思路真神奇!!!

  • L 1 L_1 L1函数范数跟向量 L 1 L_1 L1范数一样,通过 L 1 L_1 L1函数可以知道一个函数在指定区间内的体量 L 1 L_1 L1函数范数
    L = ∑ i = 1 n ∣ y i − f ( x i ) ∣ \begin{equation} L=\sum_{i=1}^n|y_i-f(x_i)| \end{equation} L=i=1nyif(xi)

  • L 2 L_2 L2函数范数
    L 2 L_2 L2损失函数表示测量和真实值之差的平方,就是我们之前一直用的最小二乘法。真神奇,居然都对上了,同一个问题,不同的角度。
    L = ∑ i = 1 n ( y i − f ( x i ) ) 2 \begin{equation} L=\sum_{i=1}^n(y_i-f(x_i))^2 \end{equation} L=i=1n(yif(xi))2
    矩阵 L 1 L_1 L1范数定义为每一列元素绝对值之和的最大值。具体步骤是:
    1. 对矩阵A的每一列,求每个元素的绝对值之和
    2. 找出所有列和中最大值

  • L 2 L_2 L2矩阵范数定义为矩阵A的最大奇异值,计算步骤:
    1. 计算矩阵A的共轭转置,记为 A H A^H AH,得到 A H A , A A H A^HA,AA^H AHAAAH
    2. 计算矩阵 A A H , A H A AA^H,A^HA AAH,AHA的特征值,求出平方根后求得最大特征值为 L 2 L_2 L2范数

  • Frobenius-norm
    ∣ ∣ A ∣ ∣ F = σ 1 2 + σ 2 2 + ⋯ + σ r 2 \begin{equation} ||A||_F=\sqrt{\sigma_1^2+\sigma_2^2+\cdots+\sigma_r^2} \end{equation} ∣∣AF=σ12+σ22++σr2

  • Nuclear-norm
    ∣ ∣ A ∣ ∣ N = σ 1 + σ 2 + ⋯ + σ r \begin{equation} ||A||_N=\sigma_1+\sigma_2+\cdots+\sigma_r \end{equation} ∣∣AN=σ1+σ2++σr

3. Q A = Q U Σ V T QA=QU\Sigma V^T QA=QUΣVT

对于矩阵A来说,我们可以左乘以一个正交单位矩阵A,其特征值不变
Q A = ( Q U ) Σ V T \begin{equation} QA=(QU)\Sigma V^T \end{equation} QA=(QU)ΣVT

4. 主成分分析图像表示

我们来看看最小二乘法的图像,通过求y方向的最小值和来拟合曲线
L = ∑ i = 1 n ∣ y i − f ( x i ) ∣ → A T A x ^ = A T b → x ^ = ( A T A ) − 1 A T b \begin{equation} L=\sum_{i=1}^n|y_i-f(x_i)|\rightarrow A^TA\hat{x}=A^Tb\rightarrow \hat{x}=(A^TA)^{-1}A^Tb \end{equation} L=i=1nyif(xi)ATAx^=ATbx^=(ATA)1ATb
在这里插入图片描述

  • 主成分分析PCA 是通过先减去样本的均值后,根据点到直线的垂直距离来拟合直线。

相关文章:

线性代数|机器学习-P8矩阵低秩近似eckart-young

文章目录 1. SVD奇异值分解2. Eckart-Young2.1 范数 3. Q A Q U Σ V T QAQU\Sigma V^T QAQUΣVT4. 主成分分析图像表示 1. SVD奇异值分解 我们知道,对于任意矩阵A来说,我们可以将其通过SVD奇异值分解得到 A U Σ V T AU\Sigma V^T AUΣVT&#xff0…...

平面设计神器CorelDRAW2021精简版,你值得拥有!

亲爱的设计师小伙伴们,今天我要为大家种草一款神奇的软件——CorelDRAW平面设计软件2021精简版!🤩✨作为一名专业的图形设计师,我深知一个好工具对于我们的工作有多么重要。而这款软件简直就是我们设计师的救星!&#…...

kafka是什么?

Kafka是一个由Apache软件基金会开发的开源流处理平台,最初由LinkedIn公司开发,使用Scala和Java编写。它是一个高吞吐量的分布式发布订阅消息系统,可以处理消费者在网站中的所有动作流数据,如网页浏览、搜索和其他用户行为等。Kafk…...

ABC351

C 栈的应用 #include<bits/stdc.h>using namespace std;stack<int>stk;int main() {int n;cin>>n;for(int i1;i<n;i){int a;cin>>a;while(!stk.empty()&&astk.top()){stk.pop();a;}stk.push(a);}cout<<stk.size()<<endl;retur…...

base上海,数据科学,数据挖掘,数据分析等岗位求收留

裁员了&#xff0c;base上海&#xff0c;数据科学&#xff0c;数据挖掘&#xff0c;数据分析等岗位&#xff0c;期望30k~40k&#xff0c;求推荐求收留 1&#xff0c;6年数据算法工作&#xff0c;做过指标体系搭建&#xff0c;用户画像&#xff0c;货品定价&#xff0c;社区分析…...

IC元器件

1.电阻&#xff1a; 电阻的作用&#xff1a; 1.与负载串联&#xff1a;做限流分压 2.电阻并联&#xff1a;将小功率电阻并联成大功率&#xff0c;防烧毁 2.电容&#xff1a; 电容就是两块金属板&#xff0b;中间的介质&#xff08;相当于两个人坐在一起加上中间的空气…...

SQL159 每个创作者每月的涨粉率及截止当前的总粉丝量

描述 用户-视频互动表tb_user_video_log iduidvideo_idstart_timeend_timeif_followif_likeif_retweetcomment_id110120012021-09-01 10:00:002021-09-01 10:00:20011NULL210520022021-09-10 11:00:002021-09-10 11:00:30101NULL310120012021-10-01 10:00:002021-10-01 10:00…...

Linux安装MySQL教程【带图文命令巨详细】

巨详细Linux安装MySQL 1、查看是否有自带数据库或残留数据库信息1.1检查残留mysql1.2检查并删除残留mysql依赖1.3检查是否自带mariadb库 2、下载所需MySQL版本&#xff0c;上传至系统指定位置2.1创建目录2.2下载MySQL压缩包 3、安装MySQL3.1创建目录3.2解压mysql压缩包3.3安装解…...

外部排序快速入门详解:基本原理,败者树,置换-选择排序,最佳归并树

文章目录 外部排序1.最基本的外部排序原理2.外部排序的优化2.1 败者树优化方法2.2 置换-选择排序优化方法2.3 最佳归并树 外部排序 为什么要学习外部排序&#xff1f; 答&#xff1a; 在处理数据的过程中&#xff0c;我们需要把磁盘(外存&#xff09;中存储的数据拿到内存中处理…...

人工智能和物联网如何结合

欢迎来到 Papicatch的博客 目录 ​ &#x1f349;引言 &#x1f349;AI与IoT的结合方式 &#x1f348;数据处理和分析 &#x1f34d;实例 &#x1f348;边缘计算 &#x1f34d;实例 &#x1f348;自动化和自主操作 &#x1f34d;实例 &#x1f348;安全和隐私保护 &…...

【JAVASE】JAVA应用案例(下)

一&#xff1a;抢红包 一个大V直播时&#xff0c;发起了抢红包活动&#xff0c;分别有9,666,188,520,99999五个红包。请模拟粉丝来抽奖&#xff0c;按照先来先得&#xff0c;随机抽取&#xff0c;抽完即止&#xff0c;注意&#xff1a;一个红包只能被抽一次&#xff0c;先抽或…...

【面试干货】 B 树与 B+ 树的区别

【面试干货】 B 树与 B 树的区别 1、B 树2、 B 树3、 区别与优缺点比较4、 总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在数据库系统中&#xff0c;B 树和 B 树是常见的索引结构&#xff0c;它们在存储和组织数据方面有着不同的设计…...

Socket编程权威指南(四)彻底解密 Epoll 原理

在上一篇文章中&#xff0c;我们优化了基于 Socket 的网络服务器&#xff0c;从最初的 select/poll 模型进化到了高效的 epoll。很多读者对 epoll 的惊人性能表示极大的兴趣&#xff0c;对它的工作原理也充满了好奇。今天&#xff0c;就让我们一起揭开 epoll 神秘的面纱&#x…...

Windows开始ssh服务+密钥登录+默认启用powershell

文章内所有的命令都在power shell内执行&#xff0c;使用右键单击Windows徽标&#xff0c;选择终端管理员即可打开 Windows下OpenSSH的安装 打开Windows power shell&#xff0c;检查SSH服务的安装状态。会返回SSH客户端和服务器的安装状态&#xff0c;一下是两个都安装成功的…...

实体商铺私域流量打造策略:从引流到转化的全链路解析

在数字化时代&#xff0c;实体商铺面临着前所未有的挑战与机遇。随着线上购物的兴起&#xff0c;传统商铺如何吸引并留住顾客&#xff0c;成为了每个实体店家必须面对的问题。私域流量的打造&#xff0c;正是解决这一问题的关键所在。本文将从引流、留存、转化三个方面&#xf…...

实战 | 通过微调SegFormer改进车道检测效果(数据集 + 源码)

背景介绍 SegFormer&#xff1a;实例分割在自动驾驶汽车技术的快速发展中发挥了关键作用。对于任何在道路上行驶的车辆来说&#xff0c;车道检测都是必不可少的。车道是道路上的标记&#xff0c;有助于区分道路上可行驶区域和不可行驶区域。车道检测算法有很多种&#xff0c;每…...

翻译《The Old New Thing》- Why do messages posted by PostThreadMessage disappear?

Why do messages posted by PostThreadMessage disappear? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20090930-00/?p16553 Raymond Chen 2008年09月30日 为什么 PostThreadMessage 发布的信息会消失&#xff1f; 在显示用户界面的线…...

【深度学习】—— 神经网络介绍

神经网络介绍 本系列主要是吴恩达深度学习系列视频的笔记&#xff0c;传送门&#xff1a;https://www.coursera.org/deeplearning-ai 目录 神经网络介绍神经网络的应用深度学习兴起的原因 神经网络&#xff0c;全称人工神经网络&#xff08;Artificial Neural Network&#xf…...

python-数字黑洞

[题目描述] 给定一个三位数&#xff0c;要求各位不能相同。例如&#xff0c;352是符合要求的&#xff0c;112是不符合要求的。将这个三位数的三个数字重新排列&#xff0c;得到的最大的数&#xff0c;减去得到的最小的数&#xff0c;形成一个新的三位数。对这个新的三位数可以重…...

SpringCloud 负载均衡 spring-cloud-starter-loadbalancer

简述 spring-cloud-starter-loadbalancer 是 Spring Cloud 中的一个组件&#xff0c;它提供了客户端负载均衡的功能。在 Spring Cloud 的早期版本中&#xff0c;Netflix Ribbon 被广泛用作客户端负载均衡器&#xff0c;但随着时间推移和 Netflix Ribbon 进入维护模式&#xff…...

浏览器端微信使用指南:告别繁琐安装,开启轻量沟通新时代

浏览器端微信使用指南&#xff1a;告别繁琐安装&#xff0c;开启轻量沟通新时代 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为微信PC版的庞大…...

别再默认用E1000了!VMware虚拟机网卡选VMXNET3还是E1000E?实测数据告诉你答案

VMware虚拟机网卡性能实战&#xff1a;从理论到选型决策树 在虚拟化环境中&#xff0c;网络性能往往是决定整体系统效率的关键瓶颈之一。作为一名长期奋战在VMware运维一线的技术专家&#xff0c;我见过太多因为网卡选型不当导致的性能问题——从莫名其妙的网络延迟到令人抓狂的…...

3PEAK思瑞浦 TPA2772-VS1R MSOP8 运算放大器

特性 供电电压:3V至36V 偏移电压:在25C时最大3.5mV 轨到轨输入和输出 带宽:4.6 MHz 噪声容限:-良好&#xff0c;THD0.0008% 低噪声:1kHz时53nV/vHz 零交叉输入: -优异的总谐波失真加噪声:0.0008%...

别再写循环了!ABAP SQL聚合函数COUNT/AVG/MAX实战指南,5分钟搞定数据统计

ABAP SQL聚合函数实战&#xff1a;告别低效循环&#xff0c;5分钟掌握高阶统计技巧 每次看到ABAP报表里那些嵌套三层的LOOP和SORT语句&#xff0c;我的血压就会悄悄升高。上周review同事代码时&#xff0c;发现一个统计物料库存的报表竟然用了三个嵌套循环——外层遍历工厂、中…...

混合原型验证:软硬件协同的芯片设计革命

1. 混合原型验证&#xff1a;从割裂到统一的芯片设计革命在芯片设计的漫长周期里&#xff0c;硬件工程师和软件工程师常常像是在两个平行世界里工作。硬件团队埋头于RTL编码、综合、布局布线&#xff0c;最终将设计烧录进FPGA原型板&#xff0c;进行物理层面的调试和性能测试。…...

向量引擎、DeepSeek V4、GPT Image 2、api key:为什么 Agent 真正落地时,先补的不是模型,而是记忆层

向量引擎、DeepSeek V4、GPT Image 2、api key&#xff1a;为什么 Agent 真正落地时&#xff0c;先补的不是模型&#xff0c;而是记忆层最近这波 AI 的变化&#xff0c;有个很明显的信号。 模型还在继续变强&#xff0c;但讨论重心已经悄悄变了。 以前大家最爱问的是“哪个模型…...

Pangolin GUI实战:给你的C++机器人仿真程序加个带按钮和滑块的3D控制面板

Pangolin GUI实战&#xff1a;为C机器人仿真构建3D交互控制面板 在机器人算法开发过程中&#xff0c;仿真验证是不可或缺的环节。传统方式下&#xff0c;开发者往往需要反复修改代码参数或通过命令行调整变量&#xff0c;这种"编码-编译-运行"的循环效率低下&#xf…...

告别GSWP3:手把手教你为CESM2.1.3配置自定义气象强迫数据集(CLM1PT模式详解)

告别GSWP3&#xff1a;手把手教你为CESM2.1.3配置自定义气象强迫数据集&#xff08;CLM1PT模式详解&#xff09; 当研究团队需要将ERA5、CMIP6等新型再分析数据接入CESM模型时&#xff0c;往往会在数据接口环节遭遇"黑箱"操作困境。本文将以CLM1PT模式为切入点&#…...

100+ RPG Maker MV/MZ插件:零代码打造专业级游戏体验的完整指南

100 RPG Maker MV/MZ插件&#xff1a;零代码打造专业级游戏体验的完整指南 【免费下载链接】RPGMakerMV RPGツクールMV、MZで動作するプラグインです。 项目地址: https://gitcode.com/gh_mirrors/rp/RPGMakerMV 你是否曾梦想用RPG Maker制作出媲美商业游戏的视觉效果和…...

告别XML解析焦虑:用TinyXML2在C++项目中轻松读写配置文件(附完整代码)

告别XML解析焦虑&#xff1a;用TinyXML2在C项目中轻松读写配置文件&#xff08;附完整代码&#xff09; 在C开发中&#xff0c;配置文件管理是每个项目都无法绕开的环节。当我们需要保存用户偏好、游戏设置或系统参数时&#xff0c;选择一种合适的配置格式往往成为第一个技术决…...