在學習的過程中,不管是上代碼還是理論學習,其中都摻雜了一些數學知識。俗話說“磨刀不誤砍柴工”,而我已經“誤了砍柴功”了,現在變成了“亡羊補牢,為時不晚”。
線性代數
線性代數是數學的一個分支,主要研究向量、向量空間(線性空間)、線性變換和矩陣等概念及其相互關系。
標量 scalar
標量就是一個數字,只有大小,沒有方向。標量通常用小寫字母來表示。
例如,萊恩大招釋放時,只對地方單位造成固定傷害。
向量vector
當一組標量排成一行或者一列時就變成了向量,這些標量值被稱為向量的元素。向量中的元素在一個軸上是有序排列的,這個軸可以是行也可以是列。向量通常用粗體小寫字母來表示,元素通過帶角標的斜體字母來表示。
比如風行者的強力擊造成的傷害是用向量 s表示,第一個元素 s 1 s_{1} s1?是穿過第一個敵方單位時的傷害量,第二個元素 s 2 s_{2} s2?是穿過第二個敵方單位時的傷害量,以此類推。如果強力擊對 n n n個單位造成了傷害,就可以寫成 s = [ s 1 , s 2 , . . . , s n ] s=[s_{1},s_{2},...,s_{n}] s=[s1?,s2?,...,sn?],或者寫成列的形式,markdown實在沒找到標準寫法就不寫了。
向量有兩個主要特征:大小和方向。你知道,強力后擊中的單位所受到的傷害,總是比前一個單位所受到的傷害少。這就是強力擊的特點。而美杜莎的秘術異蛇恰恰相反。所以通過標量和向量,你可以簡單的表示dota中英雄的技能傷害特點。
向量與空間: 我們通常會將向量看作空間中的點或者從空間原點指向該點的箭頭,而一組向量可以生成一個向量空間。向量空間中的每一個點都可以表示為這組向量的線性組合。這種方式就可以將抽象的概念以具體的幾何圖形來展示。
向量維度
如果你有兩個向量,它組成一個面,而這兩個向量的夾角有恰巧是90°,那么這就是平面直角坐標系;如果是3個向量,每一個向量與另外兩個向量形成的面相互垂直,那就形成了“笛卡爾直角坐標系”,如果不垂直,就形成了笛卡爾斜角坐標系。在坐標系中的點,都可以用不同向量的大小組合來表示。因此向量大于3個的時候,你沒法用圖像來想象,但是你可以用不同向量的大小組合來定義。
反過來想,你把坐標系中的一個點(向量a),映射到其他n個向量組成的坐標系中,那這個n就是向量a在這個坐標系中的維度。
向量模長 magnitude
模長表示向量在空間中的長度或者大小,主要用于物理和幾何領域。n維向量的模長公式為 ∣ a ∣ = a 1 2 + a 2 2 + . . . + a n 2 |a|=\sqrt[]{a_{1}^2+a^2_{2}+...+a^2_{n}} ∣a∣=a12?+a22?+...+an2??
范數 norm
與模長類似的一個術語,概念相同,但咱們機器學習主要用的就是范數。它與模長的公式不同
∣ x ∣ p = ( ∑ i ∣ x i ∣ p ) 1 p |x|_{p}=(\sum_{i}|x_{i}|^p)^\frac{1}{p} ∣x∣p?=(i∑?∣xi?∣p)p1?
- p=1 時,稱之為L1范數,又叫曼哈頓范數。求的就是在網格化城市中,從1個點到另一個點的最短距離。
- p=2時,稱之為L2范數,又稱之為歐幾里得范數,它與模長的計算公式相同。
- L2范數將歐幾里得距離的概念推廣到高維空間,適用于任意維度的向量空間。
歐幾里得幾何是以古希臘數學家歐幾里得命名的幾何學體系,主要研究平面和空間中的點、線、角、面等幾何對象及其相互關系。
單位向量
當向量的模長等于1時,這樣的向量就稱為單位向量。因為單位向量的大小總是1,所以可以認為它表示的是向量在空間中的方向。對于二維向量 a = ( a 1 , a 2 ) a=(a_{1},a_{2}) a=(a1?,a2?),其模長為 ∣ a ∣ = a 1 2 + a 2 2 |a| =\sqrt[]{a_{1}^2+a^2_{2}} ∣a∣=a12?+a22??。其單位向量應該是向量除以模長,單位向量則為 ( a 1 , a 2 ) a 1 2 + a 2 2 \frac{(a_{1},a_{2})}{\sqrt[]{a_{1}^2+a^2_{2}}} a12?+a22??(a1?,a2?)?
向量內積
又叫向量點積、向量點乘。
代數定義
是兩個向量對應位置的元素相乘再相加。例如,有一張購物小票,有一列是購買商品的單價向量 a = ( a 1 , a 2 , . . . , a n ) a=(a_{1},a_{2},...,a_{n}) a=(a1?,a2?,...,an?),有一列是購買商品的數量向量 b = ( b 1 , b 2 , . . . , b n ) b=(b_{1},b_{2},...,b_{n}) b=(b1?,b2?,...,bn?),那么你這張小票的購物總金額就是a和b的內積。總價 c = ∑ i = 1 n a i ? b i c=\sum_{i=1}^n a_{i} \cdot b_{i} c=∑i=1n?ai??bi?。這是代數定義。
幾何定義
向量a和向量b的點積,就是向量a在向量b方向的“有效貢獻”(投影長度)乘以b向量的模長。
它的公式為 a ? b = ∣ a ∣ cos ? ( θ ) ∣ b ∣ a \cdot b =|a| \cos(\theta) |b| a?b=∣a∣cos(θ)∣b∣,寫好看一點就是
a ? b = ∣ a ∣ ? ∣ b ∣ cos ? ( θ ) a \cdot b =|a|\cdot |b| \cos(\theta) a?b=∣a∣?∣b∣cos(θ)
內積還可以表示兩個向量的線性相關度。將兩個向量歸一化得到單位向量,也就是|a|=|b|=1,內積就表示他們夾角的余弦值,即 cos ? ( θ ) = a ? b \cos(\theta)=a \cdot b cos(θ)=a?b
這里著重研究了一下為什么它的幾何意義是向量a在向量b方向的“有效貢獻”(投影長度)乘以b向量的模長?
向量外積
又叫向量叉積、叉乘。
c = a × b c=a \times b c=a×b
其結果不像內積的運算結果是一個標量,向量外積的訓練結果是也給向量。
向量外積大小=大小等于兩個向量所構成的平行四邊形面積值。
∣ c ∣ = ∣ a ∣ ∣ b ∣ sin ? ( θ ) |c|=|a| |b|\sin(\theta) ∣c∣=∣a∣∣b∣sin(θ)
向量方向滿足右手螺旋定則,從第一個向量向第二個向量,按照劣弧方向環握右手,拇指方向就是向量的方向。