【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(15):向量的内积、长度及正交性

691 阅读5分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

Hello!小伙伴!

非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~

 

自我介绍 ଘ(੭ˊᵕˋ)੭

昵称:海轰

标签:程序猿|C++选手|学生

简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖...已保研。目前正在学习C++/Linux/Python

学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!

 

机器学习小白阶段

文章仅作为自己的学习笔记 用于知识体系建立以及复习

知其然 知其所以然!

若查看数学公式不全或显示错误

5.1 向量的内积、长度及正交性

定义1

内积

设有nn维向量

x=[x1x2...xn],y=[y1y2...yn]x=\begin{bmatrix} x_1\\ x_2\\ .\\ .\\ .\\ x_n \end{bmatrix},y = \begin{bmatrix} y_1\\ y_2\\ .\\ .\\ .\\ y_n \end{bmatrix}

[x,y]=x1y1+x2y2+...+xnyn=(x1,x2,...,xn)[y1y2...yn][x,y]=x_1y_1 + x_2y_2 + ... + x_ny_n=(x_1,x_2,...,x_n)\begin{bmatrix} y_1\\ y_2\\ .\\ .\\ .\\ y_n \end{bmatrix}

[x,y][x,y]称为向量xxyy内积


内积是两个向量之间的一种运算,其结果是一个实数,用矩阵符号表示,当xxyy都是列向量时,有

[x,y]=xTy[x,y]=x^Ty

内积具有的性质:(x,y,zx,y,znn维向量,λ\lambda为实数)

  • [x,y]=[y,x][x,y] = [y, x]
  • [λx,y]=λ[x,y][ \lambda x,y]=\lambda[x,y]
  • [x+y,z]=[x,z]+[y,z][x+y,z] = [x, z] + [y,z]
  • x=0x=0时,[x,x]=0[x,x]=0;当x0x\neq0时,[x,x]>0[x,x]>0

施瓦茨不等式

[x,y]2[x,x][y,y][x,y]^2 \leq[x,x][y,y]

定义2

向量长度、单位向量

x=[x,x]=x12+x22+....+xn2||x||=\sqrt{[x,x]}=\sqrt{x_1^2+x_2^2+....+x_n^2}

x||x||称为nn维向量xx长度(或范数)

x=1||x||=1时,称xx单位向量


向量的长度具有的性质:

  • 非负性: 当x0x\neq0时,x>0||x||>0;当x=0x=0时,x=0||x||=0
  • 齐次性: λx=λx||\lambda x||=|\lambda|||x||
  • 三角不等式: x+yx+y||x+y|| \leq||x||+||y||

证明三角不等式: x+yx+y||x+y|| \leq||x||+||y||

x+y2=[x+y,x+y]\quad||x+y||^2=[x+y,x+y]

=[x+y,x]+[x+y,y]=[x+y,x]+[x+y,y]

=([x,x]+[x,y])+([x,y]+[y,y])=([x,x]+[x,y])+([x,y]+[y,y])

=[x,x]+2[x,y]+[y,y]=[x,x]+2[x,y]+[y,y]

借助[x+y,z]=[x,z]+[y,z][x+y,z] = [x, z] + [y,z]进行变形

由施瓦茨不等式

[x,y]2[x,x][y,y][x,y]^2 \leq[x,x][y,y]

[x,y][x,x][y,y][x,y]\leq \sqrt{[x,x][y,y]}

从而

x+y2=[x,x]+2[x,y]+[y,y][x,x]+2[x,x][y,y]+[y,y]\quad||x+y||^2=[x,x]+2[x,y]+[y,y]\leq[x,x]+2\sqrt{[x,x][y,y]}+[y,y]

=x2+2[x,x][y,y]+y2=||x||^2+2\sqrt{[x,x][y,y]}+||y||^2

=(x+y)2=(||x||+||y||)^2

x+y2(x+y)2||x+y||^2\leq(||x||+||y||)^2

开平方得

x+yx+y||x+y|| \leq||x||+||y||

Ps:x2y2xyyxyx^2\leq y^2 \Rightarrow |x| \leq |y| \Rightarrow -y \leq x \leq y

证明完成!

向量的夹角

由施瓦茨不等式 [x,y]2[x,x][y,y][x,y]^2 \leq[x,x][y,y]

[x,y][x,x][y,y]=[x,x][y,y]=xy[x,y]\leq \sqrt{[x,x][y,y]}=\sqrt{[x,x]} \sqrt{[y,y]}=||x||\,||y||

[x,y]可以为正,也可以为负,也可以为0

也可以写为

[x,y]xy|[x,y]|\leq ||x||\,||y||

不等式两边同时除以xy||x||\,||y||,得

[x,y]xy1(xy0)|\frac{[x,y]}{||x||\,||y||}| \leq 1 \quad(||x||\,||y||\neq0时)

然后我们定义θ\thetann维向量xxyy的夹角,其中θ\theta定义为:

θ=arccos[x,y]xy\theta=arccos\frac{[x,y]}{||x||\,||y||}

正交

[x,y]=0[x,y]=0时,称向量xxyy正交。

其中当x=0x=0时,xx与任何向量都正交

定理1

nn维向量a1,a2,...,ara_1,a_2,...,a_r是一组两两正交的非零向量,则a1,a2,...,ara_1,a_2,...,a_r线性无关

证明:

设有λ1,λ2,...,λr\lambda_1,\lambda_2,...,\lambda_r使

λ1a1+λ2a2+....+λrar=0\lambda_1a_1+\lambda_2a_2+....+\lambda_ra_r=0

然后等式两边同时乘以a1Ta_1^T(左乘)

aia_i一般情况是列向量 λ1a1+λ2a2+....+λrar\lambda_1a_1+\lambda_2a_2+....+\lambda_ra_r结果也是一个列向量 所以 左乘时应该乘以一个行向量 aiTa_i^T

a1T(λ1a1+λ2a2+....+λrar)=a1T0=0a_1^T(\lambda_1a_1+\lambda_2a_2+....+\lambda_ra_r)=a_1^T0=0

a1Tλ1a1+a1Tλ2a2+....+a1Tλrar=0a_1^T\lambda_1a_1+a_1^T\lambda_2a_2+....+a_1^T\lambda_ra_r=0

因为a1,a2,...,ara_1,a_2,...,a_r是一组两两正交的非零向量

所以a1a_1与其他向量都正交

a1a2=0,a1a3=0,....,a1ar=0a_1a_2=0,a_1a_3=0,....,a_1a_r=0

a1Tλ1a1+a1Tλ2a2+....+a1Tλrar=a1Tλ1a1+0+...+0=a1Tλ1a1a_1^T\lambda_1a_1+a_1^T\lambda_2a_2+....+a_1^T\lambda_ra_r=a_1^T\lambda_1a_1+0+...+0=a_1^T\lambda_1a_1

a1Tλ1a1=λ1a1Ta1=0a_1^T\lambda_1a_1=\lambda_1 a_1^Ta_1=0

因为a1a_1是非零向量

所以

a1Ta1=[a1,a1]=a120a_1^Ta_1=[a_1,a_1]=||a_1||^2\neq0

λ1=0\lambda_1=0

同理可证

λ2,λ2,...,λr=0\lambda_2,\lambda_2,...,\lambda_r=0

由左乘a1Ta_1^T改为左乘a2T,a3T....arTa_2^T,a_3^T....a_r^T就可以证明其他λi\lambda_i

综上

λ1=λ2=....=λr=0\lambda_1=\lambda_2=....=\lambda_r=0

所以a1,a2,...,ara_1,a_2,...,a_r线性无关

证明完成!

规范正交基

nn维向量e1,e2,...,ere_1,e_2,...,e_r是向量空间V(VRn)V(V \subset \mathbb{R}^n)的一个基,如果e1,e2,...,ere_1,e_2,...,e_r两两正交,且都是单位向量,则称e1,e2,...,ere_1,e_2,...,e_rVV的一个规范正交基

规范正交基需要符合三个条件

  • 首先得是向量空间的一个基
  • 基中向量两两正交
  • 基中所有向量都是单位向量

e1,e2,....,ere_1,e_2,....,e_rVV的一个规范正交基,那么VV中任一向量aa都可以由e1,e2,....,ere_1,e_2,....,e_r线性表示,其表达式为:

a=λ1e1+λ2e2+....+λrera=\lambda_1e_1+\lambda_2e_2+....+\lambda_re_r

假设我们需要求其中的一个λi(i=1,2,...,r)\lambda_i(i=1,2,...,r)

同定理1中的证明方式一样

还是等式的左右两边同时左乘eiTe_i^T

eiTa=eiT(λ1e1+λ2e2+....+λrer)e_i^Ta=e_i^T(\lambda_1e_1+\lambda_2e_2+....+\lambda_re_r)

因为e1,e2,....,ere_1,e_2,....,e_rVV的一个规范正交基

所以eiTej=0(ij)e_i^Te_j=0\,(i\neq j)

除了eiTei=0e_i^Te_i=0外,其余都为0

得到

eiTa=eiTλiei=λieiTei=λie_i^Ta=e_i^T\lambda_ie_i=\lambda_ie_i^Te_i=\lambda_i

eie_i是单位向量,所以eiTei=1e_i^Te_i=1

λi=eiTa=[a,ei]([ei,a]也可以)\lambda_i=e_i^Ta=[a,e_i]\quad([e_i,a]也可以)

Ps: eiae_i、a都是列向量,eiTae_i^Ta本质就是两个向量中对应元素两两相乘再累加,其实就是两个向量的内积 使用这个公式可以方便地求出向量的坐标 所以在给向量空间取基的时常常取规范正交基

施密特正交化

a1,a2,...,ara_1,a_2,...,a_r是向量空间VV的一个基,若我们需要求VV的一个规范正交基,也就是要找一组两两正交单位向量e1,e2,...,ere_1,e_2,...,e_r,使得e1,e2,...,ere_1,e_2,...,e_ra1,a2,...,ara_1,a_2,...,a_r等价

a1,a2,...,ara_1,a_2,...,a_re1,e2,...,ere_1,e_2,...,e_r称为对a1,a2,...,ara_1,a_2,...,a_r这个基进行规范正交化

施密特正交化则是实现对一个向量空间中的一个基转换为一个规范正交基

具体方法过程如下:

假设我们需要将a1,a2,...,ara_1,a_2,...,a_r进行规范正交化

b1=a1b_1=a_1

b2=a2[b1,a2][b1,b1]b1b_2=a_2-\frac{[b_1,a_2]}{[b_1,b_1]}b_1

..............

br=ar[b1,ar][b1,b1]b1[b2,ar][b2,b2]b2....[br1,ar][br1,br1]br1b_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-....-\frac{[b_{r-1},a_r]}{[b_{r-1},b_{r-1}]}b_{r-1}

b1,b2,....,b3b_1,b_2,....,b_3两两正交

然后再对其分别单位化,得

e1=1b1b1e_1=\frac{1}{||b_1||}b_1

e2=1b2b2e_2=\frac{1}{||b_2||}b_2

..........

er=1brbre_r=\frac{1}{||b_r||}b_r

e1,e2,....,ere_1,e_2,....,e_r就是VV中的一个规范正交基

正交阵

如果nn阶矩阵AA满足

ATA=E(A1=AT)A^TA=E(即A^{-1}=A^T)

那么称AA为正交矩阵,简称正交阵


ATA=[a1Ta2T...anT](a1,a2,...,an)=EA^TA=\begin{bmatrix} a_1^T\\ a_2^T\\ .\\ .\\ .\\ a_n^T \end{bmatrix}(a_1,a_2,...,a_n)=E

说明

(aiTaj)=(δij)(a_i^Ta_j)=(\delta_{ij})

其中

δij={1,i=j0,ij\delta_{ij}=\begin{cases} 1,当i=j时\\ 0,当i\neq j时 \end{cases}

也就是说

只有aiTai=1a_i^Ta_i=1j=ij=i时),其余都为0

因为aiTai=1a_i^Ta_i=1,得到aia_i为单位向量

aiTai=[ai,ai]=ai2=1a_i^Ta_i=[a_i,a_i]=||a_i||^2=1 说明ai=1||a_i||=1 所以aia_i为单位向量

综上:方阵AA为正交阵的充分必要条件是AA的列向量都是单位向量,且两两正交

n阶正交阵A的n个列(行)向量构成向量空间Rn\mathbb{R}^n的一个规范正交基


正交阵具有的一些性质:

  • AA为正交阵,则A1=ATA^{-1}=A^T也是正交阵,且A=1(或1|A|=1(或-1)
  • AABB都是正交阵,则ABAB也是正交阵

正交变换

PP为正交矩阵,则线性变换y=Pxy=Px称为正交变换


y=Pxy=Px为正交变换,其中PP为正交矩阵

y=[y,y]=yTy=(Px)T(Px)=xTPTPx=xT(PTP)x=xTEx=xTx=[x,x]=x||y||=\sqrt{[y,y]}=\sqrt{y^Ty}=\sqrt{(Px)^T(Px)}=\sqrt{x^TP^TPx}=\sqrt{x^T(P^TP)x}=\sqrt{x^TEx}=\sqrt{x^Tx}=\sqrt{[x,x]}=||x||

y=x||y||=||x||

说明经过正交变换y的长度保持不变(正交变换的特性!)

举例

例1

已知3维向量空间R3\mathbb{R}^3中两个向量

a1=[111],a2=[121]a_1=\begin{bmatrix} 1\\ 1\\ 1 \end{bmatrix},a_2=\begin{bmatrix} 1\\ -2\\ 1 \end{bmatrix}

正交,求一个非零向量a3a_3,使得a1,a2,a3a_1,a_2,a_3两两正交

解答:

A=[a1Ta2T]=[111121]A=\begin{bmatrix} a_1^T\\ a_2^T \end{bmatrix}=\begin{bmatrix} 1 & 1 & 1\\ 1 & -2 & 1 \end{bmatrix}

方程Ax=0Ax=0的解xx其实就是a3a_3

Aa3=[a1Ta2T]a3=[a1Ta3a2Ta3]=[00]Aa_3=\begin{bmatrix} a_1^T\\ a_2^T \end{bmatrix}a_3=\begin{bmatrix} a_1^Ta_3\\ a_2^Ta_3 \end{bmatrix}=\begin{bmatrix} 0\\ 0 \end{bmatrix}a1Ta3=0a_1^Ta_3=0 a2Ta3=0a_2^Ta_3=0a3a_3a1a_1a2a_2正交

AA进行初等行变换,得到行最简矩阵

A[101010]A \sim \begin{bmatrix} 1 & 0 & 1\\ 0 & 1 & 0 \end{bmatrix}

得到

{x1+x3=0x2=0\begin{cases} x_1 + x_3=0\\ x_2=0 \end{cases}

移项得

{x1=x3x2=0\begin{cases} x_1 = -x_3\\ x_2=0 \end{cases}

x3=cx_3=c

得到

x=[x1x2x3]=c[101]x=\begin{bmatrix} x_1\\ x_2\\ x_3 \end{bmatrix}=c\begin{bmatrix} -1\\ 0\\ 1 \end{bmatrix}

所以a3a_3可以取[101]\begin{bmatrix} -1\\ 0\\ 1 \end{bmatrix},满足题目要求

例2

a1=[121],a2=[131],a3=[410]a_1=\begin{bmatrix} 1\\ 2\\ -1 \end{bmatrix},a_2=\begin{bmatrix} -1\\ 3\\ 1 \end{bmatrix},a_3=\begin{bmatrix} 4\\ -1\\ 0 \end{bmatrix},试用施密特正交化过程把这组向量规范正交化

解答:

b1=a1=[121]b_1=a_1=\begin{bmatrix} 1\\ 2\\ -1 \end{bmatrix}

b2=a2[b1,a2][b1,b1]b1=[131]46[121]=53[111]b_2=a_2-\frac{[b_1,a_2]}{[b_1,b_1]}b_1=\begin{bmatrix} -1\\ 3\\ 1 \end{bmatrix}-\frac{4}{6}\begin{bmatrix} 1\\ 2\\ -1 \end{bmatrix}=\frac{5}{3}\begin{bmatrix} -1\\ 1\\ 1 \end{bmatrix}

b3=a3[b1,a3][b1,b1]b1[b2,a3][b2,b2]b2=[410]13[121]+53[111]=2[101]b_3=a_3-\frac{[b_1,a_3]}{[b_1,b_1]}b_1-\frac{[b_2,a_3]}{[b_2,b_2]}b_2=\begin{bmatrix} 4\\ -1\\ 0 \end{bmatrix}-\frac{1}{3}\begin{bmatrix} 1\\ 2\\ -1 \end{bmatrix}+\frac{5}{3}\begin{bmatrix} -1\\ 1\\ 1 \end{bmatrix}=2\begin{bmatrix} 1\\ 0\\ 1 \end{bmatrix}

再对b1,b2,b3b_1,b_2,b_3进行单位化

e1=1b1b1=16[121]e_1=\frac{1}{||b_1||}b_1=\frac{1}{\sqrt{6}}\begin{bmatrix} 1\\ 2\\ -1 \end{bmatrix}

e2=1b2b2=13[111]e_2=\frac{1}{||b_2||}b_2=\frac{1}{\sqrt{3}}\begin{bmatrix} -1\\ 1\\ 1 \end{bmatrix}

e3=1b3b3=12[101]e_3=\frac{1}{||b_3||}b_3=\frac{1}{\sqrt{2}}\begin{bmatrix} 1\\ 0\\ 1 \end{bmatrix}

e1,e2,e3e_1,e_2,e_3即为a1,a2,a3a_1,a_2,a_3规范正交化后的向量组

例3

已知a1=[111]a_1=\begin{bmatrix} 1\\ 1\\ 1 \end{bmatrix},求一组非零向量a2,a3a_2,a_3,使a1,a2,a3a_1,a_2,a_3两两正交

解答:

A=[a1T]=[111]A=\begin{bmatrix} a_1^T \end{bmatrix}=\begin{bmatrix} 1 & 1 &1 \end{bmatrix}

对方程Ax=0Ax=0进行求解

A=[111]A=\begin{bmatrix} 1 & 1 &1 \end{bmatrix}

得到

x1+x2+x3=0x_1+x_2+x_3=0

x1=x2x3x_1=-x_2-x_3

x2=c1,x3=c2x_2=c_1,x_3=c_2

x=c1[110]+c2[101]x=c_1\begin{bmatrix} -1\\ 1\\ 0 \end{bmatrix}+c_2\begin{bmatrix} -1\\ 0\\ 1 \end{bmatrix}

得到基础解系

ζ1=[110],ζ2=[101]\zeta_1=\begin{bmatrix} -1\\ 1\\ 0 \end{bmatrix},\zeta_2=\begin{bmatrix} -1\\ 0\\ 1 \end{bmatrix}

此时Aζ1=0Aζ2=0A\zeta_1=0、A\zeta_2=0

但是并不满足ζ1ζ2=0\zeta_1\zeta_2=0(因为a1,a2,a3a_1,a_2,a_3要两两正交)

还需要再对ζ1ζ2\zeta_1、\zeta_2进行规范正交化(使用施密特正交化进行转换)

a2=ζ1=[110]a_2=\zeta_1=\begin{bmatrix} -1\\ 1\\ 0 \end{bmatrix}

a3=ζ2[ζ1,ζ2][ζ1,ζ1]ζ1=[101]12[110]=[12121]=12[112]a_3=\zeta_2-\frac{[\zeta_1,\zeta_2]}{[\zeta_1,\zeta_1]}\zeta_1=\begin{bmatrix} -1\\ 0\\ 1 \end{bmatrix}-\frac{1}{2}\begin{bmatrix} -1\\ 1\\ 0 \end{bmatrix}=\begin{bmatrix} -\frac{1}{2}\\ -\frac{1}{2}\\ 1 \end{bmatrix}=\frac{1}{2}\begin{bmatrix} -1\\ -1\\ 2 \end{bmatrix}

综上:

a1=[111],a2=[110],a3=12[112]a_1=\begin{bmatrix} 1\\ 1\\ 1 \end{bmatrix},a_2=\begin{bmatrix} -1\\ 1\\ 0 \end{bmatrix},a_3=\frac{1}{2}\begin{bmatrix} -1\\ -1\\ 2 \end{bmatrix}

答案并不惟一

结语

说明:

  • 参考于 课本《线性代数》第五版 同济大学数学系编
  • 配合书中概念讲解 结合了自己的一些理解及思考

文章仅作为学习笔记,记录从0到1的一个过程

希望对您有所帮助,如有错误欢迎小伙伴指正~

我是 海轰ଘ(੭ˊᵕˋ)੭

如果您觉得写得可以的话,请点个赞吧

谢谢支持 ❤️