线性代数精华——从正交向量到正交矩阵

2024-03-21 14:48

本文主要是介绍线性代数精华——从正交向量到正交矩阵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文始发于个人公众号:TechFlow


向量内积


这个基本上是中学当中数学课本上的概念,两个向量的内积非常简单,我们直接看公式回顾一下:

X ⋅ Y = ∑ i = 1 n x i ∗ y i X \cdot Y = \sum_{i=1}^n x_i*y_i XY=i=1nxiyi

这里X和Y都是n维的向量,两个向量能够计算内积的前提是两个向量的维度一样。从上面公式可以看出来,两个向量的内积就等于两个向量对应各个维度的分量的乘积的和。

为了和矩阵乘法以及普通的乘法做区分,我们通常把两个向量的内积写成: [ x , y ] = x T y [x, y]=x^Ty [x,y]=xTy

这里有一个很重要的性质,对于一个向量而言,我们可以用欧几里得公式计算它的长度。进一步,我们可以用向量的长度以及向量之间的夹角来表示向量的内积,如下:

[ x , y ] = ∣ x ∣ ⋅ ∣ y ∣ cos ⁡ θ [x, y]=|x|\cdot |y|\cos\theta [x,y]=xycosθ

其中的 θ \theta θ是x和y向量之间的夹角,对于三维及以下空间内的向量,这一点非常直观。对于高维度的向量,我们很难想象它的物理意义。不过没有关系,我们一样可以认为向量之间存在一个广义超空间内的一个夹角。在机器学习领域,我们通常用这个夹角来反应向量之间的相似度。两个向量越相似,那么它们之间的夹角应该越小,对应的cos余弦值应该越大。所以我们可以用两个向量之间的余弦值来反应它们之间的相似度。余弦值的计算就源于此。


正交向量


从上面的公式可以看出来,向量的内积等于两个向量长度乘上向量之间的夹角。对于非零向量而言,它们的长度都应该是大于0的。所以两个向量的内积的大小,就完全取决于向量之间的夹角 θ \theta θ

如果 θ \theta θ小于90°,那么 cos ⁡ θ > 0 \cos\theta>0 cosθ>0,那么内积为正值。如果 θ \theta θ大于90°,那么余弦值为负值。所以我们可以通过余弦值正负判断夹角是锐角还是钝角。既然说到夹角,自然就离不开一种特殊情况——垂直

如果是在二维平面当中,两个向量夹角是90°,那么显然这两个向量垂直。在高维空间当中也是一样,不过我们一般不说垂直,而是会换一个词——正交。两个非零向量的内积为0,说明两个向量正交。


正交向量组


搞清楚了正交向量之后,正交向量组也就明确了。正交向量组是指一组两两正交且非零的向量组

如果n维的向量组: a 1 , a 2 , ⋯ , a r a_1, a_2, \cdots,a_r a1,a2,,ar两两正交,那么,它们一定线性无关。也就是说不存在一组不为零的系数 λ \lambda λ,使得:

λ 1 a 1 + λ 2 a 2 + ⋯ + λ r a r = 0 \lambda_1a_1+\lambda_2a_2+\cdots + \lambda_ra_r=0 λ1a1+λ2a2++λrar=0

这点很容易证明,由于向量组内向量均不为0,我们只需要在等式两边随便乘上一个向量即可,假设我们乘的是 a 1 a_1 a1。由于它与其他向量两两正交,所以其他项全为0。如果要等式成立,那么必须要:

λ 1 a 1 T a 1 = 0 \lambda_1a_1^Ta_1=0 λ1a1Ta1=0

由于 a 1 a_1 a1不为0,那么 a 1 T a 1 a_1^Ta_1 a1Ta1必然不为0,要使得等式成立,只能是 λ 1 \lambda_1 λ1为0。


规范正交基


我们把正交向量组的概念和基的概念融合,如果向量组 e 1 , e 2 , ⋯ , e r e_1, e_2, \cdots, e_r e1,e2,,er是向量空间V的一个基。如果它们之间彼此正交,那么就称它们是一组规范正交基。

对于向量a,我们可以很方便地求出它在规范正交基下各个维度的坐标:

λ i = e i T a = [ a , e i ] \lambda_i = e_i^Ta=[a, e_i] λi=eiTa=[a,ei]

也就是说向量a,在规范正交基下某一个维度的坐标, 等于它和这个维度的正交基向量的内积

  1. List item

如果说我们已经知道向量空间V中的一组基是 a 1 , a 2 , ⋯ , a r a_1, a_2, \cdots, a_r a1,a2,,ar,我们怎么求V的规范正交基呢?

这里要用到一个算法,叫做施密特算法。通过这个算法,我们可以通过向量空间的一组基来求出它的正交基。

这个算法很简单,我们可以直接写出它的公式:

b 1 = a 1 b 2 = a 2 − [ b 1 , a 2 ] [ b 1 , b 1 ] b 1 ⋯ b r = a r − [ b 1 , a r ] [ b 1 , b 1 ] b 1 − [ b 2 , a r ] [ b 2 , b 2 ] b 2 − ⋯ − [ b r − 1 , a r ] [ b r − 1 , b r − 1 ] b r − 1 \begin{aligned} b_1 &= a_1 \\ b_2 &= a_2 - \frac{[b_1, a_2]}{[b_1, b_1]}b_1\\ \cdots\\ b_r &= a_r - \frac{[b_1, a_r]}{[b_1, b_1]}b_1-\frac{[b_2, a_r]}{[b_2, b_2]}b_2 - \cdots - \frac{[b_{r-1}, a_r]}{[b_{r-1}, b_{r-1}]}b_{r-1} \end{aligned} b1b2br=a1=a2[b1,b1][b1,a2]b1=ar[b1,b1][b1,ar]b1[b2,b2][b2,ar]b2[br1,br1][br1,ar]br1

我们随便取两个b向量乘一下就知道,b向量组之中两两正交。所以,我们只要将b向量组单位化一下,就可以求出对应的规范正交基了。

即:

e 1 = 1 ∣ ∣ b 1 ∣ ∣ b 1 , e 2 = 1 ∣ ∣ b 2 ∣ ∣ b 2 ⋯ e r = 1 ∣ ∣ b r ∣ ∣ b r e_1=\frac{1}{||b_1||}b_1, \quad e_2=\frac{1}{||b_2||}b_2 \quad \cdots \quad e_r=\frac{1}{||b_r||}b_r e1=b11b1,e2=b21b2er=br1br

这个算法虽然不难,但蛮重要。在机器学习领域中一些降维算法,很多都与施密特正交化方法有关。


正交矩阵


之前我们在介绍矩阵的时候,曾经说过,我们可以把一个矩阵看成是一个特定的向量组的结构。同样,我们也可以把一个规范正交基向量组看成是一个矩阵,那么这个矩阵就称为是正交矩阵

它拥有如下性质:

A T A = I A^TA=I ATA=I

其中I是单位矩阵,它的充要条件是矩阵A当中的每一列都是一个单位列向量,并且两两正交。

最后,我们看一下正交矩阵的性质。它的主要性质有三个:

  1. 如果A是正交矩阵,那么 A − 1 = A T A^{-1}=A^T A1=AT,也是正交矩阵,并且 ∣ A ∣ = ± 1 |A|=\pm 1 A=±1

  2. 如果A和B都是正交矩阵,并且它们阶数一样,那么AB也是正交矩阵。

  3. 如果A是正交矩阵,向量y经过A变换之后行列式保持不变。

这三个性质都很简单,我们通过正交矩阵的性质基本上都可以直接推导得到,或者是非常直观,和我们的直觉吻合。其实怎么推导不是重点,对于算法工程师而言,更重要的是理解这些概念的意思,并且将它与算法模型当中起到的功能联系起来,这才是最重要的事情。

今天关于正交向量和矩阵的内容就到这里,如果觉得有所收获,请顺手点个关注或者转发吧,你们的支持是我最大的动力。

这篇关于线性代数精华——从正交向量到正交矩阵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

hdu 6198 dfs枚举找规律+矩阵乘法

number number number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description We define a sequence  F : ⋅   F0=0,F1=1 ; ⋅   Fn=Fn

Vector3 三维向量

Vector3 三维向量 Struct Representation of 3D vectors and points. 表示3D的向量和点。 This structure is used throughout Unity to pass 3D positions and directions around. It also contains functions for doin

8. 自然语言处理中的深度学习:从词向量到BERT

引言 深度学习在自然语言处理(NLP)领域的应用极大地推动了语言理解和生成技术的发展。通过从词向量到预训练模型(如BERT)的演进,NLP技术在机器翻译、情感分析、问答系统等任务中取得了显著成果。本篇博文将探讨深度学习在NLP中的核心技术,包括词向量、序列模型(如RNN、LSTM),以及BERT等预训练模型的崛起及其实际应用。 1. 词向量的生成与应用 词向量(Word Embedding)

用Python实现时间序列模型实战——Day 14: 向量自回归模型 (VAR) 与向量误差修正模型 (VECM)

一、学习内容 1. 向量自回归模型 (VAR) 的基本概念与应用 向量自回归模型 (VAR) 是多元时间序列分析中的一种模型,用于捕捉多个变量之间的相互依赖关系。与单变量自回归模型不同,VAR 模型将多个时间序列作为向量输入,同时对这些变量进行回归分析。 VAR 模型的一般形式为: 其中: ​ 是时间  的变量向量。 是常数向量。​ 是每个时间滞后的回归系数矩阵。​ 是误差项向量,假

线性代数|机器学习-P35距离矩阵和普鲁克问题

文章目录 1. 距离矩阵2. 正交普鲁克问题3. 实例说明 1. 距离矩阵 假设有三个点 x 1 , x 2 , x 3 x_1,x_2,x_3 x1​,x2​,x3​,三个点距离如下: ∣ ∣ x 1 − x 2 ∣ ∣ 2 = 1 , ∣ ∣ x 2 − x 3 ∣ ∣ 2 = 1 , ∣ ∣ x 1 − x 3 ∣ ∣ 2 = 6 \begin{equation} ||x

【线性代数】正定矩阵,二次型函数

本文主要介绍正定矩阵,二次型函数,及其相关的解析证明过程和各个过程的可视化几何解释(深蓝色字体)。 非常喜欢清华大学张颢老师说过的一段话:如果你不能用可视化的方式看到事情的结果,那么你就很难对这个事情有认知,认知就是直觉,解析的东西可以让你理解,但未必能让你形成直觉,因为他太反直觉了。 正定矩阵 定义 给定一个大小为 n×n 的实对称矩阵 A ,若对于任意长度为 n 的非零向量 ,有 恒成

超全泛微E10-eBuilder功能培训视频教程(精华)含源码 火!!!

引言  在当今数字化转型的浪潮中,掌握强大而高效的工具将是职业发展的关键。泛微E10的低代码平台e-Builder不仅是一个功能强大的数字化运营管理平台,还为希望在工作中提升效率和技术技能的从业者提供了丰富的学习资源。在这篇文章中,我们将详细介绍泛微E10-eBuilder功能培训视频教程的内容,帮助你了解这款平台如何帮助你在数字化转型和职业提升中领先一步。 一、课程目录介绍 本次培训视频