數學基礎

純量、向量、矩陣、張量(scalar, vector, matrix, tensor)

/ SKAY-lur, VEK-tur, MAY-triks, TEN-sur /

這四個詞,不過是裝數字的容器層層往上疊的一架梯子,每一級都比上一級裝得更多。純量就是孤零零的一個數,比如溫度21。向量是一串有順序的數,比如把溫度、濕度、氣壓三項測量值排成 [21, 64, 1013]。矩陣是按行和列擺成的一格格數字,就像一張試算表。而張量則是個總稱——上面這些東西,再往任意多個維度擴展,都叫張量:一疊表格、一疊「一疊表格」,如此類推。

關鍵概念是維度,也就是你需要幾個下標才能鎖定其中一個數。純量需要零個(它就在那兒)。向量需要一個(給我第2項)。矩陣需要兩個(給我第3列、第5行)。更高階的張量則需要三個、四個或更多。舉個例子,一張彩色照片天然就是一個三維張量:高 × 寬 × 三個顏色通道(紅、綠、藍)。

機器學習為什麼離不開這些對象:資料幾乎總是成批成批地以數字形式到來,把它們裝進向量、矩陣和張量,電腦就能借助高速並行的硬體一口氣處理上百萬個數。流行的軟體庫 TensorFlow,名字正是由此而來。別被物理學家那套更嚴格、更花哨的「張量」含義唬住——在日常的機器學習裡,張量就是一個多維數字陣列,沒有比這更玄乎的東西。

一張28像素寬、28像素高的灰階照片,就是一個 28×28 = 784 個亮度數字組成的矩陣。把100張這樣的照片疊起來,就得到一個形狀為 100×28×28 的三維張量。再把它們變成彩色,就多出一個通道維度:100×28×28×3,一個四維張量——這正是圖像模型期望餵進來的形狀。

拾級而上:一個數、一串數、一格格數,再到「格中有格」——同樣是資料,只是軸更多了。

階(或稱秩)數的是軸的個數,不是元素的個數:一個有一千個數的向量,仍然是一階的。而且機器學習裡的張量只是個數字陣列——別把它和物理與微分幾何裡要求嚴苛得多的「張量」混為一談。

又稱
标量向量矩阵张量純量張量0D/1D/2D/nD array