1.向量
1.1 點積(Dot Product)
1.1.1 定義
點積是在求一個標量,點積結果沒有方向。
對于兩個向量u=(u1,u2,u3),v=(v1,v2,v3)\bold{u}=(u_1,u_2,u_3),\bold{v}=(v_1,v_2,v_3)u=(u1?,u2?,u3?),v=(v1?,v2?,v3?)
點積定義為:u?v=u1v1+u2v2+u3v3\bold{u} \cdot \bold{v}=u_1v_1+u_2v_2+u_3v_3u?v=u1?v1?+u2?v2?+u3?v3?
1.1.2 幾何意義
點積也可以寫成:u?v=∥u∥∥v∥cosθ\bold{u} \cdot \bold{v}=\| \bold{u} \|\| \bold{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.1.3 主要應用
- 判斷向量是否垂直(點積=0)
- 機器學習里:相似度度量(余弦相似度)
1.2 叉積(Cross Product)
1.2.1 定義(僅在三維空間有意義)
對于兩個三維向量u=(u1,u2,u3),v=(v1,v2,v3)\bold{u}=(u_1,u_2,u_3),\bold{v}=(v_1,v_2,v_3)u=(u1?,u2?,u3?),v=(v1?,v2?,v3?)
叉積定義為:
u×v=∣ijku1u2u3v1v2v3∣=(u2v3?u3v2,u3v1?u1v3,u1v2?u2v1)\bold{u} \times \bold{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=?iu1?v1??ju2?v2??ku3?v3???=(u2?v3??u3?v2?,u3?v1??u1?v3?,u1?v2??u2?v1?)
1.2.2 幾何意義
- 方向:u×v\bold{u} \times \bold{v}u×v垂直于u\bold{u}u和v\bold{v}v所在的平面(右手定則,四指并攏,拇指豎起,四指指向u\bold{u}u的方向,手掌旋轉,從u\bold{u}u旋轉到v\bold{v}v,拇指豎直指向叉積的方向。)
- 長度:∥u×v∥=∥u∥∥v∥sinθ\|\bold{u} \times \bold{v} \|=\| \bold{u}\| \|\bold{v} \| sin \theta∥u×v∥=∥u∥∥v∥sinθ,等于“以u,v\bold{u},\bold{v}u,v為邊的平行四邊形面積”。
直觀:叉積 = 給出“垂直方向 + 面積大小”的向量。
1.2.3 主要應用
- 計算面積:∣u×v∣=| \bold{u} \times \bold{v}|=∣u×v∣=平行四邊形面積
- 計算體積:∣u?(v×w)∣=| \bold{u} \cdot (\bold{v} \times \bold{w})|=∣u?(v×w)∣=平行六面體體積
1.3 向量減法
1.3.1 定義
給定兩個向量:
a=(a1,a2,??,an),b=(b1,b2,??,bn)\bold{a}=(a_1,a_2,\cdots,a_n),\bold{b}=(b_1,b_2,\cdots,b_n)a=(a1?,a2?,?,an?),b=(b1?,b2?,?,bn?)
它們的差定義為:
a?b=(a1?b1,a2?b2,??,an?bn)\bold{a}-\bold{b}=(a_1-b_1,a_2-b_2,\cdots,a_n-b_n)a?b=(a1??b1?,a2??b2?,?,an??bn?)
逐分量相減。
1.3.2 幾何意義
在平面/空間里,a?b\bold{a} ? \bold{b}a?b 表示從 點 b 指向點 a 的向量。
例子
在二維中:
a=(3,2),b=(1,4)\bold{a}=(3,2),\bold{b}=(1,4)a=(3,2),b=(1,4)
則:a?b=(3?1,2?4)=(2,?2)\bold{a}-\bold{b}=(3-1,2-4)=(2,-2)a?b=(3?1,2?4)=(2,?2)
幾何上,這就是從點 (1,4) 指向點 (3,2) 的向量。
1.4 向量加法
1.4.1 定義
1.4.2
2.矩陣
2.1 基礎內容
1.矩陣映射
A:Rp→RmA: \mathbb{R}^p \rightarrow \mathbb{R}^mA:Rp→Rm代表矩陣AAA是m×pm \times pm×p,它接受一個ppp維的向量,輸出一個mmm維的向量,也可表示為:A∈Rm×pA \in \mathbb{R}^{m \times p}A∈Rm×p
輸入所需向量數為矩陣列數,輸出向量數為矩陣行數。
2.各類表示
det(A):det(A):det(A):矩陣AAA的行列式(只有方陣,即接受的向量和輸出的向量數一致。)
rank(A):rank(A):rank(A):矩陣AAA的秩
2.1 矩陣行列式
2.1.1 從二維出發(面積)
考慮二維矩陣:A=[abcd]A = \left[ \begin{matrix} a & b \\ c & d \end{matrix} \right]A=[ac?bd?]
它把單位正方形的兩個基向量: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的行列式的絕對值。
在二維,行列式就是單位正方形被矩陣變換后的面積縮放因子。
2.1.2 三維情況(體積)
三維矩陣:A=[abcdefghi]A=\left[ \begin{matrix} a & b & c \\ d & e & f \\ g & h & i\end{matrix}\right]A=?adg?beh?cfi??
把單位立方體的三個基向量映射到新的三個向量: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?=?ibc?jef?khi??=(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?)∣為該平行六面體相對于三個基向量構成的基六面體變換的體積大小。
2.1.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=?adg?beh?cfi??det(A)=a(ei?fh)?b(di?fg)+c(dh?eg)B=?agd?bhe?cif??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=?adg?beh?cfi??det(A)=a(ei?fh)?b(di?fg)+c(dh?eg)B=?akdg?bkeh?ckfi??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
- 沒有“體積縮放”這個說法
- 所以行列式就沒有定義
2.2 線性相關與線性無關
2.2.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=0a1?v1?+a2?v2?+?+ak?vk?=0
那么這組向量就叫做 線性相關。
否則(只有當所有系數都等于 0 時,上式才成立),就叫做 線性無關。
2.2.2 幾何直觀
二維空間
- 如果兩個向量在同一條直線上(共線),它們線性相關。
- 如果不共線,就線性無關。
三維空間
- 三個向量如果在同一個平面里(共面),它們線性相關。
- 如果能撐起整個三維空間,就線性無關。
一句話:一個向量可以由其它向量“拼出來”(線性組合),那它們就是相關的。
2.2.3 代數上的判定
把向量作為矩陣的列:A=[v1v2?vk]A=\left[ \begin{matrix} v_1 & v_2 & \cdots & v_k \end{matrix} \right]A=[v1??v2????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+2d?beb+2e?cfc+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+2d?beb+2e?cfc+2f??→A=?ad0?be0?cf0??
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的幾何體積說明:
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,但三維體積卻不一定。因此有可以使用降維的方式獲取線性不相關的向量,在機器學習中,或者叫獲取線性不相關的特征。
2.2.4 線性相關和線性無關為什么重要?
- 線性無關的向量:可以當作“基底”,張成一個空間。
- 線性相關的向量:含有冗余信息,多余的那個能被其它的表示。
在機器學習/數據分析中:
- 如果特征(變量)線性相關,就會出現多重共線性問題 → 回歸系數不穩定。
- 在 PCA(主成分分析)中,我們尋找線性無關的方向來表示數據。
總結:
線性相關 = 存在冗余,一個向量能用其它的拼出來。
線性無關 = 沒冗余,它們是“獨立的方向”,能作為基底。
2.3 矩陣的秩
2.3.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?所有特征值非零。
2.3.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 能到達的所有方向。
2.3.3 秩的計算
最常用:行變換到行最簡形(RREF)
變換到行最簡形后就知道選出最大多少線性無關的行向量數,即秩的數量。
- 用初等行變換把 A 化為 RREF,數主元個數即為 rank(A)。
- 行變換不會改變秩。
小例子(行簡化):
A=[123231477]①R2←R2?2R1A=[1230?15477]②R3←R3?4R1A=[1230?150?15]R2←R2?2R1A=[1230?15000]A= \left[ \begin{matrix} 1 & 2 & 3 \\ 2 & 3 & 1 \\ 4 & 7 & 7 \end{matrix} \right] \\
①R2 \leftarrow R2 - 2R1 \quad A=\left[ \begin{matrix} 1 & 2 & 3 \\ 0 & -1 & 5 \\ 4 & 7 & 7 \end{matrix} \right] \\
②R3 \leftarrow R3 - 4R1 \quad A=\left[ \begin{matrix} 1 & 2 & 3 \\ 0 & -1 & 5 \\ 0 & -1 & 5 \end{matrix} \right] \\
R2 \leftarrow R2 - 2R1 \quad A=\left[ \begin{matrix} 1 & 2 & 3 \\ 0 & -1 & 5 \\ 0 & 0 & 0 \end{matrix} \right]A=?124?237?317??①R2←R2?2R1A=?104?2?17?357??②R3←R3?4R1A=?100?2?1?1?355??R2←R2?2R1A=?100?2?10?350??
∴rank(A)=2\therefore rank(A)=2∴rank(A)=2
2.3.4 常用不等式與不變性
1.rank(AB)≤min(rank(A),rank(B))rank(AB) \le min(rank(A),rank(B))rank(AB)≤min(rank(A),rank(B))
2.4 可逆與不可逆
2.4.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
2.4.2 代數意義
可逆矩陣:
線性方程組 Ax=bAx=bAx=b 有唯一解 xxx。
不可逆矩陣:
線性方程組 Ax=bAx=bAx=b 沒有解 或 有無窮多個解。
特別地,Ax=0Ax=0Ax=0 的唯一解不再是 x=0x=0x=0,還可能有非零解(這就是“非零解”的來源)。
為啥可逆矩陣有唯一解?不可逆矩陣沒有解或者無窮多個解?
1.假設AAA為可逆矩陣,A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n,x∈Rn×1x \in \mathbb{R}^{n \times 1}x∈Rn×1,AAA可以和xxx列出nnn個方程,方程的右邊等于bbb,nnn個方程解xxx的nnn個未知數,確定唯一解。
2.假設AAA為不可逆矩陣,A∈Rn×nA \in \mathbb{R}^{n \times n}A∈Rn×n,x∈Rn×1x \in \mathbb{R}^{n \times 1}x∈Rn×1,rank(A)<nrank(A)<nrank(A)<n。
在方程少于nnn個時,又分為兩種情況。
①bbb屬于AAA的列空間。
②bbb不屬于AAA的列空間。