线性代数|机器学习-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

相关文章

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

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

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

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

MySQL表空间结构详解表空间到段页操作

《MySQL表空间结构详解表空间到段页操作》在MySQL架构和存储引擎专题中介绍了使用不同存储引擎创建表时生成的表空间数据文件,在本章节主要介绍使用InnoDB存储引擎创建表时生成的表空间数据文件,对... 目录️‍一、什么是表空间结构1.1 表空间与表空间文件的关系是什么?️‍二、用户数据在表空间中是怎么

CentOS7增加Swap空间的两种方法

《CentOS7增加Swap空间的两种方法》当服务器物理内存不足时,增加Swap空间可以作为虚拟内存使用,帮助系统处理内存压力,本文给大家介绍了CentOS7增加Swap空间的两种方法:创建新的Swa... 目录在Centos 7上增加Swap空间的方法方法一:创建新的Swap文件(推荐)方法二:调整Sww

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程