学习笔记: 线性代数-高维投影和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$就可以得到空间的一组标准正交基

目录
相关文章
|
1月前
|
机器学习/深度学习 搜索推荐 数据挖掘
R语言矩阵特征值分解(谱分解)和奇异值分解(SVD)特征向量分析有价证券数据
R语言矩阵特征值分解(谱分解)和奇异值分解(SVD)特征向量分析有价证券数据
|
1月前
|
数据可视化
R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化
R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化
|
1月前
|
机器学习/深度学习 算法 数据可视化
R语言谱聚类、K-MEANS聚类分析非线性环状数据比较
R语言谱聚类、K-MEANS聚类分析非线性环状数据比较
|
资源调度 算法 数据可视化
t_SNE 非线性降维基础原理
本文记录了个人关于 非线性降维算法 t-SNE(t-Distributed Stochastic Neighbor Embedding)的学习理解,以供参考学习
220 0
|
8月前
为什么进行线性回归前需要对特征进行离散化处理?
为什么进行线性回归前需要对特征进行离散化处理?
145 1
|
11月前
|
自然语言处理 程序员 容器
向量学习之高维思考
向量学习之高维思考
|
机器学习/深度学习 资源调度 算法
|
机器学习/深度学习 数据可视化 PyTorch
【Pytorch神经网络实战案例】06 逻辑回归拟合二维数据
【Pytorch神经网络实战案例】06 逻辑回归拟合二维数据
132 0