01
前言
機器學習是一門多領域交叉學科,涉及機率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。本文主要介紹一下機器學習涉及到的一些最常用的的數學知識,友善大家在學習機器學習的時候,能掃除一些基礎障礙。
02
标量、向量
标量(scalar)
标量是一個單獨的數,一般用普通小寫字母或希臘字母表示,如
等。
向量(vector)相關
向量的定義,把數排成一列就是向量,比如:
向量一般用粗體小寫字母或粗體希臘字母表示,如
等(有時候也會用箭頭來辨別,如
),其元素記作
。
向量預設為列向量,行向量需要用列向量的轉置表示,例如
等。
- 實體專業視角:向量是空間中的箭頭,決定一個向量的是它的長度和方向
- 計算機專業視角:向量是有序的數字清單
- 數學專業視角:向量可以是任何東西,隻要保證兩個向量相加以及數字與向量相乘是有意義的即可
運算規則
向量的加法和數量乘法定義:
加法 相同維數的向量之間的加法為:
數量乘法 任意的常數
和向量的乘法為:
在給定數
及向量
的情況下
張成空間
張成空間是向量
和
全部線性組合構成的向量集合,即:
(
在實數範圍内變動)
向量空間的基
向量空間中的一組基是張成該空間的一個線性無關向量的集合。
隻有當以下兩個條件同時滿足時,一組向量
才能成為基底。
- (目前空間中的)任意向量
都可以表示成
的形式(
為任意數)
- 并且這種表示方法是唯一的
向量空間的維數
空間的維數可以通過基向量的個數來定義
維數 = 基向量的個數 = 坐标的分量數
線性無關
當且僅當
時
成立,則
是線性無關的。
換種表達方式,線性無關是說:其中任意一個向量都不在其他向量張成空間中,也就是對所有的
和
,
均不成立。
線性變換
線性的兩個條件:直線依舊是直線 和 原點保持固定.線性的嚴格定義:
線性變換保持網格線平行且等距分布,并且保持原點不動。
線性變換由它對空間的基向量的作用完全決定,在二維空間中,基向量就是
和
,這是因為其他任意向量都成表示為基向量的線性組合,坐标為(x,y)的向量就是x乘以
加上y乘以
,線上性變換之後,網格線保持平行且等距分布這一性質有個絕妙的推論,向量(x,y)變換之後的結果,将是x乘以變換後的
的坐标加上y乘以變換後的
的坐标。
向量的點積
點乘,也叫向量的内積、數量積。顧名思義,求下來的結果是一個數。兩個次元相同的向量,點積定義如下:
- 點積和順序無關
- 兩個向量互相垂直時,點積為0
- 兩個向量方向相同時,點積為正;相反時,點積為負
向量的叉積
叉乘,也叫向量的外積、向量積。顧名思義,求下來的結果是一個向量。
- 向量的叉積不滿足交換律
對偶向量
給定一個向量,如果存在這樣一個映射,它把給定的向量映射為一個實數,就說這個映射是對偶向量。例如一個n維行向量(a1,a2...an),它既可以了解為行向量,也可了解為某種映射,該映射把給定的n維列向量(b1,b2...bn)(矢量)映射為實數k,k=a1b1+a2b2+...anbn,即矩陣的乘積。則這個映射滿足對偶向量的定義,是以行向量(a1,a2...an)是對偶(b1,b2...bn)的對偶向量。
03
矩陣(matrix)相關
矩陣是一個二維數組,其中的每一個元素由兩個索引(而非一個)所确定,一般用粗體的大寫字母表示,比如:
矩陣
中的第
行第
列的值,稱為
的
元素;當矩陣行數和列數相同時,稱為方陣。
矩陣就是映射,或者說是向量運動的描述。
将
維向量
乘以
矩陣
,能得到
維向量
。也就是說,指定了矩陣
,就确定了從向量到另外一個向量的映射。
兩個矩陣相乘的幾何意義就是兩個線性變換相繼作用。
矩陣運算
加法:
隻要兩個矩陣的形狀一樣,就可以把兩個矩陣相加。兩個矩陣相加是指對應位置的元素相加,比如
,其中
。
乘法:
兩個矩陣
和
的矩陣乘積是第三個矩陣
。為了使乘法可被定義,矩陣A的列數必須和矩陣B的行數相等。如果矩陣
的形狀是
,矩陣
的形狀是
,那麼矩陣
的形狀是
。例如
具體地,該乘法操作定義為:
矩陣乘積服從配置設定律:
矩陣乘積也服從結合律:
矩陣乘積不滿足交換律:
的情況并非總是滿足
矩陣乘積的轉置有着簡單的形式:
矩陣的秩
矩陣的秩,為變換後的空間的維數
核與值域
核:所有經過變換矩陣後變成了零向量的向量組成的集合,通常用Ker(A)來表示。
值域:某個空間中所有向量經過變換矩陣後形成的向量的集合,通常用R(A)來表示。
維數定理
對于
矩陣
,有
其中
表示X的次元。
列空間
矩陣
的列空間為所有可能的輸出向量
構成的集合,換句話說,列空間就是矩陣所有的列所張成的空間。
是以更精确的秩的定義是列空間的維數;當秩達到最大值時,意味着秩和列數相等,也即滿秩。
零向量
變換後落在原點的向量的集合被稱為矩陣的‘零空間’或者‘核’。
- 零向量一定在列空間中
- 對于一個滿秩變換來說,唯一能在變換後落在原點的就是零向量自身
- 對于一個非滿秩的矩陣來說,它将空間壓縮到一個更低的次元上,變換後的已給向量落在零向量上,而“零空間”正是這些向量所構成的空間
行列式
線性變換的行列式即線性變換改變面積的比例。
- 檢驗一個矩陣的行列式是否為0,就能了解這個矩陣所代表的變換是否将空間壓縮到更小的次元上
- 在三維空間下,行列式可以簡單看作這個平行六面體的體積,行列式為0則意味着整個空間被壓縮為零體積的東西,也就是一個平面或者一條直線,或者更極端情況下的一個點
- 行列式的值可以為負,代表空間定向發生了改變(翻轉);但是行列式的絕對值依然表示區域面積的縮放比例
奇異矩陣
行列式為零的矩陣
特征值和特征向量
特征分解
如果說一個向量
是方陣
的特征向量,将一定可以表示成下面的形式:
為特征向量
對應的特征值。特征值分解是将一個矩陣分解為如下形式:
其中,
是這個矩陣
的特征向量組成的矩陣,
是一個對角矩陣,每一個對角線元素就是一個特征值,裡面的特征值是由大到小排列的,這些特征值所對應的特征向量就是描述這個矩陣變化方向(從主要的變化到次要的變化排列)。也就是說矩陣A的資訊可以由其特征值和特征向量表示。
對于矩陣為高維的情況下,那麼這個矩陣就是高維空間下的一個線性變換。可以想象,這個變換也同樣有很多的變換方向,我們通過特征值分解得到的前N個特征向量,那麼就對應了這個矩陣最主要的N個變化方向。我們利用這前N個變化方向,就可以近似這個矩陣(變換)。
總結一下,特征值分解可以得到特征值與特征向量,特征值表示的是這個特征到底有多重要,而特征向量表示這個特征是什麼。不過,特征值分解也有很多的局限,比如說變換的矩陣必須是方陣。
奇異值分解
特征值分解是一個提取矩陣特征很不錯的方法,但是它隻是對方陣而言的,在現實的世界中,我們看到的大部分矩陣都不是方陣,比如說有N個學生,每個學生有M科成績,這樣形成的一個N * M的矩陣就不可能是方陣,我們怎樣才能描述這樣普通的矩陣呢的重要特征呢?奇異值分解可以用來幹這個事情,奇異值分解是一個能适用于任意的矩陣的一種分解的方法:
分解形式:
假設A是一個M * N的矩陣,那麼得到的U是一個M * M的方陣(稱為左奇異向量),Σ是一個M * N的矩陣(除了對角線的元素都是0,對角線上的元素稱為奇異值),VT(V的轉置)是一個N * N的矩陣(稱為右奇異向量)。
LU分解
給定矩陣A,将A表示成下三角矩陣L和上三角矩陣U的乘積,稱為LU分解。
轉置矩陣
對于矩陣A,将其行列互換得到的矩陣,稱為A的轉置矩陣,記為
。
矩陣的轉置是以對角線為軸的鏡像,這條從左上到右下的對角線被稱為主對角線(main diagonal)。
機關矩陣
方陣中,如果除了對角線(從左上到右下)上的元素為1,其餘元素都為0,則該矩陣稱為機關矩陣,記為
。
表示
階機關矩陣。
機關矩陣表示的映射是“什麼都不做”的映射。
逆矩陣
A逆乘以A等于一個‘什麼都不做’的矩陣。
- 一旦找到A逆,就可以在兩步同乘A的逆矩陣來求解向量方程
- 行列式不為零,則矩陣的逆存在
零矩陣
所有元素都為0的矩陣稱為零矩陣,記為
。
零矩陣表示的映射是将所有的點都映射到原點的映射。
對角矩陣
在方陣中,對角線(從左上到右下)上的值稱為對角元素。
非對角元素全部為0的矩陣稱為對角矩陣。
對角矩陣表示的映射是沿着坐标軸伸縮,其中對角元素就是各坐标軸伸縮的倍率。
04
張量(tensor)
在某些情況下,我們會讨論坐标超過兩維的數組。一般的,一個數組中的元素分布在若幹維坐标的規則網絡中,我們稱之為張量。
一階張量可以用向量表示,二階張量可以用矩陣表示。