1.点积(Dot Product)
1.1 定义
对于两个向量u=(u1,u2,u3),v=(v1,v2,v3)u=(u_1,u_2,u_3),v=(v_1,v_2,v_3)u=(u1,u2,u3),v=(v1,v2,v3)
点积定义为:u⋅v=u1v1+u2v2+u3v3u \cdot v=u_1v_1+u_2v_2+u_3v_3u⋅v=u1v1+u2v2+u3v3
1.2 几何意义
点积也可以写成:u⋅v=∥u∥∥v∥cosθu \cdot v=\|u\|\|v\|cos \thetau⋅v=∥u∥∥v∥cosθ
其中θ\thetaθ是向量u,vu,vu,v之间的夹角。
- 如果θ<90∘:\theta<90^\circ:θ<90∘:点积>0>0>0
- 如果θ=90∘:\theta=90^\circ:θ=90∘:点积=0=0=0(正交)
- 如果θ>90∘:\theta>90^\circ:θ>90∘:点积<0
直观:点积 = 一个向量在另一个向量方向上的投影 × 长度。
1.3 主要应用
- 判断向量是否垂直(点积=0)
- 机器学习里:相似度度量(余弦相似度)
2.叉积(Cross Product)
2.1 定义(仅在三维空间有意义)
对于两个三维向量u=(u1,u2,u3),v=(v1,v2,v3)u=(u_1,u_2,u_3),v=(v_1,v_2,v_3)u=(u1,u2,u3),v=(v1,v2,v3)
叉积定义为:
u×v=∣ijku1u2u3v1v2v3∣=(u2v3−u3v2,u3v1−u1v3,u1v2−u2v1)u \times v = \left| \begin{matrix} \bf{i} & \bf{j} & \bf{k} \\ u_1 & u_2 & u_3 \\ v_1 & v_2 & v_3 \end{matrix} \right| = (u_2v_3-u_3v_2,u_3v_1-u_1v_3,u_1v_2-u_2v_1)u×v=
iu1v1ju2v2ku3v3
=(u2v3−u3v2,u3v1−u1v3,u1v2−u2v1)
2.2 几何意义
- 方向:u×vu \times vu×v垂直于uuu和vvv所在的平面(右手定则,四指并拢,拇指竖起,四指指向uuu的方向,手掌旋转,从uuu旋转到vvv,拇指竖直指向叉积的方向。)
- 长度:∥u×v∥=∥u∥∥v∥sinθ\|u\times v \|=\|u\| \|v \| sin \theta∥u×v∥=∥u∥∥v∥sinθ,等于“以u,vu,vu,v为边的平行四边形面积”。
直观:叉积 = 给出“垂直方向 + 面积大小”的向量。
2.3 主要应用
- 计算面积:∣u×v∣=| u \times v|=∣u×v∣=平行四边形面积
- 计算体积:∣u⋅(v×w)∣=|u \cdot (v \times w)|=∣u⋅(v×w)∣=平行六面体体积
3.矩阵行列式
3.1 从二维出发(面积)
考虑二维矩阵:A=[abcd]A = \left[ \begin{matrix} a & b \\ c & d \end{matrix} \right]A=[acbd]
它把单位正方形的两个基向量:e1=[10],e2=[01]e_1 = \left[ \begin{matrix} 1 \\ 0 \end{matrix} \right],e_2 = \left[ \begin{matrix} 0 \\ 1 \end{matrix} \right]e1=[10],e2=[01]
变换为:Ae1=[ac],Ae2=[bd]Ae_1=\left[ \begin{matrix} a \\c \end{matrix} \right],Ae_2=\left[ \begin{matrix} b \\ d \end{matrix} \right]Ae1=[ac],Ae2=[bd]
所以正方形变成了一个平行四边形,它的面积是:Area=∣ad−bc∣Area=|ad-bc|Area=∣ad−bc∣,也就是Ae1,Ae2Ae_1,Ae_2Ae1,Ae2两个向量做叉积的绝对值,即Area=∣Ae1×Ae2∣Area=|Ae_1 \times Ae_2|Area=∣Ae1×Ae2∣
这正好是∣det(A)∣,A|det(A)|,A∣det(A)∣,A的行列式的绝对值。
在二维,行列式就是单位正方形被矩阵变换后的面积缩放因子。
3.2 三维情况(体积)
三维矩阵:A=[abcdefghi]A=\left[ \begin{matrix} a & b & c \\ d & e & f \\ g & h & i\end{matrix}\right]A=
adgbehcfi
把单位立方体的三个基向量映射到新的三个向量:v1=(a,d,g)T,v2=(b,e,h)T,v3=(c,f,i)Tv_1=(a,d,g)^T,v_2=(b,e,h)^T,v_3=(c,f,i)^Tv1=(a,d,g)T,v2=(b,e,h)T,v3=(c,f,i)T
这三个向量张成一个平行六面体,它的体积由三重积给出:
V=∣v1⋅(v2×v3)∣=∣(a,d,g)⋅((b,e,h)×(c,f,i))∣V=|v_1 \cdot (v_2 \times v_3)|=|(a,d,g)\cdot((b,e,h) \times (c,f,i))|V=∣v1⋅(v2×v3)∣=∣(a,d,g)⋅((b,e,h)×(c,f,i))∣
这个结果恰好就是∣det(A)∣|det(A)|∣det(A)∣
证明:
v2×v3=[ijkbehcfi]=(ei−hf,hc−bi,bf−ec)v_2\times v_3=\left[ \begin{matrix} \bf{i} & \bf{j} & \bf{k} \\ b & e & h \\ c & f & i \end{matrix} \right]=(ei-hf,hc-bi,bf-ec)v2×v3=
ibcjefkhi
=(ei−hf,hc−bi,bf−ec)
v1⋅(v2×v3)=a(ei−hf)+d(hc−bi)+g(bf−ec)=aei−ahf+dhc−dbi+gbf−gec=a(ei−hf)−b(di−fg)+c(dh−eg)v_1 \cdot (v_2 \times v_3)=a(ei-hf)+d(hc-bi)+g(bf-ec)\\=aei-ahf+dhc-dbi+gbf-gec \\ =a(ei-hf)-b(di-fg)+c(dh-eg)v1⋅(v2×v3)=a(ei−hf)+d(hc−bi)+g(bf−ec)=aei−ahf+dhc−dbi+gbf−gec=a(ei−hf)−b(di−fg)+c(dh−eg)
∴∣v1⋅(v2×v3)∣=∣det(A)∣\therefore |v_1\cdot (v_2 \times v_3)|=|det(A)|∴∣v1⋅(v2×v3)∣=∣det(A)∣
在三维,行列式就是体积的伸缩因子。
V=v2×v3V=v_2\times v_3V=v2×v3,其中VVV的长度为v2,v3v_2,v_3v2,v3两个向量组成的平行四边形面积,这在叉积中有图作说明,而VVV的方向垂直于v2,v3v_2,v_3v2,v3所构成的平面。
v1⋅V=∣v1∣∣V∣cosθ,∣v1∣cosθv_1 \cdot V=|v_1||V|cos\theta,|v_1|cos\thetav1⋅V=∣v1∣∣V∣cosθ,∣v1∣cosθ代表在向量VVV上的投影,即可看作以v2,v3v_2,v_3v2,v3构成平面为底的平行六面体的高,而|V|代表v2,v3v_2,v_3v2,v3为底的平行六面体的底面积。
故∣v1⋅(v2×v3)∣|v_1 \cdot (v_2 \times v_3)|∣v1⋅(v2×v3)∣为该平行六面体相对于三个基向量构成的基六面体变换的体积大小。
3.3 高维情况(推广)
在n维空间里,矩阵A把单位立方体(体积=1)映射到一个平行多面体。
行列式的绝对值∣det(A)∣|det(A)|∣det(A)∣就是这个新多面体的体积。
这是由行列式的代数性质决定的:
1.行列式在列向量线性相关时为 0(体积=0,空间被压扁,下一节细讲);
2.行列式在交换两列时变号(体积方向翻转);
证明:
A=[abcdefghi]det(A)=a(ei−fh)−b(di−fg)+c(dh−eg)B=[abcghidef]det(B)=a(fh−ei)−b(fg−di)+c(eg−dh)=−det(A)A=\left[ \begin{matrix} a & b & c \\ d & e & f \\ g & h & i\end{matrix}\right] det(A)=a(ei-fh)-b(di-fg)+c(dh-eg) \\ B=\left[ \begin{matrix} a & b & c \\ g & h & i \\ d & e & f\end{matrix}\right] det(B)=a(fh-ei)-b(fg-di)+c(eg-dh)=-det(A)A=
adgbehcfi
det(A)=a(ei−fh)−b(di−fg)+c(dh−eg)B=
agdbhecif
det(B)=a(fh−ei)−b(fg−di)+c(eg−dh)=−det(A)
3.行列式在一列乘以常数时,结果也乘以这个常数(体积缩放)。
证明:
A=[abcdefghi]det(A)=a(ei−fh)−b(di−fg)+c(dh−eg)B=[abckdkekfghi]det(B)=a(kei−kfh)−b(kdi−kfg)+c(kdh−keg)=ka(ei−fh)−kb(di−fg)+kc(dh−eg)=kdet(A)A=\left[ \begin{matrix} a & b & c \\ d & e & f \\ g & h & i\end{matrix}\right] det(A)=a(ei-fh)-b(di-fg)+c(dh-eg) \\ B=\left[ \begin{matrix} a & b & c \\ kd & ke & kf \\ g & h & i\end{matrix}\right] \\ det(B)=a(kei-kfh)-b(kdi-kfg)+c(kdh-keg) \\ =ka(ei-fh)-kb(di-fg)+kc(dh-eg)=kdet(A)A=
adgbehcfi
det(A)=a(ei−fh)−b(di−fg)+c(dh−eg)B=
akdgbkehckfi
det(B)=a(kei−kfh)−b(kdi−kfg)+c(kdh−keg)=ka(ei−fh)−kb(di−fg)+kc(dh−eg)=kdet(A)
这些正好与体积的几何性质一致,于是行列式就是“体积缩放因子”的唯一合理定义。
只有方阵有行列式。
行列式det(A)det(A)det(A)的本质作用是:
- 代数上:判断一个方阵是否可逆(det(A)≠0⇔det(A) \neq 0 \Leftrightarrowdet(A)=0⇔可逆。
- 几何上:描述线性变换对应的提及缩放因子(带方向)。
这些性质都要求“输入空间维数 = 输出空间维数”,也就是:
A:Rn→RnA:\mathbb{R} ^n \rightarrow \mathbb{R}^nA:Rn→Rn
→\rightarrow→这只有在 𝐴 是方阵时才成立。
如果是非方阵,比如3×4:3 \times 4:3×4:
A:R4→R3A:\mathbb{R}^4 \rightarrow \mathbb{R}^3A:R4→R3
- 它把四维压到三维,体积一定被压成 0
- 没有“体积缩放”这个说法
- 所以行列式就没有定义
4.线性相关与线性无关
4.1 定义
设有一组向量v1,v2,⋯ ,vkv_1,v_2,\cdots,v_kv1,v2,⋯,vk(在同一个向量空间里)
如果存在一组不全为零的系数a1,a2,⋯ ,aka_1,a_2,\cdots,a_ka1,a2,⋯,ak,使得a1v1+a2v2+⋯+akvk=0a_1v_1+a_2v_2+\cdots+a_kv_k=0a1v1+a2v2+⋯+akvk=0
那么这组向量就叫做 线性相关。
否则(只有当所有系数都等于 0 时,上式才成立),就叫做 线性无关。
4.2 几何直观
二维空间
- 如果两个向量在同一条直线上(共线),它们线性相关。
- 如果不共线,就线性无关。
三维空间
- 三个向量如果在同一个平面里(共面),它们线性相关。
- 如果能撑起整个三维空间,就线性无关。
一句话:一个向量可以由其它向量“拼出来”(线性组合),那它们就是相关的。
4.3 代数上的判定
把向量作为矩阵的列:A=[v1v2⋯vk]A=\left[ \begin{matrix} v_1 & v_2 & \cdots & v_k \end{matrix} \right]A=[v1v2⋯vk]
- 如果det(A)=0det(A)=0det(A)=0(方阵情况),说明列向量线性相关
- 一般情况:秩rank(A)<rank(A)<rank(A)<列数→\rightarrow→列向量线性相关
秩rank(A)<rank(A)<rank(A)<列数的话对应det(A)=0det(A)=0det(A)=0,证明:
A=[abcdefa+2db+2ec+2f]A=\left[ \begin{matrix} a & b & c \\ d & e & f \\ a+2d & b+2e & c+2f \end{matrix} \right]A=
ada+2dbeb+2ecfc+2f
这个AAA矩阵的列数就小于秩数,及
A=[abcdefa+2db+2ec+2f]→A=[abcdef000] A=\left[ \begin{matrix} a & b & c \\ d & e & f \\ a+2d & b+2e & c+2f \end{matrix} \right] \rightarrow A = \left[ \begin{matrix} a & b & c \\ d & e & f \\ 0 & 0 & 0 \end{matrix} \right] A=
ada+2dbeb+2ecfc+2f
→A=
ad0be0cf0
det(A)=a(e(c+2f)−f(b+2e))−b(d(c+2f)−f(a+2d))+c(d(b+2e)−e(a+2d))=aec+2aef−afb−2afe−bdc−2bdf+bfa+2bfd+cdb+2cde−cea−2ced=0det(A)=a(e(c+2f)-f(b+2e))-b(d(c+2f)-f(a+2d))+c(d(b+2e)-e(a+2d)) \\ =aec+2aef-afb-2afe-bdc-2bdf+bfa+2bfd+cdb+2cde-cea-2ced \\ =0det(A)=a(e(c+2f)−f(b+2e))−b(d(c+2f)−f(a+2d))+c(d(b+2e)−e(a+2d))=aec+2aef−afb−2afe−bdc−2bdf+bfa+2bfd+cdb+2cde−cea−2ced=0
det(A)=0det(A)=0det(A)=0说明在对应几维的空间里,体积为0。一般用每行代表特定维度(如第一行代表x轴),有多少行就有多少个维度。而有多少列说明有多少个向量。
比如如果两个二维列向量组成的矩阵AAA它的行列式det(A)=0det(A)=0det(A)=0,就说明其中一个列向量可以用另一个列向量表示出来。这两个列向量组成的平行四边形面积为0(面积相当于二维中的体积。);三个三维列向量组成的矩阵BBB它的行列式det(B)=0det(B)=0det(B)=0,就说明至少其中一个列向量可以用其他两个列向量表示出来,这三个列向量组成的三维体积为0(但二维面积并不一定为0。);类似的可以推广至四维,行列式为0,四维体积一定为0,但三维体积却不一定。因此有可以使用降维的方式获取线性不相关的向量,在机器学习中,或者叫获取线性不相关的特征。
4.4 线性相关和线性无关为什么重要?
- 线性无关的向量:可以当作“基底”,张成一个空间。
- 线性相关的向量:含有冗余信息,多余的那个能被其它的表示。
在机器学习/数据分析中:
- 如果特征(变量)线性相关,就会出现多重共线性问题 → 回归系数不稳定。
- 在 PCA(主成分分析)中,我们寻找线性无关的方向来表示数据。
总结:
线性相关 = 存在冗余,一个向量能用其它的拼出来。
线性无关 = 没冗余,它们是“独立的方向”,能作为基底。
5.矩阵的秩
5.1 定义
对于一个矩阵AAA,它的秩定义为:
rank(A)rank(A)rank(A)=列空间的维数=行空间的维数
常用同义表述:
- rank(A)rank(A)rank(A) = 「最多能选出多少个线性无关的列向量」
- rank(A)rank(A)rank(A) = 「最多能选出多少个线性无关的行向量」
- 对方阵:rank(A)=n⇔Arank(A) = n ⇔ Arank(A)=n⇔A可逆 ⇔det(A)≠0⇔\Leftrightarrow det(A) ≠ 0 \Leftrightarrow⇔det(A)=0⇔ 列/行向量线性无关 ⇔\Leftrightarrow⇔ 特征值≠0⇔\neq0 \Leftrightarrow=0⇔所有特征值非零。
5.2 列空间/行空间是什么?
- 列向量Col(A)Col(A)Col(A):AAA 的所有列向量的线性组合集合,位于 RmℝᵐRm 中。 维数 = rank(A)rank(A)rank(A)。
- 行空间 Row(A)Row(A)Row(A):AAA 的所有行向量的线性组合集合,位于 RnℝⁿRn 中。维数 = rank(A)rank(A)rank(A)。
直观地说:列空间就是 AxAxAx 能到达的所有输出方向;行空间是 AtyAᵗyAty 能到达的所有方向。
6.矩阵可逆与不可逆
6.1 可逆的定义
矩阵 𝐴 可逆(invertible),是指:存在一个矩阵 A−1A^{-1}A−1,使得 AA−1=A−1A=IAA^{-1}=A^{-1}A=IAA−1=A−1A=I
其中 𝐼 是单位矩阵。
- 如果存在这样的逆矩阵,称 可逆矩阵。
- 如果不存在这样的逆矩阵,称 不可逆矩阵(奇异矩阵 singular matrix)。
可逆矩阵一定是方阵,证明:
如果AAA是m×nm \times nm×n,A−1A^{-1}A−1是n×mn \times mn×m,则AA−1AA^{-1}AA−1为m×mm \times mm×m,A−1AA^{-1}AA−1A为n×nn \times nn×n。AA−1≠A−1AAA^{-1} \neq A^{-1}AAA−1=A−1A
6.2 代数意义
可逆矩阵:
线性方程组 Ax=bAx=bAx=b 有唯一解 xxx。
不可逆矩阵:
线性方程组 Ax=bAx=bAx=b 没有解 或 有无穷多个解。
特别地,Ax=0Ax=0Ax=0 的唯一解不再是 x=0x=0x=0,还可能有非零解(这就是“非零解”的来源)。
为啥可逆矩阵有唯一解?不可逆矩阵没有解或者无穷多个解?
1.假设AAA为可逆矩阵,大小为n×nn \times nn×n,xxx为n×1n \times 1n×1,AAA可以和xxx列nnn个方程,方程的右边等于bbb,nnn个方程解xxx的nnn个未知数,确定唯一解。
2.假设AAA为不可逆矩阵,大小为n×nn \times nn×n,xxx为n×1n \times 1n×1。
AAA的秩<n<n<n,假设AAA的某些行能够用其他行表示出来,那么AAA和xxx的所列方程实际上就没有nnn个了,因为某一个方程也能用其他方程表示出来。未知数有n个,而方程没有nnn个。
在方程少于nnn个时,又分为两种情况。
①bbb属于AAA的列空间。
②bbb不属于AAA的列空间。