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

线性代数|机器学习-P10最小二乘法的四种方案

文章目录

  • 1. 概述
  • 2. SVD奇异值分解
  • 3. 最小二乘法方程解
  • 4. 最小二乘法图像解释
  • 5. Gram-Schmidt

1. 概述

当我们需要根据一堆数据点去拟合出一条近似的直线的时候,就会用到 最小二乘法 .根据矩阵A的情况,有如下四种方法

  • 在r = n = m 时,SVD奇异值分解, A = U Σ V T A=U\Sigma V^T A=UΣVT,伪逆矩阵 A + = V Σ − 1 U T A^{+}=V\Sigma^{-1}U^T A+=VΣ1UT
  • 在矩阵A列满秩的情况下(r=n),直接用方程 A T A x ^ = A T b → x ^ = ( A T A ) − 1 A T b A^TA\hat{x}=A^Tb\rightarrow \hat{x}=(A^TA)^{-1}A^Tb ATAx^=ATbx^=(ATA)1ATb
  • 在条件数 σ 1 σ r \frac{\sigma_1}{\sigma_r} σrσ1太大时,通过Gram-Schmidt生成一个正交列向量, A = Q R → x ^ = R − 1 Q T b A=QR\rightarrow \hat{x}=R^{-1}Q^Tb A=QRx^=R1QTb,通过消除后得到可以求逆的 R − 1 R^{-1} R1
  • 加惩罚项, ( A T A + δ 2 I ) x ^ = A T b → x ^ = ( A T A + δ 2 I ) − 1 A T b (A^TA+\delta ^2 I)\hat{x}=A^Tb\rightarrow \hat{x}=(A^TA+\delta ^2 I)^{-1}A^Tb (ATA+δ2I)x^=ATbx^=(ATA+δ2I)1ATb,通过在对角线上加一个趋近于0的 δ 2 \delta ^2 δ2保证矩阵 ( A T A + δ 2 I ) (A^TA+\delta ^2 I) (ATA+δ2I)可逆,这样通过方程就可以得到想要的 x ^ \hat{x} x^

2. SVD奇异值分解

假设我们矩阵A可逆,那么我们就可以直接得到矩阵A的逆,那么此时的矩阵A的伪逆就等于矩阵A的逆
当矩阵 A 可逆 → A + = A − 1 \begin{equation} 当矩阵A可逆\rightarrow A^{+}=A^{-1} \end{equation} 当矩阵A可逆A+=A1
将矩阵A通过奇异值SVD分解可得如下:
A = U Σ V T , A T = V Σ T U T \begin{equation} A=U\Sigma V^T,A^T=V\Sigma^TU^T \end{equation} A=UΣVT,AT=VΣTUT

  • 得到 A A T , A T A AA^T,A^TA AAT,ATA
    A A T = U Σ Σ T U T , A T A = V Σ T Σ V T \begin{equation} AA^T=U\Sigma\Sigma^T U^T,A^TA=V\Sigma^T\Sigma V^T \end{equation} AAT=UΣΣTUT,ATA=VΣTΣVT
  • A A T AA^T AAT可以看出矩阵A右乘以 A T A^T AT,所以得到结果为列空间向量,所以U为列空间基;同理 A T A A^TA ATA可以看出矩阵A左乘以 A T A^T AT,所以结果为行空间向量,所以V为行空间基。那么我们可以通过 A v i = σ i u i Av_i=\sigma_i u_i Avi=σiui来对看作是行空间基 v i v_i vi 通过 A v i Av_i Avi变换后直接得到列空间基 σ i u i \sigma_i u_i σiui,同理可得, A T u i = σ i v i A^Tu_i=\sigma_i v_i ATui=σivi可以看作是列空间基 u i u_i ui,通过 A T u i A^Tu_i ATui变换后直接得到行空间基 σ i v i \sigma_i v_i σivi,那么对于行空间(r个基向量)和列空间(r个基向量)之间可以通过 A , A T A,A^T A,AT进行转换
    A v i = σ i u i , A T u i = σ i v i → A + = A T \begin{equation} Av_i=\sigma_iu_i,A^Tu_i=\sigma_iv_i\rightarrow A^{+}=A^T \end{equation} Avi=σiui,ATui=σiviA+=AT
    在这里插入图片描述
  • 通过奇异值分解可得:
    A = U Σ V T = [ u 1 u 2 ⋯ u m ] [ σ 1 σ 2 ⋱ σ r 0 ] [ v 1 T v 2 T ⋮ v n T ] \begin{equation} A=U\Sigma V^T=\begin{bmatrix}u_1&u_2&\cdots &u_m\end{bmatrix}\begin{bmatrix}\sigma_1\\\\&\sigma_2\\\\&&\ddots\\\\&&&\sigma_r\\\\&&&&0\end{bmatrix}\begin{bmatrix}v_1^T\\\\v_2^T\\\\\vdots \\\\v_n^T\end{bmatrix} \end{equation} A=UΣVT=[u1u2um] σ1σ2σr0 v1Tv2TvnT
  • 将矩阵A求逆可得:
    A − 1 = V Σ − 1 U T = V [ σ 1 − 1 σ 2 − 1 ⋱ σ r − 1 0 − 1 ] U T \begin{equation} A^{-1}=V\Sigma^{-1} U^T=V\begin{bmatrix}\sigma_1^{-1}\\\\&\sigma_2^{-1}\\\\&&\ddots\\\\&&&\sigma_r^{-1}\\\\&&&&0^{-1}\end{bmatrix}U^T \end{equation} A1=VΣ1UT=V σ11σ21σr101 UT
    Σ Σ − 1 = [ 1 1 ⋱ 1 0 ⋱ 0 ] \begin{equation} \Sigma\Sigma^{-1}=\begin{bmatrix}1\\\\&1\\\\&&\ddots\\\\&&&1\\\\&&&&0\\\\&&&&&\ddots\\\\&&&&&&0\end{bmatrix} \end{equation} ΣΣ1= 11100
  • 我们发现 0 − 1 0^{-1} 01根本不存在,所以奇异值分解直接求伪逆 A − 1 A^{-1} A1也出问题了。出问题的点在于对于特征值为0时候,无法求0的倒数,那就是所如果我们不用零空间的向量和其0特征值,只有行和列空间里面的向量,那么就没这个问题了,这就是Gram-Schmidt的思路,从矩阵A的列空间中挑选向量u_1,其他向量 m 1 m_1 m1 不是列空间的,那就通过正交化Gram-Schmidt 将其变换为 m 1 → u 2 m_1\rightarrow u_2 m1u2,这样我们就能得到一个可逆矩阵M,这样我们就能通过公式 M − 1 M^{-1} M1直接计算所需要的 x ^ \hat{x} x^

3. 最小二乘法方程解

我们知道,当我们有一个方程 A x = b Ax=b Ax=b时,我们得到的是一堆数据点,我们需要拟合一个直线,使得 ∣ ∣ A x ^ − b ∣ ∣ 2 2 = ( A x ^ − b ) 2 ||A\hat{x}-b||_2^2=(A\hat{x}-b)^2 ∣∣Ax^b22=(Ax^b)2 值最小,所以我们得到如下方程:
y = ( A x − b ) 2 = ( A x − b ) T ( A x − b ) = ( x T A T − b T ) ( A x − b ) \begin{equation} y=(Ax-b)^2=(Ax-b)^T(Ax-b)=(x^TA^T-b^T)(Ax-b) \end{equation} y=(Axb)2=(Axb)T(Axb)=(xTATbT)(Axb)

  • 整理可得:
    y = x T A T A x − x T A T b − b T A x + b T b \begin{equation} y=x^TA^TAx-x^TA^Tb-b^TAx+b^Tb \end{equation} y=xTATAxxTATbbTAx+bTb
  • 因为 b T A x b^TAx bTAx为常数,所以得到 x T A T b = b T A x x^TA^Tb=b^TAx xTATb=bTAx
    y = x T A T A x − 2 b T A x + b T b → ∂ y ∂ x = ∂ x T A T A x ∂ x − 2 ∂ b T A x ∂ x \begin{equation} y=x^TA^TAx-2b^TAx+b^Tb\rightarrow \frac{\partial y}{\partial x}= \frac{\partial x^TA^TAx}{\partial x}-2 \frac{\partial b^TAx}{\partial x} \end{equation} y=xTATAx2bTAx+bTbxy=xxTATAx2xbTAx
  • 根据矩阵求导可得,注意转置符号,别漏了
    ∂ x T A T A x ∂ x = 2 A T A x ; − 2 ∂ b T A x ∂ x = A T b \begin{equation} \frac{\partial x^TA^TAx}{\partial x}=2A^TAx;-2 \frac{\partial b^TAx}{\partial x}=A^Tb \end{equation} xxTATAx=2ATAx;2xbTAx=ATb
  • 所以求导公式可以整理得到:
    ∂ y ∂ x = 2 A T A x − 2 A T b = 0 → A T A x ^ = A T b \begin{equation} \frac{\partial y}{\partial x}=2A^TAx-2A^Tb=0\rightarrow A^TA\hat{x}=A^Tb \end{equation} xy=2ATAx2ATb=0ATAx^=ATb
  • 是不是很神奇,用矩阵求导得到的结果,居然是跟我们用投影法一样的,如果要满足求出上述的 x ^ \hat{x} x^,也就需要 A T A A^TA ATA 可逆,也就是需要矩阵A满秩,所以跟以前对上来了。
  • 当矩阵A列满秩,所以 A T A A^TA ATA 可逆,方程有解如下:
    x ^ = ( A T A ) − 1 A T b \begin{equation} \hat{x}=(A^TA)^{-1}A^Tb \end{equation} x^=(ATA)1ATb

4. 最小二乘法图像解释

假设我们有一个矩阵A和方程 A x = b Ax=b Ax=b,求解最优 b ^ \hat{b} b^?

  • 从四个子空间可以看出,我们画出任意向量b,如下图所示:
    当我们要求的向量b不在由矩阵A的列向量组成的空间时候,我们其实无法得到正确的解,那么怎么办呢?如果我们将向量b分解,一部分通过投影可得向量 p = A x ^ p=A\hat{x} p=Ax^,其在矩阵A的列空间中,另外一部分就是e= A x − b Ax-b Axb,只有投影上去了,我们才能够根据向量p来求得近似的解 x ^ \hat{x} x^
    在这里插入图片描述

5. Gram-Schmidt

Gram-Schmidt 的作用是将矩阵A进行正交分解为 A = Q R A=QR A=QR,本身也是通过投影后相减得到垂直向量,这样通过Gram-Schmidt 变换后的矩阵都正交,得到一个可逆矩阵Q和R
A = Q R , A T = R T Q T , A T A x ^ = A T b → R T Q T Q R x ^ = R T Q T b → R x ^ = Q T b \begin{equation} A=QR,A^T=R^TQ^T,A^TA\hat{x}=A^Tb\rightarrow R^TQ^TQR\hat{x}=R^TQ^Tb\rightarrow R\hat{x}=Q^Tb \end{equation} A=QR,AT=RTQT,ATAx^=ATbRTQTQRx^=RTQTbRx^=QTb

  • 整理可得:
    x ^ = R − 1 Q T b \begin{equation} \hat{x}=R^{-1}Q^Tb \end{equation} x^=R1QTb

相关文章:

线性代数|机器学习-P10最小二乘法的四种方案

文章目录 1. 概述2. SVD奇异值分解3. 最小二乘法方程解4. 最小二乘法图像解释5. Gram-Schmidt 1. 概述 当我们需要根据一堆数据点去拟合出一条近似的直线的时候,就会用到 最小二乘法 .根据矩阵A的情况,有如下四种方法 在r n m 时,SVD奇异…...

【Android面试八股文】你能描述一下JVM中的类加载过程吗?

文章目录 一、Java类的生命周期二、JVM类加载过程1. 加载(Loading)2. 链接(Linking)a. 验证(Verification)b. 准备(Preparation)b.1 准备阶段的初始值b.2 用户定义的初值b.3 常量的初始化c. 解析(Resolution)3. 初始化(Initialization)3.1 什么是 `<clinit>`…...

MYSQL八、MYSQL的SQL优化

一、SQL优化 sql优化是指&#xff1a;通过对sql语句和数据库结构的调整&#xff0c;来提高数据库查询、插入、更新和删除等操作的性能和效率。 1、插入数据优化 要一次性往数据库表中插入多条记录&#xff1a; insert into tb_test values(1,tom); insert into tb_tes…...

鸿蒙轻内核M核源码分析系列二一 02 文件系统LittleFS

1、LFS文件系统结构体介绍 会分2部分来介绍结构体部分&#xff0c;先介绍LittleFS文件系统的结构体&#xff0c;然后介绍LiteOS-M内核中提供的和LittleFS相关的一些结构体。 1.1 LittleFS的枚举结构体 在openharmony/third_party/littlefs/lfs.h头文件中定义LittleFS的枚举、…...

【ARMv8/ARMv9 硬件加速系列 3 -- SVE 指令语法及编译参数详细介绍】

文章目录 SVE 汇编语法SVE 单通道谓词SVE 测试代码 SVE 软件和库支持SVE 编译参数配置-marcharmv8-alseprofilememtagsve2-aessve2-bitpermcryptosve2sve2-sha3sve2-sm4 SVE 汇编语法 在介绍 SVE 汇编指令语法之前&#xff0c;先介绍下如何判断自己所使用的芯片是否实现了SVE功…...

Java版+ SaaS应用+接口技术RESTful API 技术开发的智慧医院HIS系统源码 专注医院管理系统研发 支持二开

Java版 SaaS应用接口技术RESTful API WebSocket WebService技术开发的智慧医院HIS系统源码 专注医院管理系统研发 支持二开 医院住院管理系统&#xff08;Hospital Information System简称HIS&#xff09;是一门医学、信息、管理、计算机等多种学科为一体的边缘科学&#xff…...

工业机器人远程运维,增强智慧工厂运营管理

1、需求背景 随着工业自动化技术的普及和工业机器人应用的增加&#xff0c;制造业对于生产线稳定性和效率的要求不断提高。然而&#xff0c;传统的现场监控方式存在着地理位置限制、实时监控难度大以及诊断能力有限等问题&#xff0c;迫切需要一种更具灵活性和效率的监控方式。…...

理解Python的元类

1.type()函数 type 函数是一个内置函数&#xff0c;用来获取一个对象的类型。它可以接受一个参数&#xff0c;返回这个参数的数据类型。type也可以用来创建类&#xff0c;type就是元类 x333 list["ab"] tuple (1, "a", True, 3.14) dict {name: Alice,…...

web前端黑马下载:探索学习资源的海洋

web前端黑马下载&#xff1a;探索学习资源的海洋 在数字化时代&#xff0c;Web前端技术日益成为互联网行业的核心驱动力。为了跟上这一趋势&#xff0c;众多学习者纷纷投身于Web前端的学习之中。而在这个过程中&#xff0c;“黑马”作为一个备受瞩目的品牌&#xff0c;其Web前…...

最新版jd-gui下载

对于java开发的工程师来说&#xff0c;jd-gui应该是经常会用到的工具了 官网的jd-gui目前只支持到JAVA13&#xff0c;更新版本JAVA编译出来的JAR包就反编译不出来了 此版本支持到了JAVA23 如果需要win以外的其他版本&#xff0c;可以查看我的其他上传 如果不想花积分&#…...

(051)FPGA时钟--->(001)时钟介绍

(001)时钟介绍 1 目录 (a)FPGA简介 (b)Verilog简介 (c)时钟简介 (d)时钟介绍 (e)结束 1 FPGA简介 (a)FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。它是作为专用集成电…...

Java程序员英语单词通关:

Java程序员英语单词通关&#xff1a; abstract - 抽象的 boolean - 布尔值 break - 打断 byte - 字节 case - 情况&#xff0c;实例 catch - 捕获 char - 字符 class - 类 continue - 继续 default - 默认&#xff0c;通常 do - 做&#xff0c;运行 double - 双精度…...

数据库开发-Mysql03

目录 1. 多表查询 1.1 概述 1.1.1 数据准备 1.1.2 介绍 1.1.3 分类 1.2 内连接 1.3 外连接 1.4 子查询 1.4.1 介绍 1.4.2 标量子查询 1.4.3 列子查询 1.4.4 行子查询 1.4.5 表子查询 1.5 案例 2. 事务 2.1 介绍 2.2 操作 2.3 四大特性 3. 索引 3.1 介绍 3…...

0-1 背包问题(动态规划 查询背包元素)

描述 给定n种物品和一个背包&#xff0c;物品i的重量是Wi​&#xff0c;其价值为Vi​&#xff0c;问如何选择装入背包的物品&#xff0c;使得装入背包的物品的总价值最大&#xff1f; 在选择装入背包的物品时&#xff0c;对每种物品i只能有两种选择&#xff0c;装入或者不装入…...

elasticsearch快照生成与恢复

Elasticsearch快照生成与恢复的场景主要涉及到数据的备份与恢复需求。当需要对Elasticsearch集群中的数据进行备份&#xff0c;或者在数据丢失、损坏等情况下需要恢复数据时&#xff0c;就可以使用快照功能。 快照生成的方法通常包括以下步骤&#xff1a; 1、创建一个快照仓库…...

178.二叉树:最大二叉树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…...

跨境电商中的IP隔离是什么?怎么做?

一、IP地址隔离的概念和原理 当我们谈论 IP 地址隔离时&#xff0c;我们实际上是在讨论一种网络安全策略&#xff0c;旨在通过技术手段将网络划分为不同的区域或子网&#xff0c;每个区域或子网都有自己独特的 IP 地址范围。这种划分使网络管理员可以更精细地控制哪些设备或用…...

【C++】stack、queue和deque的使用

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读 一、stack 1. stack介绍 2. stack使用 二、queue 1. queue介绍 2. queue使用 三、deque 1. deque介绍 2. deque的…...

通过SSH远程登录华为设备

01 进入系统编辑视图 system-view Enter system view, return user view with return command. 02 创建本地RSA密钥对 [HUAWEI]rsa local-key-pair creat The key name will be:HUAWEI_Host The range of public key size is (2048 ~ 2048). NOTE: Key pair generation will ta…...

算法day27

第一题 515. 在每个树行中找最大值 首先是遍历每层的节点&#xff0c;将每一层最大值的节点的值保留下来&#xff0c;最后将所有层的最大值的表返回&#xff1b;具体的遍历每层节点的过程如上一篇故事&#xff1b; 综上所述&#xff0c;代码如下&#xff1a; /*** Definition …...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要&#xff1a;在消费市场竞争日益激烈的当下&#xff0c;传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序&#xff0c;探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式&#xff0c;分析沉浸式体验的优势与价值…...