機器學習中的數據表示
數據概念
標量、向量、矩陣、張量
這幾個概念是機器學習中數據表示的基礎,簡單的科普下。
標量 Scalar
標量是最基本、最簡單的量,只有大小,沒有方向。
例如:一個人的年齡25歲、房間的溫度30度、物體的質量15KG,在機器學習中,誤差值、學習率等指標都是一個標量。
標量的數學表示為:\(x \in \mathbb{R}\),其中 R 是包含所有實數標量的空間。
向量 Vector
向量是一個有順序的數字(標量)列表,用來表示一個事物的多個特征。
向量既有大小,也有方向。向量在物理中,經常用來描述 速度和方向的疊加,如果僅描述一個人的行進速度,那么就是標量。但如果需要描述這個人的行進特征,那就要考慮他的速度和方向。
如下圖所示,一個人爬山的速度,由水平方向的速度和垂直方向的速度組成。

那么假設水平方向移動的速度是 [0, 3], 垂直方向易懂的速度是 [4, 0], 那么這個速度向量就是 [4, 3],其中的標量 4和3 就代表了在水平和垂直方向上的分量。
不難看出,向量在數學上的表示就是一維數組,在機器學習中可以用來表示數據點的一組特征。數組中每個元素代表了在每個方向上的分量(特征值),例如一個房子的價格是 300萬,這個房子的特征可以包括 房齡(10年)、面積(100平方)、樓層(16F)等,它的特征向量可以表示為 [10, 100, 16]。
向量的數學表示為\(x \in \mathbb{R}^n\),其中 R 是包含所有實數標量的空間,n 代表了向量的維度(或者長度)。
矩陣 Matrix
矩陣可以看做是向量的維度延伸,在前面的例子中,我們用向量描述了一個房子的多個特征。那么如何描述100個房子的這些特征呢,答案應該很容易想到,通過將多個向量組合成一個二維數組,每一行代表一個房子的向量,如下:
矩陣的數學表示為\(x \in \mathbb{R}^{m*n}\),其中m和n分別代表行和列。將其展開為二維數組的形式,如下:
張量 Tensor
張量可以看做是矩陣向更高維度的擴展,可以有三個或以上的維度。實際上在機器學習中,數據都是以張量為單位進行稱呼的,可以這么認為:
標量是0維張量
向量是1維張量
矩陣是2維張量
...
其中,一個三維張量可以表示為 \(x \in \mathbb{R}^{i*j*k}\), 其中i、j、k分別是三個維度上的特征數量。
為了更形象一些,我們可以從幾何的角度做如下的類比:

很多人會覺得,數學到了矩陣這里已經開始變得很復雜了,為什么還需要張量呢?原因就在于我們的世界元素構成是非常復雜的,為了更好的表示和處理這些不同維度的特征數據,我們不得不用高維的手段來描述它們,例如:
-
彩色圖像:不僅有高和寬,還有顏色通道(RGB) → 三維
-
視頻:圖像幀序列 + 時間維度 → 四維
-
自然語言處理:詞嵌入 + 句子結構 + 批量輸入 → 三維或四維
-
神經網絡權重:每層的連接結構可能是四維甚至更高維
而實際上,張量已經是深度學習框架(如 PyTorch、TensorFlow)中的核心數據結構,并用于支持高效的數據處理和多種維度運算。
小試牛刀
接下來,我們嘗試在代碼中實現這幾個數據結構,我們所用的代碼會用到 numpy 組件,numpy 是python機器學習的基礎組件,提供了對各類數據操作的封裝。
示例代碼:
import numpy as np
# 向量
x1 = np.arange(3)
print("向量\n", x1)
# 矩陣
x11 = np.arange(6).reshape(2, 3)
print("矩陣\n", x11)
# 三維張量
x111 = np.arange(24).reshape(2, 3, 4)
print("三維張量\n", x111)
arrange(x) 表示生成一個x長度的數組序列,按數字逐個遞增排列
reshape是一個重組函數,用于將數組重新組合為新的維度結構
執行這段程序,可以分別看到向量、矩陣、三維張量的表示。
向量
[0 1 2]
矩陣
[[0 1 2]
[3 4 5]]
三維張量
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
小結
正如向量/矩陣是線性代數的基礎一樣,在AI領域,張量是深度學習的"語言基礎",大名鼎鼎的 Tensorflow 也因此命名。張量統一了不同類型的數據表示(標量、向量、矩陣、高維數組),在數學和物理領域廣泛用于描述復雜結構。
作者: 美碼師(zale)
出處: http://www.rzrgm.cn/littleatp/, 如果喜歡我的文章,請關注我的公眾號
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出 原文鏈接 如有問題, 可留言咨詢.
浙公網安備 33010602011771號