熱線電話:13121318867

登錄
首頁精彩閱讀機器學習中的線性代數
機器學習中的線性代數
2018-03-22
收藏

機器學習中的線性代數

線性代數作為數學中的一個重要的分支,廣發應用在科學與工程中。掌握好線性代數對于理解和從事機器學習算法相關的工作是很有必要的,尤其是對于深度學習而言。因此,在開始介紹深度學習之前,先集中探討一些必備的線性代數知識。

2.1 標量,向量,矩陣和張量

標量(scalar):一個標量就是一個單獨的數。用斜體表示標量,如s∈R

.

向量(vector):一個向量是一列數,我們用粗體的小寫名稱表示向量。比如x

,將向量x

寫成方括號包含的縱柱:

x=??????x1x2?xn??????


矩陣(matrix):矩陣是二維數組,我們通常賦予矩陣粗體大寫變量名稱,比如A。如果一個矩陣高度是m,寬度是n,那么說A∈Rm×n。一個矩陣可以表示如下:

A=[x11x21x12x22]


張量(tensor):某些情況下,我們會討論不止維坐標的數組。如果一組數組中的元素分布在若干維坐標的規則網絡中,就將其稱為張量。用A表示,如張量中坐標為(i,j,k)的元素記作Ai,j,k。

轉置(transpose):矩陣的轉置是以對角線為軸的鏡像,這條從左上角到右下角的對角線稱為主對角線(main diagonal)。將矩陣A

的轉置表示為A?

。定義如下:

(A?)i,j=Aj,i


A=???x11x21x31x12x22x32????A?=[x11x21x21x22x31x32]

2.2 矩陣和向量相乘

矩陣乘法是矩陣運算中最重要的操作之一。兩個矩陣A

和B的矩陣乘積(matrix product)是第三個矩陣C。矩陣乘法中A的列必須和B的行數相同。即如果矩陣A的形狀是m×n,矩陣B的形狀是n×p,那么矩陣C的形狀就是m×p

。即

C=A×B


具體的地,其中的乘法操作定義為

Ci,j=∑kAi,kBk,j


矩陣乘積服從分配律

A(B+C)=AB+AC


矩陣乘積也服從結合律

A(BC)=(AB)C


注意:矩陣乘積沒有交換律

點積(dot product)兩個相同維數的向量x

和y的點積可看作是矩陣乘積x?y

矩陣乘積的轉置

(AB)?=B?A?


利用向量的乘積是標量,標量的轉置是自身的事實,我們可以證明(10)式:

x?y=(x?y)?=y?x


線性方程組

Ax=b

2.3 單位矩陣和逆矩陣

線性代數中提供了矩陣逆(matrix inverse)的工具,使得我們能夠解析地求解(11)中的A

.

單位矩陣(identity matrix):任意向量與單位矩陣相乘都不會改變。我們將保持n

維向量不變地單位矩陣記作為In,形式上In∈Rn×n

,

?x∈Rn,Inx=x


矩陣A的矩陣逆被記作A?1,被定義為如下形式:

A?1A=AA?1=In


(11)式方程組的求解:

Ax=bA?1Ax=A?1bInx=A?1bx=A?1b

方程組的解取決于能否找到一個逆矩陣A?1。接下來討論逆矩陣A?1的存在的條件。

2.4 線性相關和生成子空間

如果逆矩陣A?1

存在,那么(11)式肯定對于每一個向量b恰好存在一個解。分析方程有多少個解,我們可以看成是A

的列向量的線性組合(linear combination)。

Ax=∑ixiA:,i


形式上,某個集合中向量的線性組合,是指每個向量乘以對應系數之后的和,即

∑iciv(i)


一組向量的生成空間(span)是原始向量線性組合后所能抵達的點的集合。

線性無關(linearly independent): 如果一組向量中的任意一個向量都不能表示成其他向量的線性組合,那么這組向量被稱之為線性無關。

要想使矩陣可逆,首先必須矩陣是一個方陣(square),即m=n

,其次,所有的列向量都是線性無關的。

一個列向量線性相關的方陣被稱為奇異的(singular)。

2.5 范數

有時候我們需要衡量一個向量的大小,在機器學習中,我們使用稱為范數(norm)的函數來衡量矩陣大小,形式上,Lp

范數如下:

||x||p=(∑i|xi|p)12


其中p∈R,p≥1。

范數是將向量映射到非負值的函數。直觀上來說,向量x

的范數就是衡量從原點到x

的舉例。更嚴格來說,范數滿足下列性質的函數:

  • f(x)=0?x=0


  • f(x+y)≤f(x)+f(y)

  • ?α∈R,f(αx)=|α|f(x)

    當p=2

    時,L2被稱作歐幾里得范數(Euclidean norm)。它表示從原點出發到向量x確定的點的歐幾里得距離。平方L2范數常被用來衡量向量的大小,因為它便于求導計算(如對向量中每個元素的導數只取決于對應的元素,但是它也有缺陷,即它在原點附近增長得十分緩慢),可以簡單用點積x?x

    來計算。

    max 范數(max norm):這個范數表示向量中具有最大幅度得元素的絕對值,用L∞

    范數表示,期形式為:

    ||x||∞=∑(i,j)A2i,j??????√

    兩個向量的點積(dot product)也可以用范數來表示。具體地,

    x?y=||x||2||y||2cosθ

    2.6 特殊類型的矩陣和向量

    對角矩陣(diagonal matrix)只在主對角線上含有非零元素,其它位置都是零。矩陣D

    是對角矩陣,當且僅當?i≠j,Di,j=0,用diag(v)表示一個對角元素由向量v

    中元素給定的對角矩陣。

    對稱(symmetric) 矩陣是任意轉置和自己相等的矩陣:

    A=A?

    即在矩陣A中,有Ai,j=Aj,i。

    單位向量(unit vector)是具有單位范數(unit norm)的向量:

    ||x||2=1

    如果x?y=0,那么向量x和向量y互相正交(orthogonal)。如果兩個向量都有非零范數,那么表示這兩個向量之間的夾角是90 度。在Rn中,至多有n個范數非零向量互相正交。如果這些向量不僅互相正交,并且范數都為1,那么我們稱它們是標準正交(orthonormal)。

    正交矩陣(orthonormal matrix)是指行向量是標準正交的,列向量是標準正交的方陣:

    A?A=AA?=I

    這意味著
    A?1=A?

    所以正交矩陣受到關注是因為求逆計算代價小。需要注意正交矩陣的定義。反直覺地,正交矩陣的行向量不僅是正交的,還是標準正交的。對于行向量或列向量互相正交但不是標準正交的矩陣沒有對應的專有術語。

    2.7 特征分解

    許多數學對象可以通過將它們分解成多個組成部分,或者找到它們的一些屬性而被更好地理解,這些屬性是通用的,而不是由我們選擇表示它們的方式引起的。就像我們可以通過分解質因數來發現一些關于整數的真實性質,我們也可以通過分解矩陣來獲取一些矩陣表示成數組元素時不明顯的函數性質。

    特征分解(eigendecomposition)是使用最廣的矩陣分解之一,即我們將矩陣分解成一組特征向量和特征值。

    方陣A

    特征向量(eigenvector)是指與A相乘后相當于對該向量進行縮放的非零向量v

    Av=λv

    標量λ被稱為這個特征向量對應的特征值(eigenvalue)。

    如果v

    是A的特征向量,那么任何放縮后的向量sv(s∈R,s≠0)也是A

    特征向量并且其與\bf v 有相同的特征值。所以我們通常只考慮單位特征向量。

    假設矩陣A

    有n個線性無關的特征向量{v(1),v(2),...,v(n)},對應著的特征值{λ1,λ2,...,λn}

    ,我們將特征向量連成一個矩陣,使得每一列是一個特征向量:

    V=[v(1),v(2),...,v(n)]

    類似地,特征值連成一個向量:
    λ=[λ1,λ2,...,λn]?

    因此\bf A 的特征分解(eigendecomposition)可以記作:
    A=Vdiag(λ)V?1

    上面我們構建具體特定的特征值和特征向量,能夠使我們在目標方向上延伸空間。我們也常常希望將矩陣分解(decompose)成特征值和特征向量。這樣可以幫助我們分析矩陣的特定性質,就像質因數分解有助于我們理解整數。

    不是每一個矩陣都可以分解成特征值和特征向量,在某些情況下,特征分解會涉及到復數,而非實數。在本書的機器學習學習中,我們只討論一類簡單分解的矩陣。具體就是,每個實對稱矩陣都可以分解為實特征向量和實特征值:

    A=QΛQ?

    其中Q是A的特征向量組成的正交矩陣,Λ是對角矩陣。特征值Λi,i對應的特征向量是矩陣Q的第i列,記作Q:,i。因為Q是正交矩陣,所以可以將A看作是沿方向v(i)延展λi倍的空間。如下圖所示:

    <a href='/map/tezheng/' style='color:#000;font-size:inherit;'>特征</a>值與<a href='/map/tezheng/' style='color:#000;font-size:inherit;'>特征</a>向量

    2.8 跡運算

    跡運算返回的是矩陣對角元素的和:

    Tr(A)=∑iAi,i

    跡運算因為很多原因而受到關注。若不使用求和符號,有些矩陣運算很難描述,而通過矩陣乘法和跡運算符號,可以進行清楚地表示。例如,跡運算提供了另一種描述矩陣Frobenius 范數的方式:
    ||A||F=Tr(AA?)????????√

    用跡運算表示式,使我們可以用很多有用的性質來操縱表示式。例如跡運算在轉置下是不變的:
    Tr(A)=Tr(A?)

    多個矩陣乘積的跡還滿足鏈式規律,即:
    Tr(ABC)=Tr(BCA)=Tr(CAB)

    標量的跡是它本身:a=Tr(a)。

    2.9 行列式

    行列式,記作det(A)

    ,是一個將方陣A

    映射到實數的函數。行列式等于矩陣特征值的乘積。行列式的絕對值可以被認為是衡量矩陣相乘后空間擴大或者縮小了多少。如果行列式是0, 那么空間至少沿著某一維完全收縮了,使其失去了所有的體積。如果行列式是1, 那么矩陣相乘沒有改變空間體積。

    總結

    以上是在機器學習過程中必須了解和掌握的有關線性代數的知識


    數據分析咨詢請掃描二維碼

    若不方便掃碼,搜微信號:CDAshujufenxi

    數據分析師資訊
    更多

    OK
    客服在線
    立即咨詢
    日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
    客服在線
    立即咨詢