机器学习-线性代数-5-空间中的向量投影与最小二乘法

空间中的向量投影与最小二乘法

文章目录

  • 空间中的向量投影与最小二乘法
    • 一、引入
    • 二、投影和投影的描述
      • 1、投影描述最近
      • 2、利用矩阵描述投影
        • (1)向一维直线投影
        • (2)向二维平面投影
        • (3)向n维子空间投影的一般情况
    • 三、最小二乘法
      • 1、重要的子空间
        • (1)互补的子空间
        • (2)正交的子空间
        • (3)相互正交补的子空间
        • (4)投影过程中子空间的选择
      • 2、最小二乘法

这一部分主要关于近似拟合

一、引入

  1. 线性方程无解情况:如何找到一个原始向量使得经过矩阵变换后距离目标向量最近
  2. 直线拟合:很多不在同一条直线上的点,如何找到一条直线距离这些点的距离最近

二、投影和投影的描述

1、投影描述最近

在空间中有一个穿过原点的直线,并且沿着向量 a a a的方向,在空间中有一个点 b b b,他不在直线上,如何在这条直线找到一个点,使之距离点 b b b最近?如图

image-20230622220522034

在图中,我们发现向量 b b b和向量 a a a的夹角是 θ \theta θ,因此通过b点到直线的最近距离是 ∣ b ∣ s i n θ |b| sin\theta bsinθ。还需要注意到向量 p p p,从原点出发到垂直交点的向量,他是向量 b b b在向量 a a a上的投影。而向量 e = b − p e =b- p e=bp我们称之为误差向量,他的长度就是我们要寻找的最近距离。

在二维、三维空间甚至是更高维空间中,需要使用矩阵工具来描述投影过程。

2、利用矩阵描述投影

如何用矩阵描述向量 b b b向一条直线、一个平面、一个 n n n维空间投影的过程呢?

(1)向一维直线投影

image-20230622220522034

若向量 b b b向一条直线(以 a a a为基向量)投影,记为向量 p p p,向量 p p p可以用 a a a来表示, p = x ^ a p = \hat{x}a p=x^a( x ^ \hat{x} x^表示标量),我们最终可以通过求取这个 x ^ \hat{x} x^,最终得到投影 p p p和投影矩阵$P $.

核心:误差向量 e e e和基向量 a a a垂直,因此有 a ⋅ e = 0 a·e = 0 ae=0,展开得 a ⋅ e = 0 → a ⋅ ( b − p ) = 0 → a ⋅ ( b − x ^ a ) = 0 a·e=0 \rightarrow a·(b - p) = 0 \rightarrow a·(b - \hat{x}a) = 0 ae=0a(bp)=0a(bx^a)=0,此时便可得到 x ^ = a ⋅ b a ⋅ a \hat{x} = \frac{a·b}{a·a} x^=aaab。由 a ⋅ b = a T b a·b = a^Tb ab=aTb,最终得 x ^ = a T b a T a \hat{x} = \frac{a^Tb}{a^Ta} x^=aTaaTb.

因此我们可以得到 p = x ^ a = a T b a T a a p = \hat{x}a = \frac{a^Tb}{a^Ta}a p=x^a=aTaaTba

最后我们要得到将向量 b b b变换到其投影 p p p的变换矩阵 P P P,可以通过如下变换:

p = x ^ a = a T b a T a a = a a T b a T a = a a T a T a b p = \hat{x}a = \frac{a^Tb}{a^Ta}a = a \frac{a^Tb}{a^Ta} = \frac{aa^T}{a^Ta}b p=x^a=aTaaTba=aaTaaTb=aTaaaTb

由此可以得到投影矩阵 P = a a T a T a P = \frac{aa^T}{a^Ta} P=aTaaaT

(2)向二维平面投影

下面将问题拓展到二维平面,这个二维平面不仅局限于 R 2 R^2 R2平面,而是空间中任意过原点的二维平面,假设这个二维平面是 R m R^m Rm的子空间。

若向量中同样有一个向量 b b b,我们想在二维平面找到一个与之距离最近的向量,也就是找向量 b b b在平面上的投影向量 p p p,如图

image-20230623203550344

目标依旧是找到投影 p p p和投影矩阵 P P P.

上过高中的一般都知道,一条直线如果和一个平面垂直,则与平面所有向量垂直,选取二维平面两个线性无关的两个向量 a 1 , a 2 a_1,a_2 a1,a2作为平面的一组基。只要保证误差向量 e e e a 1 , a 2 a_1,a_2 a1,a2分别垂直,就能保证 e e e与整个平面垂直,向量 p p p就是向量 b b b在平面上的投影向量。

同样,核心:误差向量 e e e和基向量 a a a垂直。 a 1 ⋅ e = 0 a_1·e = 0 a1e=0 a 2 ⋅ e = 0 a_2·e = 0 a2e=0,其中 e = b − p e = b - p e=bp

投影向量 p p p一定是 a 1 , a 2 a_1,a_2 a1,a2的线性组合,记作 p = p 1 + p 2 = x 1 ^ a 1 + x 2 ^ a 2 p = p_1 + p_2 = \hat{x_1}a_1 + \hat{x_2}a_2 p=p1+p2=x1^a1+x2^a2。将上面的式子进一步概括:记 A = [ a 1 , a 2 ] , x ^ = [ x 1 ^ x 2 ^ ] A = [a_1, a_2], \hat{x} = \left[\begin{matrix} \hat{x_1} \\\hat{x_2}\end{matrix} \right] A=[a1,a2],x^=[x1^x2^],可以将投影向量写为: p = A x ^ p = A\hat{x} p=Ax^.目标也就转换成求 x ^ \hat{x} x^了。

a 1 ⋅ e = 0 → a 1 ⋅ ( b − p ) = 0 → a 1 T ( b − A x ^ ) = 0 a_1·e = 0 \rightarrow a_1·(b - p) = 0\rightarrow a_1^T(b - A\hat{x}) = 0 a1e=0a1(bp)=0a1T(bAx^)=0,同理 a 2 T ( b − A x ^ ) = 0 a_2^T(b - A\hat{x}) = 0 a2T(bAx^)=0,将两式结合 [ a 1 T a 2 T ] ( b − A x ^ ) = 0 \left[\begin{matrix} a_1^T\\a_2^T\end{matrix} \right](b - A\hat{x})=0 [a1Ta2T](bAx^)=0. A = [ a 1 , a 2 ] A = [a_1, a_2] A=[a1,a2],此时这个式子就是 A T ( b − A x ^ ) = 0 → A T A x ^ = A T b A^T(b - A\hat{x}) = 0 \rightarrow A^TA\hat{x} = A^Tb AT(bAx^)=0ATAx^=ATb,最终有 x ^ = ( A T A ) − 1 A T b \hat{x} = (A^TA)^{-1}A^Tb x^=(ATA)1ATb.

所以 p = A x ^ = A ( A T A ) − 1 A T b p = A\hat{x} = A(A^TA)^{-1}A^Tb p=Ax^=A(ATA)1ATb,则投影矩阵 P = A ( A T A ) − 1 A T P = A(A^TA)^{-1}A^T P=A(ATA)1AT.

(3)向n维子空间投影的一般情况

与二维类似。

x ^ = ( A T A ) − 1 A T b \hat{x} = (A^TA)^{-1}A^Tb x^=(ATA)1ATb.

p = A x ^ = A ( A T A ) − 1 A T b p = A\hat{x} = A(A^TA)^{-1}A^Tb p=Ax^=A(ATA)1ATb

P = A ( A T A ) − 1 A T P = A(A^TA)^{-1}A^T P=A(ATA)1AT

以上讲解的便是如何将一个向量向空间中任意一个子空间进行投影的过程。

三、最小二乘法

最小二乘法关注的是向哪投影,即如何选择投影子空间的问题

1、重要的子空间

(1)互补的子空间

在一个 R m R^m Rm的空间中,我们可以选取 m m m个线性无关的向量 a 1 a_1 a1 a 2 a_2 a2、…、 a m a_m am构成一组基,如果将这组基向量分为两个组,分别构成子空间,可以说这两个空间是互补关系。

概括的说,互补的子空间一方面由不同的基向量所张成,另一方面他们的维数之和为整个 R m R^m Rm空间的维数。空间任意一个向量向这些子空间上的投影之和,就是向整个空间的投影。

(2)正交的子空间

子空间 V V V和子空间 W W W正交成立的条件是,子空间 V V V中任意一个向量 v v v和子空间 W W W中任意一个向量 w w w都垂直。

(3)相互正交补的子空间

R m R^m Rm中的两个互补子空间,如果满足相互正交关系,则他们满足正交补的关系。

(4)投影过程中子空间的选择

前面我们提到,在子空间中寻找与目标向量 b b b最近的投影向量 p p p,前提就是误差向量 e = b − p e = b - p e=bp与投影向量 p p p相互垂直。由于 b = e + p b = e + p b=e+p e ⋅ p = 0 e·p=0 ep=0,则 p p p所在的子空间和 e e e所在的子空间在 R m R^m Rm中构成了正交补的关系。

对于一个 R m R^m Rm的空间,矩阵 A m n A_{mn} Amn,所有满足 A x = 0 Ax = 0 Ax=0的向量 x x x构成了 A A A的零空间 N ( A ) N(A) N(A),这个式子展开

A x = [ c o l 1 c o l 2 . . . c o l m ] x = [ 0 . . . 0 ] Ax = [col_1\ col_2\ ...\ col_m]x = \left[\begin{matrix} 0 \\...\\0\end{matrix} \right] Ax=[col1 col2 ... colm]x= 0...0 表明任意一个列向量与任意一个零向量垂直,因此列空间与零空间在 R m R^m Rm空间中满足正交互补。

2、最小二乘法

上面求取无解线性方程组近似解的方法就是最小二乘法。最终算得投影后的误差最小 ∣ e ∣ = ∣ b − p ∣ = ( b 1 − p 1 ) 2 + ( b 2 − p 2 ) 2 + . . . + ( b m − p m ) 2 |e| = |b - p| = \sqrt{(b_1 - p_1)^2+(b_2 - p_2)^2+...+(b_m - p_m)^2} e=bp=(b1p1)2+(b2p2)2+...+(bmpm)2

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务day1

一、认识微服务 1、单体架构 将业务的所有功能集中在一个项目中开发,打成一个包部署。 优点 架构简单部署成本低 缺点 耦合度高 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fPfsQXAn-1689593800699)(https://picture.wangkay.tec…

gitee 使用

1.打开git bash 2.cd 进入到合适位置 3.git clone 项目 4.配置用户名和email(不然没法记录谁操作的) pycharm (ctrlk)

如何设计一个注册中心?(2)实现注册接口

1. 创建SpringBoot工程 创建父工程及三个子模块&#xff0c;其中一个模块作为注册中心&#xff0c;另外两个作为服务提供者。 pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns…

pytorch保存、加载和解析模型权重

1、模型保存和加载 主要有两种情况&#xff1a;一是仅保存参数&#xff0c;二是保存参数及模型结构。 保存参数&#xff1a; torch.save(net.state_dict()) 加载参数&#xff08;加载参数前需要先实例化模型&#xff09;&#xff1a; param torch.load(param.pth) net.load_…

2023最新版本Activiti7系列-身份服务

身份服务 在流程定义中在任务结点的 assignee 固定设置任务负责人&#xff0c;在流程定义时将参与者固定设置在.bpmn 文件中&#xff0c;如果临时任务负责人变更则需要修改流程定义&#xff0c;系统可扩展性差。针对这种情况可以给任务设置多个候选人或者候选人组&#xff0c;可…

vue-next-admin vue3.x版本,table自定义

vue3.x版本&#xff0c;将table进行了封装。使用起来更方便了。但是&#xff0c;有时候我们需要将一组信息显示到一列中。所以我将其进行了简单的二次改造。支持table-column自定义。 table改造代码 <template><div class"table-container"><el-tabl…

【Ajax】笔记-POST请求(原生)

POST请求 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>AJAX POST 请求</title><…

VScode——NPM脚本窗口找不到

一、问题描述&#xff08;NPM终端在任务栏左侧找不到&#xff09; VScode&#xff08;Visual Studio Code&#xff09;版本&#xff1a;1.79.2 二、解决办法 第一步&#xff1a;通过设置/用户设置/扩展/MPM更改NPM默认配置&#xff0c;如下图所示&#xff1a; 第二步&#xff…

springboot实现全局异常捕获

导言&#xff1a; 为什么要做异常处理&#xff1a; 原因有三&#xff1a; 1、将系统产生的全部异常统一捕获处理。 2、自定义异常需要由全局异常来捕获。 3、JSR303规范的validator参数校验器、参数校验不通过、本身无法使用try…catch 其实对于前后端分离的项目做异常处理…

分布式应用之Zookeeper和Kafka

分布式应用之Zookeeper和Kafka 一、Zookeeper 1.定义 分布式系统管理框架&#xff0c;主要用来解决分布式集群中应用系统的一致性问题 相当于各种分布式应用服务的 注册中心 文件系统 通知机制2.特点 &#xff08;1&#xff09;Zookeeper&#xff1a;一个领导者&#…

【Java基础教程】(十五)面向对象篇 · 第九讲:抽象类和接口——定义、限制与应用的细节,初窥模板设计模式、工厂设计模式与代理设计模式~

Java基础教程之面向对象 第九讲 本节学习目标1️⃣ 抽象类1.1 抽象类定义1.2 抽象类的相关限制1.3 抽象类应用——模板设计模式 2️⃣ 接口2.1 接口定义2.2 接口的应用——标准2.3 接口的应用——工厂设计模式 (Factory)2.4 接口的应用——代理设计模式 (Proxy) 3️⃣ 抽象类与…

数据库的扩展策略

了解不同的数据库扩展技术可以帮助我们选择适合我们需求和目的的合适策略。 因此&#xff0c;在本文中&#xff0c;我们将展示不同的解决方案和技术&#xff0c;用于扩展数据库服务器。它们分为读取和写入策略。 读取/加载 有时我们的应用程序承受着巨大的负载。为了解决这个…