标量积定义:有两个 Rn 中的列向量x,y,则乘积 xTy 称为x,y的标量积(scalar product),标量积为一个标量 ∑xiyi
向量的欧氏距离:若 x∈Rn ,则向量x的欧氏距离可通过标量积定义 ||x||=(xTx)12=∑x2i‾‾‾‾‾√
向量距离:若x,y为 Rn 中的向量,则x,y间的距离定义为 ||y−x||
向量余弦的计算:若x,y为 Rn 中的向量,两个向量的夹角为 θ ,则
柯西-施瓦茨不等式: 若x,y为 Rn 中的向量,则 xTy≤||x||∗||y|| 当且仅当其中一个向量为0,或二者方向相同或相反时,等号成立
正交:若 xTy=0 ,则x和y称为正交的(orthogonal),其几何意义是两个向量夹角为直角。
当两个向量x和y正交时,由勾股定理:
在非正交情况下则有:
向量投影:若x,y为非零向量,则有:
x到y的标量投影为 a=||x||cosθ=xTy||y||
x到y的向量投影为 p=ay||y||=xTy||y||y||y||=xTyyTyy
在1.3.6节中,展示了矩阵运算在检索中的应用。在其基础上,对矩阵的列向量及搜索向量单位化,则计算结果的每一行都对应一个文档的词向量与搜索向量的余弦值,其值越接近1,说明两个向量方向越相同,匹配度越好。
矩阵A是n*m的矩阵,其各列 aj 代表一组观察序列,每个点 aij 保存了第j组的各次观察值偏离于平均值的偏差。
正交子空间:设X和Y为 Rn 的子空间,若对任意的 x∈X 和 y∈Y 都有 xTy=0 ,则称X和Y为正交的,记作 X⊥Y
正交补: Rn 中,所有与Y中向量正交的向量集合记作 Y⊥ ,称其为Y的正交补,有 Y⊥={x∈Rn|xTy=0,∀y∈Y}
基本子空间定理:若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的子空间,且每一个 w∈W 可以惟一的写为一个和u+v,其中 u∈U,v∈V ,则称W为U和V的直接和(direct sum),记作 W=U⨁V
定理:若S为R的子空间,则 Rn=S⨁S⊥
定理:若S为R的子空间,则 (S⊥)⊥=S
推论:若A为一m*n矩阵,且 b∈Rm ,则要么存在向量 x∈Rn 使得Ax=b,要么存在一个向量 y∈Rm ,使得 ATy=0且yTb≠0
最小二乘问题一般可化为一个超定的方程组,一般我们不期望找到一个向量x,使得Ax=b,而是寻找x使得Ax最接近b,正交性在计算x的过程中扮演了重要的角色。
给定方程组Ax=b,则对每一个x都可以构造一个残差(residual):
正规方程组(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,在最小二乘意义下拟合数据,则有
多项式拟合:若数据之间不像线性关系,则可以使用一个高次多项式 y=a0+a1x+a2x2+...+a1xn 进行拟合,有
下面的代码示例了使用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
内积空间定义:一个定义了内积的向量空间V称为内积空间。向量空间V上的内积(inner product)为V上的运算,它将V中的向量x和y与一个实数< x, y >关联起来,并满足下列条件:
在行空间和列空间中,内积就是标量积。
在矩阵空间中,内积< A, B >为 ∑mi=1∑nj=1aijbij
内积空间的性质:
在向量空间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上的一个范数。
无穷范数:
对任意实数p>1,有
范数给出了一种方法来度量两个向量的距离。若x和y为一个normed liner space空间中的向量,则x和y的距离定义为||y-x||
正交集:令 v1,v2,...,vn 为一内积空间V中的非零向量。当 i≠j 时有 <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线性表出即
帕塞瓦尔公式:若 u1,u2,...,un 为V的规范正交基,v可由v线性表出即 v=∑ni=1ciui ,则
正交矩阵:若一个n*n矩阵Q的列向量构成一组规范正交基,则称Q为正交矩阵。
定理:一个矩阵Q是正交矩阵的充要条件为 QTQ=I
正交矩阵的性质:
置换矩阵: 置换矩阵是将单位矩阵的各列重新排列得到的矩阵。
若P为置换矩阵,则A右乘P就是将A的各列按照P的重排序列进行重排,A左乘P就是将A的各行重排。
规范正交集与最小二乘问题
对于最小二乘问题,若矩阵A是正交矩阵,则求解过程更加简单。
规范正交矩阵的最小二乘解:若A的列向量构成 Rm 中的规范正交集,则 ATA=I 且最小二乘问题的解为
格拉姆-放密特过程:令 {x1,...,xn} 为一内积空间V的一组基,令 u1=(1||x1||)x1 ,递归地定义 u2,...,un 为
QR分解:若A为秩为n的m*n矩阵,则A可分解为乘积QR,其中Q为一各列向量正交的m*n矩阵,R为一n*n的上三角矩阵且对角线元素均为正。
QR分解与最小二乘解:若A为一秩为n的m*n矩阵,则Ax=b的最小二乘解为 xˆ=R−1QTb
import numpy as np
A=np.array([[1,2],[3,4]])
q,r = np.linalg.qr(A)
print q,r