线性代数之五:正交性

5.1 标量积

5.1.1 向量余弦

标量积定义:有两个 Rn 中的列向量x,y,则乘积 xTy 称为x,y的标量积(scalar product),标量积为一个标量 xiyi

向量的欧氏距离: xRn ,则向量x的欧氏距离可通过标量积定义 ||x||=(xTx)12=x2i

向量距离:若x,y为 Rn 中的向量,则x,y间的距离定义为 ||yx||

向量余弦的计算:若x,y为 Rn 中的向量,两个向量的夹角为 θ ,则

xTy=||x||×||y||×cosθ

记u为x方向上的单位向量,v为y方向上的单位向量,则有||u||=||v||=1,则
cosθ=xT||x||y||y||=uTv,θ[0,π]

柯西-施瓦茨不等式: 若x,y为 Rn 中的向量,则 xTy||x||||y|| 当且仅当其中一个向量为0,或二者方向相同或相反时,等号成立

5.1.2 向量正交与投影

正交: xTy=0 ,则x和y称为正交的(orthogonal),其几何意义是两个向量夹角为直角。

当两个向量x和y正交时,由勾股定理:

||xy||2=||x+y||2=||x||2+||y||2

在非正交情况下则有:

  • 两个向量x,y与向量和(x+y)组成的三角形
    ||x+y||2=(x+y)T(x+y)=||x||2+||y||2+2xTy
  • 两个向量x,y与向量差(x-y)组成的三角形
    ||xy||2=(xy)T(xy)=||x||2+||y||22xTy

向量投影:若x,y为非零向量,则有:
x到y的标量投影为 a=||x||cosθ=xTy||y||
x到y的向量投影为 p=ay||y||=xTy||y||y||y||=xTyyTyy

5.1.3 向量余弦的应用

在1.3.6节中,展示了矩阵运算在检索中的应用。在其基础上,对矩阵的列向量及搜索向量单位化,则计算结果的每一行都对应一个文档的词向量与搜索向量的余弦值,其值越接近1,说明两个向量方向越相同,匹配度越好。

5.1.4 相关矩阵与协方差矩阵

矩阵A是n*m的矩阵,其各列 aj 代表一组观察序列,每个点 aij 保存了第j组的各次观察值偏离于平均值的偏差。

  • S=1n1ATA ,则S的元素 sij=1n1aTiaj ,由协方差的定义,其为第i列与第j列的协方差;若i=j,元素 sij 为第i列的方差,我们称矩阵S为协方差矩阵。
  • 对A的列向量进行单位化得到矩阵B,可知 bj=aj||aj|| 。令 C=BTB ,则C是一个m*m的矩阵,C的元素 cij=bTibj=aTiaj||ai||||aj|| ,由向量余弦定义,其为A的第i列与第j列的cos距离,我们称矩阵C为相关矩阵。

5.2 正交子空间

正交子空间:设X和Y为 Rn 的子空间,若对任意的 xX yY 都有 xTy=0 ,则称X和Y为正交的,记作 XY

正交补: Rn 中,所有与Y中向量正交的向量集合记作 Y ,称其为Y的正交补,有 Y={xRn|xTy=0,yY}

基本子空间定理:若A为一m*n矩阵,记 R(A) 为A的列空间,则 N(A)=R(AT) ,且 N(AT)=R(A)

定理:若S为 Rn 的子空间,则 dimS+dimS=n 。此外,若 {x1...,xr} S 的一组基,而 xr+1,...,xn S 的一组基,则 {x1...,xr,xr+1,...,xn} 为R的一组基。

直接和:若U和V为向量空间W的子空间,且每一个 wW 可以惟一的写为一个和u+v,其中 uU,vV ,则称W为U和V的直接和(direct sum),记作 W=UV

定理:若S为R的子空间,则 Rn=SS
定理:若S为R的子空间,则 (S)=S
推论:若A为一m*n矩阵,且 bRm ,则要么存在向量 xRn 使得Ax=b,要么存在一个向量 yRm ,使得 ATy=0yTb0

5.3 最小二乘法

最小二乘问题一般可化为一个超定的方程组,一般我们不期望找到一个向量x,使得Ax=b,而是寻找x使得Ax最接近b,正交性在计算x的过程中扮演了重要的角色。
给定方程组Ax=b,则对每一个x都可以构造一个残差(residual):

r(x)=bAx

因此 ||bAx||=||r(x)|| ,寻找一个向量x,使用||r(x)||最小,达到最小值的向量 xˆ 称为Ax=b的最小二乘解(least squares solution)。

正规方程组(normal equations): 定义 ATAx=ATb Ax=b 的正规方程组。

下面的定理给出了如何求解最小二乘解的方法。
定理:若A是一秩为n的m*n矩阵,则正规方程组 ATAx=ATb 有惟一解 xˆ=(ATA)1ATb ,且 xˆ 为Ax=b的惟一最小二乘解。

向量 p=Axˆ 为R(A)中的元素,且在最小二乘意义下最接近b。矩阵 P=A(ATA)1AT 称为投影矩阵。

线性拟合:若数据之间存在线性关系y=kx+b,在最小二乘意义下拟合数据,则有

11x1xm[bk]=y1ym

只要有m组(x,y)的观察数据,代入上式中,即可由本章定理计算出b,k的值。

多项式拟合:若数据之间不像线性关系,则可以使用一个高次多项式 y=a0+a1x+a2x2+...+a1xn 进行拟合,有

11x1xm......xn1xnma0a1an=y1ym

只要有m组(x,y)的观察数据,代入上式中,即可由本章定理计算出各个系数a的值。

下面的代码示例了使用numpy与scipy求解二次函数的最小二乘问题

import numpy as np
from scipy.optimize import leastsq

input_x = np.array([0,1,2,3])
input_y = np.array([3,2,4,4])
init_a = [1,1,1]

def func(x, args):
    a0,a1,a2 = args
    return a0 + a1*x + a2*x*x

def residual(args, x, y):
    return func(x,args) - y

result = leastsq(residual, init_a, args=(input_x, input_y))
print result[0] #2.75 -0.25, 0.25,即 y = 2.75 - 0.25x + 0.25x^2

5.4 内积空间

内积空间定义:一个定义了内积的向量空间V称为内积空间。向量空间V上的内积(inner product)为V上的运算,它将V中的向量x和y与一个实数< x, y >关联起来,并满足下列条件:

  • < x, y > 0 ,发且仅当x=0时等号成立
  • 对V中所有的x,y,都有 <x,y>=<y,x>
  • 对V中所有x,y,z和标量a,b有 <ax+by,z>=a<x,z>+b<y,z>

在行空间和列空间中,内积就是标量积。
在矩阵空间中,内积< A, B >为 mi=1nj=1aijbij

内积空间的性质:

  • 若v为内积空间V的一个向量,v的长度或范数(norm)定义为: ||v||=<v,v>
  • 如果两个向量u,v满足< u, v >=0,则称它们为正交的
  • 若内积空间V中的向量u,v正交,则 ||u+v||2=||u||2+||v||2

在向量空间Rm*n中,内积定义的范数称为弗罗贝尼乌斯(Frobenius)范数,记为 ||||F

投影:若u和v为内积空间V的向量,且v不为0,则u到v的标量投影为 a=<u,v>||v|| ,且u到v的向量投影为 p=a(1||v||v)=<u,v><v,v>v

范数:若V为一个向量空间,若对任意向量v,存在一个与之关联的实数||v||,称为v的范数。且 ||v||=<v,v> 定义了V上的一个范数。

无穷范数:

||x||=max1in|xi|

对任意实数p>1,有

||x||p=(i=1n|xi|p)1/p

当p=2时,称其为内积诱导范数。

范数给出了一种方法来度量两个向量的距离。若x和y为一个normed liner space空间中的向量,则x和y的距离定义为||y-x||

5.5 正交集

5.5.1 正交集

正交集: v1,v2,...,vn 为一内积空间V中的非零向量。当 ij 时有 <vi,vj>=0 ,则 {v1,v2,...,vn} 称为向量的正交集。正交集中的向量两两正交。

定理: {v1,v2,...,vn} 为一内积空间V中非零向量的正交集,则 v1,v2,...,vn 是线性无关的。

规范正交(orthonormal)向量集合:单位向量的正交集,即 {e1,e2,...,en}
给定任意正交向量集合,可以通过将各向量单位化,从而得到规范正交集

规范正交基(orthonormal basis): {u1,u2,...,un} 为内积空间V中的规范正交集合,其张成的子空间 S=Span(u1,u2,...,un) ,称 {u1,u2,...,un} 为S的一组规范正交基。

定理: u1,u2,...,un 为V的规范正交基,若v可由u线性表出即 v=ni=1ciui ,则 ci=<v,ui>

推论: u1,u2,...,un 为V的规范正交基,且w,v可由u线性表出即

v=i=1naiui,w=i=1nbiui
则有
<w,v>=i=1naibi

帕塞瓦尔公式: u1,u2,...,un 为V的规范正交基,v可由v线性表出即 v=ni=1ciui ,则

||v||2=i=1nc2i

5.5.2 正交矩阵

正交矩阵:若一个n*n矩阵Q的列向量构成一组规范正交基,则称Q为正交矩阵。

定理:一个矩阵Q是正交矩阵的充要条件为 QTQ=I

正交矩阵的性质:

  • Q的列向量构成一组规范正交基
  • QTQ=I
  • Q1=QT
  • <Qx,Qy>=<x,y>
  • ||Qx||=||x||

置换矩阵: 置换矩阵是将单位矩阵的各列重新排列得到的矩阵。
若P为置换矩阵,则A右乘P就是将A的各列按照P的重排序列进行重排,A左乘P就是将A的各行重排。

规范正交集与最小二乘问题
对于最小二乘问题,若矩阵A是正交矩阵,则求解过程更加简单。

规范正交矩阵的最小二乘解:若A的列向量构成 Rm 中的规范正交集,则 ATA=I 且最小二乘问题的解为

xˆ=ATb

5.6 格拉姆-放密特正交化

格拉姆-放密特过程: {x1,...,xn} 为一内积空间V的一组基,令 u1=(1||x1||)x1 ,递归地定义 u2,...,un

uk+1=1||xk+1pk||(xk+1pk)
,其中 pk=<xk+1,u1>u1+<xk+1,u2>u2+...+<xk+1,uk>uk xk+1 Span(u1,...,uk) 上的投影向量。集合 u1,...un 即为V的一组规范正交基。

QR分解:若A为秩为n的m*n矩阵,则A可分解为乘积QR,其中Q为一各列向量正交的m*n矩阵,R为一n*n的上三角矩阵且对角线元素均为正。

QR分解与最小二乘解:若A为一秩为n的m*n矩阵,则Ax=b的最小二乘解为 xˆ=R1QTb

5.7 使用numpy计算矩阵的QR分解

import numpy as np
A=np.array([[1,2],[3,4]])
q,r = np.linalg.qr(A)
print q,r

你可能感兴趣的:(数学)