线性代数|机器学习-P2 A的列向量空间

2024-06-02 09:04

本文主要是介绍线性代数|机器学习-P2 A的列向量空间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. Ax矩阵的形式
  • 2. A=CR 矩阵分解
    • 2.1 rank=1 矩阵分解
    • 2.2 rank=2 矩阵分解
    • 2.3 A=CMR,求M
  • 3. Ax 向量

1. Ax矩阵的形式

假设我们有如下矩阵A:
A x = [ 2 1 3 3 1 4 5 7 12 ] [ x 1 x 2 x 3 ] \begin{equation} Ax=\begin{bmatrix} 2&1&3\\\\ 3&1&4\\\\ 5&7&12 \end{bmatrix}\begin{bmatrix}x_1\\\\x_2\\\\x_3\end{bmatrix} \end{equation} Ax= 2351173412 x1x2x3

  • 从行角度计算如下:
    A x = [ 2 1 3 ] [ x 1 x 2 x 3 ] + [ 3 1 4 ] [ x 1 x 2 x 3 ] + [ 5 7 12 ] [ x 1 x 2 x 3 ] \begin{equation} Ax=\begin{bmatrix} 2&1&3 \end{bmatrix}\begin{bmatrix}x_1\\\\x_2\\\\x_3\end{bmatrix}+\begin{bmatrix} 3&1&4 \end{bmatrix}\begin{bmatrix}x_1\\\\x_2\\\\x_3\end{bmatrix}+\begin{bmatrix} 5&7&12 \end{bmatrix}\begin{bmatrix}x_1\\\\x_2\\\\x_3\end{bmatrix} \end{equation} Ax=[213] x1x2x3 +[314] x1x2x3 +[5712] x1x2x3
    这是我们常规的思路,但是有一个问题,现在是 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3三个变量,可以用三维空间想象画图等,但是当我们有 x 1 , x 2 , x 3 , x 4 , x 5 x_1,x_2,x_3,x_4,x_5 x1,x2,x3,x4,x5的时候,我们就无法想到5维度空间,所以我们在矩阵相乘的过程中用到行向量空间的角度思考是低端的思维思路。所以我们提出了列向量的角度
  • 从列角度计算如下:
    A x = x 1 [ 2 3 5 ] + x 2 [ 1 1 7 ] + x 3 [ 3 4 12 ] \begin{equation} Ax=x_1\begin{bmatrix} 2\\\\ 3\\\\ 5 \end{bmatrix}+x_2\begin{bmatrix} 1\\\\ 1\\\\ 7 \end{bmatrix}+x_3\begin{bmatrix} 3\\\\ 4\\\\ 12 \end{bmatrix} \end{equation} Ax=x1 235 +x2 117 +x3 3412
    v 1 = x 1 [ 2 3 5 ] , v 2 = x 2 [ 1 1 7 ] ; v 3 = x 3 [ 3 4 12 ] ; A x = v 1 + v 2 + v 3 \begin{equation} v_1=x_1\begin{bmatrix} 2\\\\ 3\\\\ 5 \end{bmatrix},v_2=x_2\begin{bmatrix} 1\\\\ 1\\\\ 7 \end{bmatrix};v_3=x_3\begin{bmatrix} 3\\\\ 4\\\\ 12 \end{bmatrix};Ax=v_1+v_2+v_3 \end{equation} v1=x1 235 ,v2=x2 117 ;v3=x3 3412 ;Ax=v1+v2+v3

这样可以看出,对于Ax=b来说,矩阵b就是A的列向量的线性组合,这样及时再加几个列向量,我们可以用向量的形式表示,我们处理起来也非常的方便。通过列乘以行的方式是一种更高级的矩阵理解方式。
在这里插入图片描述

  • 小结:
    所以对于矩阵A和向量x相乘得到的结果Ax可以看做是对于矩阵A的列向量的线性组合后得到的向量,那么这个向量也一定在A的列空间中。假设我们x是随机的,那么我们可以得到矩阵A的整个列空间。

2. A=CR 矩阵分解

2.1 rank=1 矩阵分解

假设我们有矩阵A表示如下,我们希望将矩阵分解成为列向量和行向量的组合。
A = [ 1 3 8 1 3 8 1 3 8 ] \begin{equation} A=\begin{bmatrix} 1&3&8\\\\ 1&3&8\\\\ 1&3&8 \end{bmatrix} \end{equation} A= 111333888

  • 将矩阵A的第一列拿出来。 v 1 = [ 1 1 1 ] v_1=\begin{bmatrix}1\\\\1\\\\1\end{bmatrix} v1= 111
  • 将矩阵A的第二列拿出来,发现与第二列,第三列线性相关,所以停止拿出来,说以只有一列
    ,最终得到如下分解矩阵
    A = [ 1 1 1 ] [ 1 3 8 ] \begin{equation} A=\begin{bmatrix} 1\\\\1\\\\1 \end{bmatrix}\begin{bmatrix} 1&3&8 \end{bmatrix} \end{equation} A= 111 [138]

2.2 rank=2 矩阵分解

我们有如下矩阵A,将矩阵A进行分解,得到A=CR:
A = [ 2 1 3 3 1 4 5 7 12 ] \begin{equation} A=\begin{bmatrix} 2&1&3\\\\ 3&1&4\\\\ 5&7&12 \end{bmatrix} \end{equation} A= 2351173412

  • 第一步,我们先取矩阵A的第一列, v 1 = [ 2 , 3 , 5 ] T v_1=[2,3,5]^T v1=[2,3,5]T非零,那么就把 v 1 v_1 v1放到列空间中
  • 第二步,我们再取矩阵A的第二列,发现 v 1 T v 2 ≠ 0 v_1^Tv_2\neq0 v1Tv2=0,那么就把 v 2 v_2 v2放到列空间中
  • 第三步,我们再取矩阵A的第三列,发现 v 1 + v 2 = v 3 v_1+v_2=v_3 v1+v2=v3,那么 v 3 v_3 v3就抛弃,这样就形成了列满秩的矩阵C
    C = [ 2 1 3 1 5 7 ] \begin{equation} C=\begin{bmatrix} 2&1\\\\ 3&1\\\\ 5&7 \end{bmatrix} \end{equation} C= 235117
  • 第四步,我们通过矩阵的大小可得矩阵R为2行3列,那么可以发现,矩阵A的第一列为C的第一列,那么可以得到矩阵C的第一列为 c 1 = [ 1 , 0 ] T c_1=[1, 0]^T c1=[1,0]T
  • 第五步,同理可得矩阵A的第二列为矩阵C的第二列,那么 c 2 = [ 0 , 1 ] T c_2=[0, 1]^T c2=[0,1]T
  • 第六步,我们知道矩阵A的第三列为矩阵C的第一列和第二列之和,那么可得 c 3 = [ 1 , 1 ] T c_3=[1, 1]^T c3=[1,1]T
  • 第七步,综上可得方程A=CR表示如下:
    A = C R ⇒ [ 2 1 3 3 1 4 5 7 12 ] = [ 2 1 3 1 5 7 ] [ 1 0 1 0 1 1 ] \begin{equation} A=CR\Rightarrow\begin{bmatrix} 2&1&3\\\\ 3&1&4\\\\ 5&7&12 \end{bmatrix}=\begin{bmatrix} 2&1\\\\ 3&1\\\\ 5&7 \end{bmatrix}\begin{bmatrix} 1&0&1\\\\ 0&1&1 \end{bmatrix} \end{equation} A=CR 2351173412 = 235117 100111
  • 我们再行分解,可得
    [ 2 1 3 ] = 2 [ 1 0 1 ] + 1 [ 0 1 1 ] \begin{equation} \begin{bmatrix}2&1&3\end{bmatrix}=2\begin{bmatrix}1&0&1\end{bmatrix}+1\begin{bmatrix}0&1&1\end{bmatrix} \end{equation} [213]=2[101]+1[011]
    [ 3 1 4 ] = 3 [ 1 0 1 ] + 1 [ 0 1 1 ] \begin{equation} \begin{bmatrix}3&1&4\end{bmatrix}=3\begin{bmatrix}1&0&1\end{bmatrix}+1\begin{bmatrix}0&1&1\end{bmatrix} \end{equation} [314]=3[101]+1[011]
    [ 5 7 12 ] = 5 [ 1 0 1 ] + 7 [ 0 1 1 ] \begin{equation} \begin{bmatrix}5&7&12\end{bmatrix}=5\begin{bmatrix}1&0&1\end{bmatrix}+7\begin{bmatrix}0&1&1\end{bmatrix} \end{equation} [5712]=5[101]+7[011]
  • 那么可以得到如下:
    [ 2 1 3 3 1 4 ] = [ 2 1 3 1 ] [ 1 0 1 0 1 1 ] ⇒ [ 1 0 1 0 1 1 ] = [ − 1 1 3 − 2 ] [ 2 1 3 3 1 4 ] \begin{equation} \begin{bmatrix} 2&1&3\\\\ 3&1&4 \end{bmatrix}=\begin{bmatrix} 2&1\\\\ 3&1 \end{bmatrix}\begin{bmatrix} 1&0&1\\\\ 0&1&1 \end{bmatrix}\Rightarrow \begin{bmatrix} 1&0&1\\\\ 0&1&1 \end{bmatrix}=\begin{bmatrix} -1&1\\\\ 3&-2 \end{bmatrix}\begin{bmatrix} 2&1&3\\\\ 3&1&4 \end{bmatrix} \end{equation} 231134 = 2311 100111 100111 = 1312 231134
  • 那么A=CR公式可以整理为A=CMR公式
    A = C M R ⇒ [ 2 1 3 3 1 4 5 7 12 ] = [ 2 1 3 1 5 7 ] [ − 1 1 3 − 2 ] [ 2 1 3 3 1 4 ] \begin{equation} A=CMR\Rightarrow\begin{bmatrix} 2&1&3\\\\ 3&1&4\\\\ 5&7&12 \end{bmatrix}=\begin{bmatrix} 2&1\\\\ 3&1\\\\ 5&7 \end{bmatrix}\begin{bmatrix} -1&1\\\\ 3&-2 \end{bmatrix}\begin{bmatrix} 2&1&3\\\\ 3&1&4 \end{bmatrix} \end{equation} A=CMR 2351173412 = 235117 1312 231134
  • 小结: 这样做的好处是C,M,R均是满秩矩阵,这样我们可以对矩阵A进行进一步分解,真是神奇的思路,解决了SVD奇异值分解中 Σ \Sigma Σ矩阵无法满秩的情况,而且CR均是来自原始矩阵A的列向量(列满秩)和行向量(行满秩)。真是太神奇了。

2.3 A=CMR,求M

当我们知道 A=CMR, 那么如何求快速的求得M呢?
A = C M R → C T A R T = ( C T C ) M ( R R T ) → M = ( C T C ) − 1 ( C T A R T ) ( R R T ) − 1 \begin{equation} A=CMR\rightarrow C^TAR^T=(C^TC)M(RR^T)\rightarrow M=(C^TC)^{-1}(C^TAR^T)(RR^T)^{-1} \end{equation} A=CMRCTART=(CTC)M(RRT)M=(CTC)1(CTART)(RRT)1

3. Ax 向量

假设x是一个随机的列向量,如果我们给了100个随机的x,那么我们可以通过Ax来得到一系列的列向量空间,这个列向量空间也会随着x的增多而和A的列空间相似,这个就是随机采样的思路。

这篇关于线性代数|机器学习-P2 A的列向量空间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1023533

相关文章

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查