# Linear Algebra for Machine Learning and Data Science(Week3: Vector algebra)
###### tags: `coursera` `Linear Algebra` `math`
[week3](https://www.coursera.org/learn/machine-learning-linear-algebra/home/week/3)
## Machine Learning Motivation
[課程連結](https://www.coursera.org/learn/machine-learning-linear-algebra/lecture/tIhzi/machine-learning-motivation)
本週的課程前導,會談到向量、矩陣的很多操作方式
### Neural Networks - AI generated images

ai可以用來生成照片,上圖看到的照片都是gan生成的。
### Text-to-image and image-to-text generation

生成模型也可以用文字做為輸入來生成照片。不管是生成照片還是文字生成照片,裡面的核心都是矩陣的操作。
## Vectors and their properties
[課程連結](https://www.coursera.org/learn/machine-learning-linear-algebra/lecture/5aEoU/vectors-and-their-properties)
課程說明向量及其相關屬性
### Vectors

向量很簡單,就是幾個數字組成,沒有限定是幾個數值,兩個也行,三個也行。向量中的座標值就是其所在的空間維度。上圖左為例,向量在空間的(4, 3)這座標上,就是一個從原點到箭頭處理呈現。上圖右的範例說明著向量是可以存在於三維空間或是更高維度空間中。
### How to get from point A to point B?

向量的屬性(幅度、大小、方向)可以有很多量測方式,跟我們學過的數學脫不了太多關係。你可以用Taxicab Distance,就是水平距離加上垂直距離,即$3+4=7$。不管你怎麼走,只要是水平、垂直這樣移動,最終的距離就會是7。
### How to get from point A to point B?

又或者你搭著直昇機就直接飛過去了,這也行,根據畢氏定理得到的距離就會是5。
### Norms

為什麼我們會需要這些距離計算呢?因為這給了我們一個找到向量大小的方法,以座標a、b為例:
1. 一開始的計程車在街道的走法就是L1-norm,一般寫為$\vert (a, b) \vert_1 = \vert a \vert + \vert b \vert$
2. 直昇機計算的則是L2-norm,一般寫為$\vert (a,b) \vert_2 = \sqrt{a^2 + b^2}$
### Norm of a vector

一般情況下,我們在說norm指的就是L2-norm,理由當然就是它可以更自然的去表述方向。上圖為例,在$(4, 3)$這個位置的向量如果以L2-norm的話是不是就一條線直直的指過去了。
### Direction of a vector

向量的方向也可以從座標推導出來,承上例,我們可以看到向量跟座標之間有個夾角,假設為$\theta$,那它的$\tan(\theta)=\dfrac{3}{4}$,這意謂著$\theta = \arctan(3/4)=0.64=36.87^{\circ}$。有角度你就大概可以知道它的方向了。
## Sum and difference of vectors
[課程連結](https://www.coursera.org/learn/machine-learning-linear-algebra/lecture/wAhh9/sum-and-difference-of-vectors)
課程說明向量的操作
### Sum of vectors

上圖我們看的到有兩個向量,其座標分別為(4,1)與(1,3),如果我們要相加的話只要元素對元素的相加即可。
兩個向量相加之後可以得到新的向量,即為(5, 4)。以幾何解釋的話,兩個向量相加剛好就會是對角線,這對角線會讓兩個向量可以形成一個平行四邊行。
### Difference of vectors

相減的話是一樣的作法,把對應索引的元素相減即可,可以得到(3, -2)。這看起來沒有什麼,不過如果你把得到的向量往上拉的話好像就有這麼一點特別。
## Distance between vectors
[課程連結](https://www.coursera.org/learn/machine-learning-linear-algebra/lecture/39OCb/distance-between-vectors)
### Distances

兩個向量相減其中一個意義在於可以說明彼此之間的距離:
* L1-norm:元素相減取絕對值相加,也就是8
* L2-norm:元素平方之後相加開根號,也就是5.83
* cosine-distance:取兩個向量之間的餘弦,這在機器學習中是很常用來做為向量之間距離計算的方式,$\cos(\theta)$
## Multiplying a vector by a scalar
[課程連結](https://www.coursera.org/learn/machine-learning-linear-algebra/lecture/3xHHt/multiplying-a-vector-by-a-scalar)
### Multiplying a vector by a scalar

向量也可以乘上某一個scalar,上圖為例,向量(1, 2)乘上3得到(3, 6)的向量,在圖上來看的話就是延伸了(1, 2)。
### If the scalar if negative

如果scalar是負數的話也不用擔心,只是延伸的方向從右上轉左下,其它不變。
## The dot product
[課程連結](https://www.coursera.org/learn/machine-learning-linear-algebra/lecture/Aa2ZU/the-dot-product)
### A shortcut for linear operations

平常如果我們要計算買水果總共多少錢,就是一個對一個的計算,最後加總得到28元。
### The dot product

如果以向量計算的話就可以做到批次計算,我們把買的水果數量轉置,從一個column變成一個row,然後跟單價的部份做一次的點積計算。
### Norm of a vector using dot product

回頭看我們計算L2-norm的範例,基本上我們計算的就是向量本身自己跟自己的點積。上圖可以看的到$\langle u, u \rangle$,這是點積的符號表示。
## Geometric Dot Product
[課程連結](https://www.coursera.org/learn/machine-learning-linear-algebra/lecture/3Ew3M/geometric-dot-product)
課程說明兩個向量之間的夾角與點積之間的關係
### Orthogonal vectors have dot product 0

我們可以看的到上面的兩個向量是垂直的,也就是正交(orthgonal),當兩個向量是正交的時候也意謂著兩個向量之間的點積結果會是0。
### The dot product

向量本身的點積就剛好會是範數(L2)平方,或者說是向量長度的平方。兩個向量如果是正交的,那它們之間的點積就會是0。
### The dot product

我們知道,向量本身的點積就是範數的平方,也就是$\langle u, u \rangle = \vert u \vert ^2 = \vert u \vert \cdot \vert u \vert$。如果是相同方向的兩個向量,一個長、一個短,那就只是兩個向量的範數的點積。如果是兩個向量之間有個夾角的那種呢?
如果是兩個向量之間有夾角的那種情況,那就只需要把一個向量垂直的投影到另一個向量上,上圖我們可以看到是把向量$u$投影到$v$的,以$u'$來表示,接下來就只需要計算$u', v$的範數的點積。有趣的話,不管你是把$u$投影到$v$還是把$v$投影到$u$得到的結果都會是一樣的。
另一個處理方式就是,假設兩個向量之間的夾角為$\theta$,那$u, v$的點積就會是$u$的大小乘上$v$的大小再乘上這個cosine夾角。
### Geometric dot product

我們從上圖來看,跟向量(6,2)形成夾角的其它三個向量分別做點積,正交的不意外得到的就是0,另外兩個一正一負,這是為什麼?因為向量(2, 4)投影到(6, 2)是一個順向的投影,而(-4, 1)則是一個投影到(6, 2)反方向的投影。其實這也可以用來做為判斷夾角狀況用,點積得到正得到的就是銳角,點積得到負就是一個鈍角。
### Geometric dot product

所以我們可以這樣看,垂直於目標向量$u$的點積(綠粗線上)通通都會是0,在這線的右部(黃區)得到的點積都會是正值,左部(灰區)得到的就通通都會是負值。
## Multiplying a matrix by a vector
[課程連結](https://www.coursera.org/learn/machine-learning-linear-algebra/lecture/a0YpR/multiplying-a-matrix-by-a-vector)
課程說明矩陣與向量之間的相乘
### Equations as dot product
拿課程提過的範例來說明,$2a + 4b + c=28$,這可以用點積來表示。其中$2,4,1$表示買的數量,而$a,b,c$則是我們所不知道的水果的價格,$28$則為總金額
### Equations as dot product

上圖給出更多的表述範例。不過這樣來看有點雜就是了,我們需要一個更簡潔的表述方式。
### Equations as dot product

首先我們轉換一個方向來看。
### Equations as dot product

然後堆疊起來瘦身。這樣看起來整個表示就優雅多了。