MIT线性代数笔记-第30讲-奇异值分解

news2024/11/17 1:32:09

目录

  • 30.奇异值分解
    • 打赏

30.奇异值分解

奇异值分解(简称 S V D SVD SVD分解)可以将一个比较复杂的矩阵用更小更简单的几个子矩阵相乘来表示,这些小矩阵描述的都是矩阵的重要的特性。奇异值分解在图形降噪、推荐系统中都有很重要的应用。

对于任意矩阵 A A A都有 A = U Σ V T A = U \Sigma V^T A=UΣVT,其中 U , V U , V U,V为正交矩阵,当 A A A为方阵时, Σ \Sigma Σ为对角阵且其主对角线元素即为 A A A的奇异值

由主轴定理可知对称矩阵的奇异值分解为 Q Λ Q T Q \Lambda Q^T QΛQT,此时 U = V = Q U = V = Q U=V=Q

A A A是一个 m m m n n n列的矩阵且秩为 r r r,可以将 A A A视为一个线性变换且能把行空间中的向量 v ⃗ \vec{v} v 变为列空间中的 u ⃗ \vec{u} u ,即 u ⃗ = A v ⃗ \vec{u} = A \vec{v} u =Av

考虑 A A A行空间的一组标准正交基,经过 A A A的变换后不一定能得到列空间的一组正交基,因此那组满足条件的标准正交基尤为重要,再考虑将变换后的每个向量都视为一个单位向量的倍数,即 A v ⃗ = σ u ⃗ A \vec{v} = \sigma \vec{u} Av =σu (其中 v ⃗ , u ⃗ \vec{v} , \vec{u} v ,u 均为单位向量),最后将上述过程用矩阵表示得 A [ v ⃗ 1 v ⃗ 2 ⋯ v ⃗ r ] = [ u ⃗ 1 u ⃗ 2 ⋯ u ⃗ r ] [ σ 1 0 ⋯ 0 0 σ 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ σ r ] A \begin{bmatrix} \vec{v}_1 & \vec{v}_2 & \cdots & \vec{v}_r \end{bmatrix} = \begin{bmatrix} \vec{u}_1 & \vec{u}_2 & \cdots & \vec{u}_r \end{bmatrix} \begin{bmatrix} \sigma_1 & 0 & \cdots & 0 \\ 0 & \sigma_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \sigma_r \end{bmatrix} A[v 1v 2v r]=[u 1u 2u r] σ1000σ2000σr ,即 A V = U Σ A V = U \Sigma AV=UΣ

  1. A A A是可逆矩阵时, U , V U , V U,V为正交矩阵,所以 A = U Σ V − 1 = U Σ V T A = U \Sigma V^{-1} = U \Sigma V^T A=UΣV1=UΣVT

    接下来求解 U , V U , V U,V,先考虑消去 U U U,由上一讲可知 A T A A^T A ATA至少是半正定的,这说明它具有很好的性质,接下来表示出 A T A A^T A ATA,有 A T A = V Σ T U T U Σ V T = V Σ 2 V T = V [ σ 1 2 0 ⋯ 0 0 σ 2 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ σ r 2 ] V T A^T A = V \Sigma^T U^T U \Sigma V^T = V \Sigma^2 V^T = V \begin{bmatrix} \sigma_1^2 & 0 & \cdots & 0 \\ 0 & \sigma_2^2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \sigma_r^2 \end{bmatrix} V^T ATA=VΣTUTUΣVT=VΣ2VT=V σ12000σ22000σr2 VT

    因为 A T A A^T A ATA是对称矩阵,又 A T A A^T A ATA的特征值非负且 Σ 2 \Sigma^2 Σ2的主对角线元素为平方也非负,所以 V Σ 2 V T V \Sigma^2 V^T VΣ2VT可以被视为 Q Λ Q T Q \Lambda Q^T QΛQT,这样就求出了 V , Σ V , \Sigma V,Σ,即 v ⃗ 1 , v ⃗ 2 , ⋯   , v ⃗ r \vec{v}_1 , \vec{v}_2 , \cdots , \vec{v}_r v 1,v 2,,v r分别为 A T A A^T A ATA的标准正交特征向量, σ 1 , σ 2 , ⋯   , σ r \sigma_1 , \sigma_2 , \cdots , \sigma_r σ1,σ2,,σr分别为 A T A A^T A ATA特征值的平方根

    同理可以由 A A T A A^T AAT得到 U U U,即 u ⃗ 1 , u ⃗ 2 , ⋯   , u ⃗ r \vec{u}_1 , \vec{u}_2 , \cdots , \vec{u}_r u 1,u 2,,u r分别为 A A T A A^T AAT的标准正交特征向量

    例: A = [ 4 4 − 3 3 ] A = \begin{bmatrix} 4 & 4 \\ -3 & 3 \end{bmatrix} A=[4343] S V D SVD SVD分解

    ​   有 A T A = [ 4 − 3 4 3 ] [ 4 4 − 3 3 ] = [ 25 7 7 25 ] A^T A = \begin{bmatrix} 4 & -3 \\ 4 & 3 \end{bmatrix} \begin{bmatrix} 4 & 4 \\ -3 & 3 \end{bmatrix} = \begin{bmatrix} 25 & 7 \\ 7 & 25 \end{bmatrix} ATA=[4433][4343]=[257725],解得其特征值为 32 , 18 32 , 18 32,18,对应特征向量 [ 1 1 ] , [ 1 − 1 ] \begin{bmatrix} 1 \\ 1 \end{bmatrix} , \begin{bmatrix} 1 \\ -1 \end{bmatrix} [11],[11]

    ​   标准化后得到 [ 1 2 1 2 ] , [ 1 2 − 1 2 ] \begin{bmatrix} 1\over{\sqrt{2}} \\ 1\over{\sqrt{2}} \end{bmatrix} , \begin{bmatrix} 1\over{\sqrt{2}} \\ -1\over{\sqrt{2}} \end{bmatrix} [2 12 1],[2 12 1],所以 Σ = [ 4 2 0 0 3 2 ] , V T = [ 1 2 1 2 1 2 − 1 2 ] \Sigma = \begin{bmatrix} 4\sqrt{2} & 0 \\ 0 & 3\sqrt{2} \end{bmatrix} , V^T = \begin{bmatrix} 1\over{\sqrt{2}} & 1\over{\sqrt{2}} \\ 1\over{\sqrt{2}} & -1\over{\sqrt{2}} \end{bmatrix} Σ=[42 0032 ],VT=[2 12 12 12 1]

    ​   再用和求 V V V类似的方法求得 U = [ 1 0 0 1 ] U = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} U=[1001],但是此时 U Σ V T = [ 4 4 3 − 3 ] ≠ A U \Sigma V^T = \begin{bmatrix} 4 & 4 \\ 3 & -3 \end{bmatrix} \ne A UΣVT=[4343]=A

    ​   这是因为在求 u ⃗ \vec{u} u 时没有考虑已经求得的对应 v ⃗ \vec{v} v ,而 u ⃗ \vec{u} u 本应该由对应 v ⃗ \vec{v} v 得到,所以应该用已经求得的 V V V Σ \Sigma Σ求出 U U U

    ​   比如把该例子中 U U U的第二个列向量换为 [ 0 − 1 ] \begin{bmatrix} 0 \\ -1 \end{bmatrix} [01],仍然可以对应特征值且保持标准正交,还满足 U Σ V T = A U \Sigma V^T = A UΣVT=A

  2. A A A是奇异矩阵时,应该考虑矩阵的零空间和左零空间,它们分别和行空间、列空间正交,因此分别把它们的一组标准正交基加入 V , U V , U V,U,这样 U , V U , V U,V又成为了正交矩阵,并且零空间和左零空间基中的元素对应的 σ = 0 \sigma = 0 σ=0

    A [ v ⃗ 1 ⋯ v ⃗ r v ⃗ r + 1 ⋯ v ⃗ n ] = [ u ⃗ 1 ⋯ u ⃗ r u ⃗ r + 1 ⋯ u ⃗ n ] [ σ 1 ⋯ 0 0 ⋯ 0 ⋮ ⋱ ⋮ ⋮ ⋯ ⋮ 0 ⋯ σ r 0 ⋯ 0 0 ⋯ 0 0 ⋯ 0 ⋮ ⋯ ⋮ ⋮ ⋱ ⋮ 0 ⋯ 0 0 ⋯ 0 ] A \begin{bmatrix} \vec{v}_1 & \cdots & \vec{v}_r & \vec{v}_{r + 1} & \cdots & \vec{v}_n \end{bmatrix} = \begin{bmatrix} \vec{u}_1 & \cdots & \vec{u}_r & \vec{u}_{r + 1} & \cdots & \vec{u}_n \end{bmatrix} \begin{bmatrix} \sigma_1 & \cdots & 0 & 0 & \cdots & 0 \\ \vdots & \ddots & \vdots & \vdots & \cdots & \vdots \\ 0 & \cdots & \sigma_r & 0 & \cdots & 0 \\ 0 & \cdots & 0 & 0 & \cdots & 0 \\ \vdots & \cdots & \vdots & \vdots & \ddots & \vdots \\ 0 & \cdots & 0 & 0 & \cdots & 0 \end{bmatrix} A[v 1v rv r+1v n]=[u 1u ru r+1u n] σ10000σr0000000000

    这样也有 A = U Σ V T A = U \Sigma V^T A=UΣVT,求 U , V U , V U,V的方法和 A A A为可逆矩阵时一致

  3. A A A不是方阵时,考虑了零空间和左零空间后, U , V U , V U,V的维数分别为 m , n m , n m,n,不再相等,所以 Σ \Sigma Σ会是一个 m m m n n n列的矩阵

    但是仍然有 A = U Σ V T A = U \Sigma V^T A=UΣVT,并且求 U , V U , V U,V的方法还是一样的


打赏

制作不易,若有帮助,欢迎打赏!
赞赏码

支付宝付款码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1339025.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最优化考试之牛顿法

最优化考试之牛顿法 一、牛顿法1.问题条件2.求解过程3.例子 PS 一、牛顿法 1.问题条件 目标函数 f ( x ) f(x) f(x),求极小值初始点 x 0 x_0 x0​精度要求e(没有提就是近似0) 2.求解过程 求解一阶雅克比矩阵 ∇ f ( x ) ∇f(x) ∇f(x)和二…

分享11 种有用的 JavaScript 技巧

今天这篇文章,我想与你分享 11个有用的JavaScript实用小技巧,它们将极大地提高你的工作效率。 1.生成随机颜色的两种方式 1).生成RandomHexColor const generateRandomHexColor () > {return #${Math.floor(Math.random() * 0xffffff)…

Java多线程的概念以及三种实现方式(Thread类,Callable接口,Runnable接口)

目录 1.线程2.多线程的应用场景3.并发和并行4.多线程的实现方式1.继承Thread类的方式进行实现2.实现**Runnable接口**的方式进行实现3.利用Callable接口和Future接口方式实现 4.多线程几种实现方式之间的对比 1.线程 线程是操作系统能够进行运算调度的最小单位。它被包含在进程…

Jmeter之JSON断言

需求 我们发送一个请求&#xff0c;结果返回json数据&#xff0c;我们需要根据json数据中code的值来判断此次请求是否成功。 接口案例&#xff1a; PostMapping(value "/login") public ResponseMessage<String> login(RequestBody SeckillUserDTO seckill…

LeetCode-移除元素(27) 合并两个有序数组(88)

1.移除元素&#xff08;27&#xff09; 题目描述&#xff1a; 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入…

Session的使用详解(创建,获取和销毁)

文章目录 Session的使用详解&#xff08;创建&#xff0c;获取和销毁&#xff09;1、为什么使用session,与cookie的区别2、session是什么3、session的常用方法4、session的构造和获取代码演示SetSessionServlet.javaGetSessionServlet.javaweb.xml运行结果如下: 5、销毁session…

跨境电商营销工具:功能详解与实战应用!

在当今全球化的电商市场中&#xff0c;跨境电商营销工具已经成为企业不可或缺的营销利器。 这些工具为企业提供了丰富的功能&#xff0c;帮助企业更好地拓展海外市场、提升品牌影响力&#xff0c;本文将为您详细解读跨境电商营销工具的一般功能&#xff0c;以及如何在实际操作…

【JavaScript】垃圾回收与内存泄漏

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

HPM6750开发笔记《开发环境的搭建》

目录 一&#xff0c;下载完整的HPM—SDK 二&#xff0c;安装硬件驱动 二&#xff0c;软件激活 三&#xff0c;创建工程 1.用文档中给的方法创建工程&#xff1a; 2.用sdk_env_v1.3.0中提供的工具创建工程&#xff1a; 一&#xff0c;下载完整的HPM—SDK 下载网址&#x…

ElasticSearch 搜索数据

精确查询 存在查询 Exists query 用于查询某个字段不为空的数据。如下所示&#xff0c;查询 age 不为空的 数据 POST user/_search {"query": {"exists": {"field": "age"}} }主键查询 通过 _id 字段查询数据 POST user/_search …

【深度学习-目标检测】05 - YOLOv1 论文学习与总结

论文地址&#xff1a;You Only Look Once:Unified, Real-Time Object Detection 论文学习 1. 摘要 YOLO的提出&#xff1a;作者提出了YOLO&#xff0c;这是一种新的目标检测方法。与传统的目标检测方法不同&#xff0c;YOLO将目标检测视为一个回归问题&#xff0c;直接从图像…

搭建FTP服务器详细介绍

一.FTP简介 &#xff11;.&#xff11;什么是FTP &#xff11;.&#xff12;FTP服务器介绍 &#xff11;.&#xff13;FTP服务器优缺点 二.FTP服务器的搭建与配置 2.1 开启防火墙 2.2创建组 2.3创建用户 2.4安装FTP服务器 2.5配置FTP服务器 &#xff12;.&#xff…

PS3111主控的SSD固态硬盘固件门掉盘通病问题解决,硬盘型号变成satafirms11修复步骤

我手上的型号是某OEM厂商的定制盘&#xff0c;主控芯片为PHISON-PS3111-S11-13 &#xff0c;经过升级工具升级完美解决硬盘型号变成satafirms11的问题 所需工具及文件资源 查看固态硬盘芯片的Phison flash idSBFMP1W3自动升级文件 以上所需在群联PHISON S11的官方固态资源库中…

【漏洞复现】某检测系统(admintool)接口任意文件上传漏洞

文章目录 前言声明一、漏洞详情二、影响版本三、漏洞复现四、修复建议 前言 湖南建研检测系统 admintool接口任意文件上传漏洞&#xff0c;攻击者可通过该漏洞获取服务器敏感信息。 声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者…

Bert模型from_pretrained报网络错误解决办法

问题描述&#xff1a; 服务器或者本地运行以下代码时报网络连接错误&#xff1a; from transformers import AutoTokenizermodel_checkpoint "distilbert-base-uncased" tokenizer AutoTokenizer.from_pretrained(model_checkpoint, use_fastTrue, cache_dir./cac…

封顶降价!渲染质量随心选,炫云效果图进入10元封顶时代

为进一步帮助使用V-Ray效果图渲染的用户更合理地控制渲染费用、更灵活地选择渲染质量&#xff0c;自12月21日起&#xff0c;炫云针对不同服务器配置、不同渲染质量&#xff0c;对单张V-Ray效果图渲染设置新的扣费上限&#xff0c;封顶降价再创新低&#xff0c;炫云效果图开启10…

go 使用 - sync.Metux

[TOC]&#xff08;sync.metux 使用&#xff09; 简介 简述使用metux使用的方法&#xff0c; 使用的注意点&#xff0c; 以及使用情况使用方法 提供的方法 Lock() 方法用于获取锁 Unlock() 方法用于释放锁 TryLock()方法尝试获取锁 对共享资源进行加速&#xff0c; 例 &#…

超分之SRGAN

Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network使用生成对抗网络的逼真单图像超分辨率一作&#xff1a;Christian Ledig是Twitter2017年的一篇论文。 文章目录 0. 摘要1. 引言1.1 相关工作1.1.1 介绍了SR技术的发展历程1.1.2 介绍了SR…

Docker (compose、安装、常用命令整理、compose编排) -day06

一、概念 Docker-Compose就是容器编排&#xff0c;负责实现对Docker容器集群的快速编排 Compose允许用户通过一个单独的docker-compose.yml模板文件&#xff08;YAML 格式&#xff09;来定义一组相关联的应用容器为一个项目&#xff08;project&#xff09;。 可以很容易地用一…

【AI服饰】孔雀背景服装_AIGC服饰订制设计咨询产业

服饰系列 AIGC&#xff08;Artificial Intelligence Generated Content&#xff09;服饰图是指通过人工智能生成的服装设计图案。随着人工智能技术的不断进步&#xff0c;AIGC服饰图在未来有着广阔的发展空间。 首先&#xff0c;AIGC服饰图可以提供更多的设计可能性。传统的服…