手把手教你將矩陣&概率畫成圖

機器之心發表於2019-03-29

要是將每個矩陣和概率都看成對應的「圖」會怎麼樣?本文作者帶我們體驗了這個簡單而有趣的視覺化過程。

選自math3ma,作者:Algebra,機器之心編譯,參與:高璇、張倩。

今天我想分享一個簡單的 idea,它既不新穎也不花哨。甚至很多人都有過這個想法。但是無論你有沒有這麼想過,我都希望你能抽出幾分鐘和我一起重新感受這個想法。

這個想法是這樣的:

手把手教你將矩陣&概率畫成圖

想法非常簡單,但非常實用。

首先嚴謹地概括這個想法:每個矩陣對應一個加權二分圖。所謂「圖」是指頂點(點)和線的集合;「二分」是指點有兩種不同的型別/顏色;;「加權」是指每條線都有一個數字標記。

上圖對應一個 3×23×2 矩陣 M。右側我畫了三個綠點,分別對應矩陣 M 的三行,兩個粉點分別對應矩陣 M 的兩列。如果對應矩陣 M 中的值非零,就在綠點和粉點間畫一條線連線。

手把手教你將矩陣&概率畫成圖例如,在第二個綠點和第一個粉點間存在一條線,因為 M_21=4,即矩陣 M 第二行第一列的值不為 0。此外,我用非零數字標記了這條線。而第一個綠點和第二個粉點之間沒有線連線,因為矩陣的第一行第二列值為零。

更明確的描述如下:

任何矩陣 M 都是 n×m 個數的陣列。當然這是常識。但是這樣的陣列也可以看作函式 M:X×Y→R,其中 X = {x_1,...,x_n},是一組 n 個元素組成的集合;Y = {y_1,...,y_m},是一組 m 個元素組成的集合。實際上,如果要描述矩陣 M,那麼需要描述第 ij 項的值。換句話說,對於每對 (i,j),都需要給出一個實數 M_ij。這就是函式的功能啊!函式 M:X×Y→R 關聯每對 (x_i,y_j)(如果你願意,可以去掉字母並將其看作 (i,j)),即實數 M(x_i,y_j)。所以可以將 M(x_i,y_j) 簡寫為 M_ij。

看,矩陣就是一種函式。

手把手教你將矩陣&概率畫成圖

如前所述,我們進一步認為 X 的元素是綠點,而 Y 的元素是粉點。然後矩陣 M 以下圖方式與加權二分圖相對應:圖的頂點有由 X 和 Y 提供的兩種不同顏色,並且每個 x_i 和 y_j 之間存在連線,連線由數字 M_ij 標記。但是如果數值為零,那就省略這條邊。

每個矩陣對應一個圖。

當我們以這種方式視覺化矩陣時,神奇的事就發生了。例如...

矩陣乘法即為沿連線向前運算。

給定兩個矩陣(圖)M:X×Y→R 和 N:Y×Z→R,我們可以通過將它們的圖拼在一起並沿著連線進行乘法運算:MN 的第 ij 項的輸入,即連線 x_i 到 z_j 的線的值,是通過將沿 x_i 到 z_j 的各個邊相乘並加和得到的。例如:

手把手教你將矩陣&概率畫成圖

對稱矩陣對應對稱圖。

如果一個矩陣等於它的轉置,即為對稱矩陣。這種對稱性常通過矩陣對角線對映得到。但現在可以從圖中觀察到對稱性。尤其對於任何矩陣 M 來說,下圖直觀地解釋了,為什麼 MM^⊤和 M^⊤M 始終對稱!

手把手教你將矩陣&概率畫成圖

若矩陣所有項都非零,則對應完全二分圖。

如果一個矩陣的所有元素都不為零,那麼它對應的圖就沒有缺失的連線。這意味著 X 中的每個點都與 Y 的每個點相連。這樣的二分圖稱為完全二分圖。

手把手教你將矩陣&概率畫成圖

N 分塊矩陣對應獨立的 N 個圖。

具體來說,由直和得到的分塊矩陣對應斷開的圖。將兩個矩陣做直和運算得到更大的陣列(與向量直和運算類似),即一個帶有全零塊的大型分塊矩陣。分塊矩陣的圖通過將原矩陣的圖疊加得到。

手把手教你將矩陣&概率畫成圖

關於矩陣和圖我們能展開更多的討論,但我想通過一個不同的角度來探討。事實證明,概率非常適合我們矩陣-圖的討論。這是通過另一個有趣的小事實來實現的:‍

手把手教你將矩陣&概率畫成圖

例如:

手把手教你將矩陣&概率畫成圖

這樣的概率分佈圖可以讓我們更好地分析。

聯合概率

通過架構圖中的連線,可以得到聯合概率:(x_i,y_j) 的概率是連線 x,y 兩點的線的標籤。

手把手教你將矩陣&概率畫成圖

邊緣概率

邊緣概率是通過沿矩陣的行/列求和得到的(與上圖等效)。例如,x_1 的概率 p(x_1)=p(x_1,y_1)+p(x_1,y_2)=1/8+0,這是第一行的總和。同樣,y_2 的概率是 p(y_2)=p(x_1,y_2)+p(x_2,y_2)+p(x_3,y_2)=0+1/8+1/4,是第二列的和。

圖中,x_i 的邊緣概率是以 x_i 為頂點的所有連線的和。類似地,y_j 的邊緣概率是以 y_j 為頂點的所有連線的和。

手把手教你將矩陣&概率畫成圖

條件概率

條件概率是由聯合概率除以邊緣概率得到的。例如在 y_2 條件下 x_3 的概率 p(x_3|y_2)=p(x_3,y_2)/p(y_2)。從圖中可以看出,這是通過將 x_3 和 y_2 的連線除以所有與 y_2 相連的線之和得到的。同樣,y_i 下 x_j 的條件概率是兩點連線的值除以所有與 x_j 相連的線之和。

手把手教你將矩陣&概率畫成圖

這很簡單,對吧?

這裡邊的原理並不複雜,只是有時用新角度看舊想法是很有用的。

關係矩陣

本文的最後是另一個簡單而有趣的事實,即:矩陣運算在交換環(communicative ring)上是有意義的。不僅僅是像 R 或 C 等。矩陣相乘甚至不需要負數:矩陣運算在交換半環上是有意義的!(半環是一個沒有相反數的環。)

我認為這很好,因為包含兩個元素 Z_2 = {0,1} 的集合通過下圖的加法和乘法形成一個半環:

手把手教你將矩陣&概率畫成圖

為什麼會這麼好?因為一個矩陣 M:X×Y→Z_2 相當於一個「關係」。「關係」是笛卡爾積 X×Y 的子集 R 的名稱。換句話說,每個 Z_2-valued 矩陣定義了一個「關係」,每個關係又定義了一個 Z_2-valued 矩陣:當且僅當 (x_i,y_j) 是 R 子集的元素時,M_ij=1,否則 M_ij=0。

手把手教你將矩陣&概率畫成圖

Z_2 中的矩陣圖與上面討論的圖完全相同,只是現在所有連線的值都是 0 或 1。如果權重是 0,那和之前一樣,我們就不畫這條連線了。

(順便說一句,你現在可以問,「既然每個「關係」對應於 Z_2 中的矩陣,那與「等價關係」相對應的矩陣是什麼樣的?」我離題了....)

通過將基礎(半)環從 R 改為 Z_2,我們改變了解釋權重的方式。例如,在上面的概率場景中,我們可以問,「從 x_1 到 y_1 的概率是多少?」答案由對應邊的權重而來,在本例中為 12.5%。或者,當矩陣在 Z_2 中取值時,問題變為:「是否可能從 x_1 到 y_1?」如果連線標記為 1,則為「是」,如果標記為 0 則為「否」。(這個想法已經被多次解釋了)。

重要的是,「關係」的組合恰好是使用了上面的 Z_2 演算法的矩陣乘法。換句話說,給定任意兩個關係 R⊂X×Y 和 S⊂Y×Z,存在一個新關係 SR⊂X×Z,包括所有 (x,z),至少存在一個 y∈Y,其中 (x,y)∈R,(y,z)∈S。這種新關係正是表示 R 和 S 的矩陣乘積所指定的。

手把手教你將矩陣&概率畫成圖

這個關於矩陣/關係的小事實絕對是我最喜歡的數學事實之一。一個原因是因為有限集的範疇,「關係」很像有限向量空間和線性對映的範疇。實際上,它更像是有限維希爾伯特空間的範疇。這意味著許多看似不相干的想法突然變得密切。這些聯絡可以更加精準,這是一個在範疇理論界經常被分享的故事。手把手教你將矩陣&概率畫成圖



相關文章