在機器學習中我們經常提到向量,究竟什麼是向量呢?在本文中,我們將首先研究向量的定義,然後對其數學運算進行直觀的解釋。
定義向量
我們在X、Y數字網格上繪製一個點(1,2),其中X代表水平方向,Y代表垂直方向。
我們已經很好地定義了一個向量。實際上,我們不僅要考慮網格上的「點」,我們還需要考慮「線」。
在上面的例子中,我們從點(0,0)移動到點(1,2)。我們的向量就是表示這個運動的直線:
如果你仔細看,你會注意到我們的直線有兩個關鍵屬性:
大小:這是「長度」的同義詞。我們也可以將其視為「我們走了多遠」。方向:與點不同,線實際上是有方向的。現在我們可以對該概念進行正式定義。根據Miriam Webster,向量是:
「具有大小和方向的量,通常用有向線段表示,有向線段的長度表示大小,其空間方向表示方向。」
表示向量的一種常見方法是將X維度和Y維度堆疊在一起:
我們還可以通過超越二維來擴展我們對坐標系統的理解。
在可感知的現實世界中,我們具有三個維度。我們可以嘗試可視化3D向量。我們用原來的向量(1,2),然後加上第三維,我們叫它Z,設它的值為1。所得向量為(1,2,1):
一旦我們開始超越三維空間,人類的大腦就很難將其形象化。
雖然我們的感知空間解釋僅限於三維空間,但在數學上可以更進一步進行解釋。讓我們以iris機器學習數據集為例,這是一個在機器學習中常用的分類數據集:
在這裡,我們有四個「特徵」或預測因子-萼片長度,萼片寬度,花瓣長度,和花瓣寬度,我們可以用來預測我們的目標變量:花的類型(表示為0、1或2)。
上表中的每一行和每一列都可以解釋為向量。例如,我們可以這樣表示第一行:
從幾何學上講,我們可以將花的這個實例視為在四個不同方向上與原點相距5.1、3.5、1.4和0.2個單位的空間中的線。
向量運算
在本節中,我們將簡要介紹與向量相關的數學操作。
在此之前,我想和大家分享一下我的數學學習理念:除非你是一個嚴格的學者,否則數學的目的是幫助我們解決世界上的實際問題。
向量加法
數值上: 我們將兩個向量的每個維度相加。
例如: [1,2] + [1,-1] = [2,1]
幾何上:我們把一個向量的尾部放在另一個向量的頭部上,然後畫出從起點到終點的直線。
藍色向量[1,2]+紅色向量[1,1 -1]=綠色向量[2,1]。
向量減法
數值上:我們將兩個向量的每個維度相減。
例如: [1,2]-[1,-1] = [0,3]
幾何上:因為我們在做減法,我們可以把它看作是把第二個向量(紅色)的方向反過來,然後把它的尾部放在第一個向量(藍色)的頭部上,以得到我們的結果(綠色):
標量乘法
數值上:我們將向量的每個維度乘以標量值:[1,1] * 2 = [2,2]
幾何上:我們的向量[1,1]保持其方向,但每個維度以標量值的倍數而改變。
向量大小
數值上:要度量大小或長度,我們使用勾股定理:取向量中每個平方元素之和的平方根。
示例1: [1,2]的幅度= sqrt(1**2+2**2)= sqrt(5)= 2.23
示例2: [3,5,6]的幅度= sqrt(3**2+5**2+6**2)= sqrt(9 + 25 + 36)= sqrt(70)= 8.36
幾何上:這不需要可視化。它只是您看到的向量的長度。向量的大小通常用管道符號表示:|V|。
向量乘法(點積)
數值上:我們將兩個向量中每個維度的乘積相加。結果將始終是標量值。示例:
示例1: [1,2] · [2,3] = 1 * 2 + 2 * 3 = 8。
示例2: [1,2,3] · [2,3,4] = 1 * 2 + 2 * 3 + 3 * 4 = 20。
幾何上:這有點棘手。與其直接進行空間解釋,不如使用單個向量[0,1](下面的紅色)並找到它與多個其他向量的點積(下面的藍色):
注意下幾點:
當藍色向量的方向與紅色向量的方向相似時,點積更大。當藍色向量的大小較大時,點積也較大。當藍色向量垂直於紅色向量時,點積為0。根據這些觀察,我對點積的簡單解釋是:點積告訴我們兩條線在方向上的相似程度;點積由這兩個向量的大小決定。
現在,讓我們看一下X在二維中具有非零值的示例,以鞏固我們的理解:
為什麼藍色向量[1.5,2]與紅色向量的點積比藍色向量[2,1]大呢?因為它的大小更大,並且其方向與我們的紅色向量更相似。
為什麼藍色向量[1,-1]與紅色向量的點積是0呢 ?因為這兩個向量是正交的(彼此成直角)。它們指向不同的方向。
最後
到目前為止,我們已經將向量定義為一個有大小和方向的線空間。機器學習數據集中的每一行或每一列都可以用幾何形式表示為理論上無限維數中的一個向量。最後,我們學習了向量運算的數值和幾何解釋。