機器學習基本知識:維度 (Dimension) 的兩種意義
前言
在學習線性代數或是深度學習的數學運算時,經常需要對高維度的向量、矩陣進行運算。我們都知道純量 (Scalar) 屬於 0 維、向量 (Vector) 屬於 1 維、矩陣 (Matrix) 屬於 2 維度,超過 3 維就統稱為張量 (Tensor)。(當然 Scalar、Vector 與 Matrix 也都可以視為 Tensor)
然而,如果有一個 Vector 包含 5 個數字,例如:[1, 2, 3, 4, 5],我們又會稱這一個 Vector 是一個 5 維的向量。
Vector 究竟是 1 維還是 N 維呢?讓我們繼續看下去!
純量 (Scalar)、向量 (Vector)、矩陣 (Matrix) 與張量 (Tensor)
首先,我們需要先釐清純量 (Scalar)、向量 (Vector)、矩陣 (Matrix) 與張量 (Tensor)的觀念。
如上圖所示,Scalar 通常就是指一個數字 (Single Value),它的 shape 中沒有任何元素,也就是沒有任何「軸」(Axes),也可以稱其為 Rank-0 的 Tensor。Vector 指的是一個序列的數字 (List of Values),它的 shape 中有一個元素,也就是其具有一個軸,也可以稱其為 Rank-1 的 Tensor。Matrix 則是由兩個軸的元素所組成,因此 shape 中有兩個元素,也可以稱其為 Rank-2 的 Tensor。
當軸數來到 3 個以上時,我們就通稱為 Tensor,此時的 shape 中有 3 個元素,也可以稱其為 Rank-3 的 Tensor。
維度 (Dimension):「軸」的個數 or 「向量中元素」的個數
由此可知,當我們說 Scalar 是 0-Dimension、Vector 是 1-Dimension、Matrix 是 2-Dimension 時,這裡的 Dimension 指的是「軸」的數量。
然而,如果我們只聚焦在 Vector 上,當我們在描述 Vector 的 Dimension 時,其實是在描述他所處的「向量空間」(Vector Space)。舉例來說:
- [1, 2, 3] 處在 3-Dimension Vector Space
- [-1, -5, 4, 5, 8] 處在 5-Dimension Vector Space
- [0, 0, 0, 0, 0, 0, 0] 處在 7-Dimension Vector Space
由此可知,Dimension 有兩種意義:
- Vector 中的元素數量 (代表這一個 Vector 所處的 Vector Space)
- Tensor 的軸數 (代表這一個 Tensor 的 Rank)
結語
在本篇文章,我們簡單介紹純量 (Scalar)、向量 (Vector)、矩陣 (Matrix) 與張量 (Tensor) 的概念,並說明維度 (Dimension) 的兩種意義。
參考
- matrices – why do people say “x dimensional vector” when vectors have only one dimension? – Mathematics Stack Exchange
- Introduction to Tensors | TensorFlow Core
- 核心開發者親授!PyTorch深度學習攻略
👣 👣 👣 我喜歡撰寫程式開發、資料科學領域相關的文章,希望可以透過簡單的文字解釋複雜的觀念!如果你也有興趣可以到我的其他平台逛逛哦!
👉🏻 DataSci Ocean
👉🏻 YouTube
👉🏻 Instagram
👉🏻 Potato Media