学习笔记: 线性代数-高维投影和Gram-Schmidt过程

简介: 线性代数个人学习笔记

Gram-Schmidt过程: 对于给定空间的一组基,求取该空间的一组正交基的过程

从二维投影理解更高维的投影问题

上一章节学习了一维投影 ,也就是在一个二维空间中求取一个向量$\vec v$在$\vec u$向量上的投影$\vec p$的过程:
通过向量$\vec v$ 向向量$\vec u$作垂线,则垂足所在点的向量就是$\vec v$在$\vec u$上的投影$ \vec p = \frac {\vec u \cdot \vec v}{\vec u \cdot \vec u} \cdot {\vec u}$; 从而与向量$\vec u$正交的向量就可以表示为$\vec v - \vec p$;

求取三维空间的一组正交基

在三维空间中,给出空间的一组基$\vec u, \vec v ,\vec w$,但是它们不是一组正交基,也即不满足两两正交这样的条件,求取这个空间的一组正交基

首先,可以选择其中的两个向量,比如先把$\vec u, \vec v$处理成两个垂直的向量$\vec p_1 ,\vec p_2 $,然后再处理第三个向量$\vec w$,令$\vec w$垂直于$\vec p_1,\vec p_2$也即相当于找出$\vec w$的一个分量,这个分量垂直于$\vec p_1,\vec p_2$所在的平面。由高中的立体几何知识可知,由向量$\vec w$所在线段的末端向$\vec p_1,\vec p_2$所在的平面引一根垂线,相应的就会有一个垂足的位置,这样就可以在$\vec p_1 ,\vec p_2$所在的平面上以垂足的位置为末端作出向量$\vec w$在平面的投影向量$\vec p$,这就是所谓的高维投影,我们现在是在一个二维平面上进行投影:

那么通过投影向量$\vec p$,就可以得到与$\vec p_1 ,\vec p_2$正交的那个向量$\vec p_3 = \vec w - \vec p$,所以此时问题的核心变成了求取$\vec w$向量在$\vec p_1 ,\vec p_2$所在平面的投影向量$\vec p$;

投影向量$\vec p$的求取过程
由于$\vec p_1 ,\vec p_2$已经是一组正交向量,所以这两个向量就是$\vec p_1 ,\vec p_2$所在平面这样一个子空间的一组正交基,则向量$\vec p$可以由$\vec p_1 ,\vec p_2$的一组线性组合所表示$\vec p = k_1 \cdot \vec p_1 + k_2 \cdot \vec p_2$,在这里,直接求取$k_1, k_2$这两个系数显然不方便; 其实对于向量$\vec p$,它存在于$\vec p_1 ,\vec p_2$所在的平面,那么如果把$\vec p$这个向量向$\vec p_1$和$\vec p_2$作垂线,那么在$\vec p_1$和$\vec p_2$方向上就有两个分向量$\vec a$和$\vec b$,然后$\vec p = \vec a + \vec b$ , 然后求解向量$\vec p$的问题就变成了求解向量$\vec a$和$\vec b$:
$\to \vec p = k_1 \cdot \vec p_1 + k_2 \cdot \vec p_2 = \vec a + \vec b$

根据高中立体几何的知识可知

  • $\vec a$其实也是$\vec w$在 $\vec p_1$上的投影
  • $\vec b$其实也是$\vec w$在 $\vec p_2$上的投影

进而,求出$\vec w$在 $\vec p_1$和 $\vec p_2$上的投影就求出来$\vec a$和$\vec b$,进而就能够得到投影向量$\vec p$,最后构造出垂直于$\vec p_1 ,\vec p_2 $的第三个向量$p_3 = \vec w - \vec p = \vec w - \vec a - \vec b $。这个二维投影问题就变成了一维投影问题;

计算向量$\vec w$在 $\vec p_1,\vec p_2$上的投影,直接代入一维投影计算公式可得
$\vec a = \frac {\vec w \cdot \vec p_1}{\| {\vec p_1} \| ^2} \cdot \vec p_1 \ \ \ , \ \ \vec b = \frac {\vec w \cdot \vec p_2}{\| {\vec p_2} \| ^2} \cdot \vec p_2$

从而,$\vec p_3 = \vec w - \vec p = \vec w - \frac {\vec w \cdot \vec p_1}{\| {\vec p_1} \| ^2} \cdot \vec p_1 - \frac {\vec w \cdot \vec p_2}{\| {\vec p_2} \| ^2} \cdot \vec p_2 $


推广到$n$维度空间

如果已知一组基:$\vec v_1 , \vec v_2 , \cdots , \vec v_n$,相应的求出这组基所代表的$n$维空间的一组正交基的过程就是:
$\vec p_1 = \vec v_1$
$\vec p_2 = \vec v_2 - \frac {\vec p_1 \cdot \vec v_2}{\|{\vec p_1}\|} \cdot {\vec p_1}$
$\vec p_3 = \vec v_3 - \frac {\vec p_1 \cdot \vec v_3}{\|{\vec p_1}\|} \cdot {\vec p_1} - \frac {\vec p_2 \cdot \vec v_3}{\|{\vec p_2}\|} \cdot {\vec p_2}$
$\vec p_4 = \vec v_4 - \frac {\vec p_1 \cdot \vec v_4}{\|{\vec p_1}\|} \cdot {\vec p_1} - \frac {\vec p_2 \cdot \vec v_4}{\|{\vec p_2}\|} \cdot {\vec p_2} - \frac {\vec p_3 \cdot \vec v_4}{\|{\vec p_3}\|} \cdot {\vec p_3}$
...
$\vec p_n = \vec v_n - \frac {\vec p_1 \cdot \vec v_n}{\|{\vec p_1}\|} \cdot {\vec p_1} - \frac {\vec p_2 \cdot \vec v_n}{\|{\vec p_2}\|} \cdot {\vec p_2} - \frac {\vec p_3 \cdot \vec v_n}{\|{\vec p_3}\|} \cdot {\vec p_3} - \cdots - \frac {\vec p_{n-1} \cdot \vec v_n}{\|{\vec p_{n-1}}\|} \cdot {\vec p_{n-1}}$

以上算法过程称为"格拉姆-斯密特过程(Gram-Schmidt)"。这样一步步计算出来的正交向量组$\vec p_1 ,\vec p_2, \cdots , \vec p_n $就是$\vec v_1 , \vec v_2 , \cdots , \vec v_n$这组基所代表的空间的正交基,进一步的对正交基的向量进行归一化$\hat u = \frac {1}{\|\vec u\|} \cdot \vec u$就可以得到空间的一组标准正交基

目录
相关文章
|
7月前
|
存储 人工智能 自然语言处理
论文介绍:Mamba:线性时间序列建模与选择性状态空间
【5月更文挑战第11天】Mamba是新提出的线性时间序列建模方法,针对长序列处理的效率和内存问题,采用选择性状态空间模型,只保留重要信息,减少计算负担。结合硬件感知的并行算法,优化GPU内存使用,提高计算效率。Mamba在多种任务中展现出与Transformer相当甚至超越的性能,但可能不适用于所有类型数据,且硬件适应性需进一步优化。该模型为长序列处理提供新思路,具有广阔应用前景。[论文链接](https://arxiv.org/abs/2312.00752)
196 3
|
7月前
|
机器学习/深度学习 搜索推荐 数据挖掘
R语言矩阵特征值分解(谱分解)和奇异值分解(SVD)特征向量分析有价证券数据
R语言矩阵特征值分解(谱分解)和奇异值分解(SVD)特征向量分析有价证券数据
|
机器学习/深度学习 数据采集 资源调度
【推荐系统】推荐场景为什么不可以使用SVD分解共现矩阵
【推荐系统】推荐场景为什么不可以使用SVD分解共现矩阵
175 0
【推荐系统】推荐场景为什么不可以使用SVD分解共现矩阵
|
vr&ar
用于非线性时间序列预测的稀疏局部线性和邻域嵌入(Matlab代码实现)
用于非线性时间序列预测的稀疏局部线性和邻域嵌入(Matlab代码实现)
129 0
用于非线性时间序列预测的稀疏局部线性和邻域嵌入(Matlab代码实现)
|
自然语言处理 程序员 容器
向量学习之高维思考
向量学习之高维思考
向量带来的高维思维
学习向量对于我们来说是突然的,感觉我一直在经历“降维打击”,经过十几节课的系统学习,向量似乎在我的眼里和高中时候的不太一样了。为什么这么说呢?在以前的认知里,向量就是简单的“有大小、有方向的量”,
学习笔记: 线性代数-矩阵的相似性
线性代数个人学习笔记
159 0
|
机器学习/深度学习 资源调度 算法
|
移动开发
学习笔记: 线性代数-广义向量空间
线性代数个人学习笔记
118 0