機器學習

機器學習

線性代數

標量(scalar):一個標量就是一個單獨的數。介紹時會明確是那種類型,例如:s ∈ R,n ∈ N算法

向量(vector):一個向量是一列數,這些數是有序排列的,經過索引能夠肯定每一個單獨的數。例如:向量x的第一個元素是x1。數組

會註明存儲在向量中的元素是什麼類型的。例如:若是元素都屬於R,而且該向量有n個元素,那麼向量屬於實數集R的n次笛卡爾乘積構成的集合。記做Rn網絡

當須要明確表示向量中的元素時,將元素排列成一個方括號包圍的縱列數據結構

能夠把向量看作空間中的點,每一個元素是不一樣座標軸上的座標。有時咱們須要索引向量中的一些元素。這種狀況下,咱們定義一個包含這些元素索引的集合,而後將集合寫在腳標處。好比指定x一、x3。定義集合S={1,3},而後寫做xs。用符號表示集合的補集中的索引。好比x_1表示x中除x1外的全部元素,x_s表示x中除x一、x3外全部元素構成的向量。框架

實數:有理數和無理數的總稱。有理數:整數(正負整數和0)和分數的統稱。無理數:無線不循環小數,小數點後面有多個,且不會循環機器學習

笛卡爾乘積:兩個集合X和Y的全排列。例如:X=a,b Y = 1,2 笛卡爾乘積爲(a,1)(a,2)(b,1)(b,2)ide

矩陣(matrix):是一個二維數組,其中的每個元素由兩個索引所肯定。一般會賦予矩陣粗體的大寫變量名稱。好比:A函數

若是一個實數矩陣高度爲m,寬度爲n,那麼說A∈Rm*n工具

在表示矩陣中的元素時,一般以不加粗的斜體形式使用其名稱,索引用逗號間隔。好比:A1,1表示A左上的元素,Am,n表示A右下的元素。經過 : 先後表示水平座標或垂直座標。好比,Ai,:表示A中垂直座標i上的一橫排元素,A:,i表示A的第i列。性能

當須要明確表示矩陣中的元素時,將他們寫在用方括號包括起來的數組中

有時須要矩陣值表達式的索引,而不是單個元素。咱們在表達式後面接下標,但沒必要將矩陣的變量名稱小寫化。好比f(A)i,j表示函數f做用在A輸出上的矩陣的第i行第j列元素。

張量(tensor):某些狀況下,咱們會討論座標超過兩維的數組。一個數組中的元素分佈在若干維座標的規則網絡中,稱之爲張量。使用A來表示,張量A中座標爲(i,j,k)記做Ai,j,k

轉置(transpose):矩陣的重要操做之一,矩陣的轉置是以對角線爲軸的鏡像,這條左上角到右下角的對角線被稱爲主對角線(main diagonal)。將矩陣A的轉置表示爲AT,定義以下

向量能夠看做只有一列的矩陣,向量的轉置能夠看做只有一行的矩陣。經過將向量元素做爲行矩陣寫在文本行中,而後使用轉置操做將其變爲標準的列向量。好比:x=[x1,x2,x3]T

標量能夠看做只有一個元素的矩陣,所以標量的轉置等於它自己,a = aT

只要矩陣的形狀同樣,能夠把兩個矩陣相加。兩個矩陣相加是指對應位置的元素相加,好比C=A+B,其中Ci,j = Ai,j + Bi,j

標量和矩陣相乘,或者是和矩陣相加,咱們只須要將其與矩陣的每一個元素相乘或相加。好比D=a*B+c,其中Di,j = a*Bi,j+c

深度學習中,也使用一些不那麼常規的符號。容許矩陣和向量相加,產生另外一個矩陣:C = A + B,其中Ci,j = Ai,j + bj。換言之,向量b和矩陣A的每一行相加。這個簡寫方法使咱們無須在加法操做前定義一個將向量b複製到每一行而生成的矩陣。這種隱式地複製向量b到不少位置的方式,稱爲廣播(broadcasting)

矩陣乘法是矩陣運算中最重要的操做之一。兩個矩陣A和B的矩陣乘積是第三個矩陣C

矩陣乘積(matrix product):矩陣A的列數必須和矩陣B的行數相等。若是A的形狀是m*n,B的形狀是n*p,那麼矩陣C的形狀是m*p。能夠經過並列放置以書寫矩陣乘積

C = AB

該乘法操做定義爲

∑ 西格瑪,總和符號。例如∑Pi 其中i=1,2, 那麼就是求P1+P2的總和。∑下面的數字表示從幾開始求和,上面的數字表示求和到幾截止。

舉例:

須要注意的是,兩個矩陣的標準乘積不是指兩個矩陣中對應元素的乘積。

對應元素的乘積稱爲元素對應乘積(element-wise product)或者Hadamard乘積(Hadamard product)記,爲A⊙B

兩個維數相同的向量x和y的點積(dot product),能夠看作矩陣乘積xTy。能夠把矩陣乘積C=AB中計算Ci,j的步驟看做A的第i行和B的第j列之間的點積。

點積:接受在實數R上的兩個向量並返回一個實數值標量二元運算

兩個向量a = [a1, a2,…, an]和b = [b1, b2,…, bn]的點積定義爲:
a·b=a1b1+a2b2+……+anbn。
使用 矩陣乘法並把(縱列)向量看成n×1  矩陣,點積還能夠寫爲:
a·b=a T*b,這裏的a T指示 矩陣a的 轉置

矩陣乘積運算有許多有用的性質,好比服從分配律

A(B+C)=AB+AC

服從結合律

A(BC) = (AB) C

不一樣於標量乘積,矩陣乘積並不知足交換律(AB!=BA)

而後兩個向量的點積知足交換律 xTy = yTx

矩陣乘積的轉置有着簡單的形式

(AB)T = BTAT

利用兩個向量點擊的結果是標量、標量轉置是自身的事實,咱們能夠證實

如今有了足夠多的線性代數符號,能夠表達下列線性方程組

Ax = b

其中A∈Rm*n是一個已知矩陣,b∈Rm是一個已知向量,x∈Rn是一個要求解的未知向量。向量x的每個元素xi都是未知的。矩陣A的每一行和b中對應的元素構成一個約束。

能夠把Ax=b重寫爲A1,1x1+A1,2x2=b1

矩陣逆(matrix inversion):對於大多數矩陣A,能經過矩陣逆解析地求解式。爲了描述矩陣逆,首先須要定義單位矩陣的概念。

單位矩陣(identity matrix):任意向量和單位矩陣相乘,都不會改變。將保持n維向量不變的單位矩陣記做In

單位矩陣的結構很簡單:全部沿主對角線的元素都是1,而其餘位置的全部元素都是0,

矩陣A的矩陣逆記做A-1,其定義的矩陣知足以下條件:

這取決於咱們可否找到一個逆矩陣A-1,當逆矩陣存在時,有幾種不一樣的算法都能找到它的閉解形式。

理論上相同的逆矩陣能夠用於屢次求解不一樣向量b的方程,然而逆矩陣主要做爲理論工具使用,並不會在大多數軟件應用程序中使用。由於逆矩陣在數字計算機上只能表現出有限的精度,有效使用向量b的算法一般能夠獲得更精確的x。

線性相關和生成子空間

若是逆矩陣存在,那麼確定對每個向量b剛好存在一個解。可是對方程組而言,對於向量b的某些值,有可能不存在解,或者存在無限多個解。存在多於一個解,可是少於無限多個解的狀況是不可能發生的,由於若是x和y都是某方程組的解

則上方表達式也是該方程組的解。

爲了分析方程有多少解,能夠將A的列向量看作從原點(origin)出發的不一樣方向,肯定有多少種方程能夠達到b。這個觀點下,向量x中的每一個元素表示咱們應該沿着這些方向走多遠,即xi表示咱們須要沿第i向量的方向走多遠

通常而言,這種操做稱爲線性組合(linear combination),形式上一組向量的線性組合是指每一個向量乘以對應標量係數以後的和,即

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

肯定Ax=b是否有解,至關於肯定向量b是否在A列向量的生成子空間中。這個特殊的生成子空間被稱爲A的列空間(column space)或者A的值域(range)

爲了使方程Ax=b對於任意向量b∈Rm都存在解,咱們要求A列空間構成整個Rm。若是Rm中的某個點不在A的列空間中,那麼該點對應的b會使得該方程沒有解。矩陣A的列空間是整個Rm的要求,意味着A至少有m列,即n>=m。不然A列空間的維數會小於m。

例如假設A是一個3*2的矩陣。目標b是3維的,可是x只有2維。因此不管如何修改x的值,也只能描繪出R3空間中的二維平面。當且僅當向量b在該二維平面中時,該方程有解。

不等式n>=m僅是方程對每一點都有解的必要條件。這不是一個充分條件,由於有些列向量多是冗餘的。假設有一個R2*2中的矩陣,它的兩個列向量是相同的。那麼它的列空間和它的一個列向量做爲矩陣的列空間是同樣的。雖然該矩陣有2列,可是它的列空間仍然只是一條線,不能覆蓋整個R2空間

這種冗餘稱爲線性相關(linear dependence)。若是一組向量中任意一個向量都不能表示成其餘向量的線性組合,那麼這組向量稱爲線性無關(linearly independent)。若是某個向量是一組向量中某些向量的線性組合,那麼咱們將這個向量加入這組向量後不會增長這組向量的生成子空間。若是一個矩陣的列空間涵蓋整個Rm,那麼該矩陣必須包含至少一組m個線性無關的向量。對於每個向量b的取值都有解的充分必要條件。值得注意的是,這個條件是說該向量集剛好有m個線性無關的列向量,而不是至少m個。不存在一個m維向量的集合具備多於m個彼此線性不相關的列向量,可是一個有多於m個列向量的矩陣有可能擁有不止一個大小爲m的線性無關向量集。

要想使矩陣可逆,還須要保證對於每個b值至多有一個解。爲此須要確保該矩陣至多有m個列向量。

意味着該矩陣必須是一個方陣(square),即m=n,而且全部列向量都是線性無關的。一個列向量線性相關的方陣被稱爲奇異的(singular)

若是矩陣A不是一個方陣或者是一個奇異的方陣,該方程仍然可能有解。可是咱們不能使用矩陣逆去求解。

範數

有時咱們須要衡量一個向量的大小。在機器學習中,常用稱爲範數(norm)的函數來衡量向量大小。

形式上 L範數定義以下

其中p∈R,p>=1

範數是將向量映射到非負值的函數。直觀上來講,向量x的範數衡量從原點到點x的距離。

範數是知足下列性質的任意函數:

f(x) = 0 => x = 0

f(x+y) <= f(x) + f(y) (三角不等式(triangle inequality)

當p=2時,L2範數稱爲歐幾里得範數(Euclildean norm)。表示從原點出發到向量x肯定的點的歐幾里得距離。L2範數在機器學習中出現的十分頻繁,常常簡化表示爲||x||,略去了下標2。平方L2範數也常常用來衡量向量的大小,能夠簡單地經過點積xTx計算。

平方L2範數在數學和計算上都比L2範數自己更方便。平方L2範數對x中每一個元素的導數只取決於對應的元素,而L2範數對每一個元素的導數和整個向量相關。可是在不少狀況下,平方L2範數也不受歡迎,由於它在原點附近增加十分緩慢。在某些機器學習應用中區分剛好是零的元素和非零但值很小的元素是很重要的。這些狀況下,轉而使用在各個位置斜率相同,同時保持簡單的數學形式的函數L1範數

L1範數能夠簡化以下

當機器學習問題中零和非零元素之間的差別很是重要時,一般會使用L1範數。每當x中某個元素從0增長∈,對應的L1範數也會增長∈

有時候咱們會統計向量中非零元素的個數來衡量向量的大小。向量的非零元素的數目不是範數,由於對向量縮放a倍不會改變該向量非零元素的數目。所以L1範數常常做爲非零元素數目的替代函數。

另一個常常在機器學習中出現的範數是L∞範數,也稱爲最大範數(max norm)。這個範數表示向量中具備最大幅值的元素的絕對值

有時候我麼可能也但願衡量矩陣的大小。在深度學習中,最多見的作法是使用Frobenius範數,即

其相似於向量L2的範數。

兩個向量的點積可使用範數來表示,具體以下

特殊類型的矩陣和向量

對角矩陣(diagonal matrix),只在主對角線上函數非零元素,其餘位置都是零。

形式上,矩陣D是對角矩陣,當且僅當對於全部的 i != j,Di,j = 0。

單位矩陣就是對角矩陣之一,其對角元素所有是1.使用diag(v)表示對角元素由向量v中元素給定的一個對角方陣。對角矩陣收到關注的部分緣由是對角矩陣的乘法計算很高效。計算乘法diag(v)x,咱們只須要將x中的每一個元素xi放大vi倍。換言之,diag(u)x = u ⊙ x。計算對角方陣的逆矩陣也很高效。對角方陣的逆矩陣存在,當且僅當對角元素都是非零值,這種狀況下

不少狀況下,能夠根據任意矩陣導出一些通用的機器學習算法,但經過一些矩陣限制對角矩陣,咱們能夠獲得計算代價較低的算法。

並不是全部的對角矩陣都是方陣,長方形的矩陣也有多是對角矩陣。非方陣的對角矩陣沒有逆矩陣,但咱們仍然能夠高效的計算它們的乘法。對於一個長方形對角矩陣D而言,乘法Dx會涉及x中每一個元素的縮放,若是D是瘦長矩陣,那麼在縮放後的末尾添加一些零。若是D是胖寬型矩陣,那麼在縮放後去掉最後一些元素。

對稱(symmetric)矩陣是轉置和本身相等的矩陣。A = AT

當某些不依賴參數順序的雙參數函數生成元素時,對稱矩陣常常會出現。例如,若是A是一個距離度量矩陣,Ai,j表示點i到點j的距離,那麼Ai,j = Aj,i,由於距離函數是對稱的。

單位向量(unit vector)是具備單位範數(unit norm)的向量,即 ||x||2 = 1 

若是x T y = 0,那麼向量x和向量y互相正交(orthogonal)。若是兩個向量都有非零範數,那麼這兩個向量之間的夾角是90度。在Rn中,至多有n個範數非零向量互相正交。若是這些向量不但互相正交,並且範數都爲1,那麼咱們稱它們是標準正交(orthonormal)

正交矩陣(orthogonal matrix)指行向量和列向量是分別標準正交的方陣,即

ATA = AAT = I

這意味着

A-1 = A T

正交矩陣受到關注是由於求逆計算代價小。咱們須要注意正交矩陣的定義。違反直覺的是,正交矩陣的行向量不只是正交的,仍是標準正交的。對於行向量或列向量互相正交但不是標準正交的矩陣,沒有對應的專有術語。

特徵分解

許多數學對象能夠經過將它們分解成多個組成部分或者找到它們的一些屬性來更好地理解。

例如:整數能夠分解爲質因數,能夠用十進制或者二進制表示整數12。

能夠經過分解質因數來發現整數的一些內在性質,也能夠經過分解矩陣來發現矩陣表示成數組元素時不明顯的函數性質。

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

方陣A的特徵向量(eigenvector)是指與A相乘後至關於該向量進行縮放的非零向量v:

其中標量λ稱爲這個特徵向量對應的特徵值(eigenvalue)。也能夠定義左特徵向量(left eigenvector)

但一般更關注右特徵向量(right eigenvector)

若是v是A的特徵向量,那麼任何縮放後的向量su(s ∈ R,s != 0) 也是A的特徵向量。所以,s v 和v相同的特徵值。

假設矩陣A有n個線性無關的特徵向量,對應着特徵值

咱們將特徵向量鏈接成一個矩陣,使得每一列是一個特徵向量:

能夠將特徵值鏈接成一個向量

所以A的特徵分解(eigendecomposition)能夠記做

將矩陣分解(decompose)成特徵值和特徵向量,能夠幫助分析矩陣的特定性質,就像質因數分解有助咱們理解整數。

每一個實對稱矩陣均可以分解成實特徵向量和實特徵值

其中Q是A的特徵向量組成的正交矩陣,^是對角矩陣。特徵值^i,i 對應的特徵向量是矩陣Q的第i列,記做Q:,i。由於Q是正交矩陣,咱們能夠將A看作沿反向v(i)延展λi倍的空間

任意一個實對稱矩陣A都有特徵分解,可是特徵分解可能並不惟一。若是兩個或多個特徵向量擁有相同的特徵值,那麼有這些特徵向量產生的生成子空間中,任意一組正交向量都是該特徵值對應的特徵向量。

所以能夠等價地從這些特徵向量中構成Q做爲替代。

矩陣是奇異的,僅當含有零特徵值。實對稱矩陣的特徵分解也能夠用於優化二次方程f(x) = x T Ax,其中限制||x||2 = 1。當x等於A的某個特徵向量時,f將返回對應的特徵值。函數f的最大值就是最大特徵值,最小值是最小特徵值。

全部特徵值都是整數的矩陣稱爲正定(positive definite)。都是非負數的矩陣稱爲半正定(positive semidefinite),都是負數的矩陣稱爲負定(negative definite),都是非正數的矩陣稱爲半負定(negative semidefinite)

奇異值分解

將矩陣分解成特徵向量和特徵值還有另外一種分解矩陣的方法,稱爲奇異值分解(singular value decomposition,SVD),將矩陣分解爲奇異向量奇異值。經過奇異值分解,咱們會獲得一些與特徵分解相同類型的信息。

然而奇異值分解有更普遍的應用,每一個實數矩陣都有一個奇異值分解,但不必定都有特徵分解。非方陣的矩陣沒有特徵分解,這時只能使用奇異值分解。

奇異值分解能夠將矩陣A分解成三個矩陣的乘積

假設A是一個m*n的矩陣,那麼U是一個m*m的矩陣,D是一個m*n的矩陣,V是一個n*n矩陣

這些矩陣中的每個經定義後都擁有特殊的結構。矩陣U和V都定義爲正交矩陣,而矩陣D定義爲對角矩陣。注意矩陣D不必定是方陣。

對角矩陣D對角線上的元素稱爲矩陣A的奇異值。矩陣U的列向量稱爲左奇異向量,矩陣V的列向量稱爲右奇異向量

能夠用於A相關的特徵分解去解釋A的奇異值分解。

A的左奇異向量是AAT的特徵向量。

A的右奇異向量是ATA的特徵向量。

A的非零奇異值是ATA特徵值的平方根,同時也是AAT特徵值的平方根。

Moore-Penrose僞逆

矩陣A的僞逆定義爲

計算僞逆的實際算法沒有基於這個定義,而是使用下面的公式

其中矩陣U、D和V是矩陣A奇異值分解後獲得的矩陣。對角矩陣D的僞逆D+是其非零元素取倒數以後再轉置獲得的。

當矩陣A的列數多餘行數時,使用僞逆求解線性方程是衆多可能解法中的一種。x = A+y是方程全部可行解中歐幾里得範數||x||2最小的一個。

當矩陣A的行數多餘列數時,可能沒有解。在這種狀況下,經過僞逆獲得的x使得Ax和y的歐幾里得距離||Ax-y||2最小。

跡運算

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

跡運算由於不少緣由而有用。若不使用求和符號,有些矩陣運算很難描述,而經過矩陣乘法和跡運算符號能夠清楚地表示。例如,跡運算提供了另外一種描述矩陣Frobenius範數的方式

用跡運算表示表達式,可使用不少有用的等式巧妙地處理表達式。跡運算在轉置運算下是不變的。

多個矩陣相乘獲得的方陣的跡,和將這些矩陣中的最後一個挪到最前面以後相乘的跡是相同的。固然須要考慮挪動以後矩陣乘積依然定義良好

或者更通常地

即便循環置換後矩陣乘積獲得的矩陣形狀變了,跡運算的結果依然不變。假設矩陣A∈Rm*n,矩陣B∈Rn*m,能夠獲得

儘管AB∈Rm*m和BA∈Rn*n

機率與信息論

機率用於表示不肯定性聲明的數學框架,不只提供了量化不肯定性的方法,也提供了用於導出新的不肯定性聲明的公理。

在人工智能領域,機率論主要有兩種用途:機率法則告訴AI系統如何推理,據此咱們設計一些算法來計算或者估算由機率論導出的表達式;能夠用機率和統計從理論上分析咱們提出的AI系統的行爲

爲何要使用機率

由於機器學習一般必須處理不肯定量,有時也可能須要處理隨機(非肯定性)量。

幾乎全部活動都須要一些不肯定性存在的狀況下進行推理的能力。

不肯定性有3種可能的來源:

1. 被建模系統內在的隨機性 。例如:量子力學的解釋,都將亞原子粒子的動力學描述爲機率的。

2. 不徹底觀測。即便是肯定的系統,當咱們不能觀測到全部驅動系統行爲的變量時該系統也會呈現隨機性。

3. 不徹底建模。當咱們使用一些必須捨棄某些觀測信息的模型時,捨棄的信息會將致使模型的預測出現不肯定性。

儘管咱們須要一種用以對不肯定性進行表示和推理的方法,可是機率論並不能明顯提供咱們在人工智能領域須要的全部工具。

當咱們說一個結果發生的機率爲p,這意味着若是咱們反覆實驗無限次,有p的比例可能會致使這樣的結果。好比不停地抽撲克牌。

這種推理並不當即適用於不可重複的命題,若是一個醫生診斷了病人,並說病人患病概率爲40%,這意味着很是不一樣的事情。在這個例子中,咱們用機率來表示一種信任度,其中1表示很是確定,0表示確定沒有。

前面那種機率直接與事件發生的頻率相聯繫,被稱爲頻率派機率,然後者涉及肯定性水平,被稱爲葉貝斯機率

關於不肯定性的常識推理,若是咱們已經列出若干條指望它具備的性質,那麼知足這些性質的惟一一種方法就是將貝葉斯機率和頻率派機率視爲等同的。

機率能夠被看作用於處理了不肯定性的邏輯擴展。邏輯提供了一套形式化的規則,能夠在給定某些命題是真或假的假設下,判斷另一些命題是真的仍是假的。機率論提供了一套形式化的規則,能夠在給定一些命題的似而後,計算其餘命題爲真的似然

隨機變量

隨機變量是能夠隨機地取不一樣值的變量。一般用無格式字體中的小寫字母來表示隨機變量自己

用手寫體中的小寫字母來表示隨機變量可以取到的值。必須伴隨着一個機率分佈來指定每一個狀態的可能性。

隨機變量能夠是離散的或者連續的。離散隨機變量擁有有限或者可能無限多的狀態。

這些狀態不必定非要是整數,也可能只是一些被命名的狀態而沒有數值。連續隨機變量伴隨着實數值。

機率分佈

機率分佈用來描述隨機變量或一簇隨機變量在再每一個可能取到的狀態的可能性大小。

咱們描述機率分佈的方式取決於隨機變量是離散的仍是連續的。

離散型變量機率分佈能夠用機率質量函數(PMF) 來描述。一般用大寫字母P來表示機率質量函數。

機率質量函數將隨機變量可以去取得的每一個狀態映射到隨機變量取得該狀態的機率。x=x的機率用P(x)來表示,機率爲1表示x=x是肯定的,機率爲0表示x=x是不可能發生的。

機率質量函數能夠同時做用與多個隨機變量,多個變量的機率分佈被稱爲聯合機率分佈,可簡寫爲P(x,y)

若是一個函數P是隨機變量x的機率質量函數,必須知足如下幾個條件

1. P的定義域必須是x全部可能狀態的集合

2. 不可能發生的事件機率爲0,而且不存在比這機率更低的狀態。可以確保必定發生的事件機率爲1,並且不存在比這機率更高的狀態

3. 把這條性質稱爲歸一化的,若是沒有這條性質,當計算機率時,可能會獲得大於1的機率

考慮一個離散型隨機變量x有k個不一樣的狀態。假設x是均勻分佈的(將它每一個狀態視爲等可能的),經過PMF設爲對於全部的i都成立,

能夠看出知足上述稱爲機率質量函數的條件。由於k是一個正整數,因此1/k是正的。也能夠看出

所以分佈知足歸一化條件

連續型變量和機率密度函數

當研究的對象是連續型隨機變量時,用機率密度函數(PDF)而不是機率質量函數來描述它的機率分佈。若是一個函數p是機率密度函數,必須知足下面這幾個條件

機率密度函數P(x)並無直接對特定的狀態給出機率,相對的,

能夠對機率密度函數求積分來得到點集的真實機率質量。特別是,x落在集合S中的機率能夠經過P(x)對這個集合求積分來獲得。在單變量的例子中,x落在區間[a,b]的機率是

邊緣機率

假設離散型隨機變量x和y,而且咱們知道P(x,y)能夠依據下面的求和法則來計算P(x)

邊緣機率的名稱來源於手算邊緣機率的計算過程。當P(x,y)的每一個值被寫在由每行表示不一樣的x值、每列表示不一樣的y值造成的網格中時,對網格中的每行求和是很天然的事情,而後將求和的結果P(x)寫在每行右邊的紙的邊緣處

對於連續型變量,須要用積分替代求和

條件機率

不少狀況下,咱們感興趣的是某個事件在給定其餘事件發生時出現的機率。這種機率叫作條件機率,將給定x=x,y=y發生的條件機率記爲P(y=y | x=x)。這個條件機率能夠經過下面的公式計算:

條件機率只在P(x=x)>0時有定義。不能計算給定在永遠不會發生的事件上的條件機率。

這裏須要注意的是,不要把條件機率和計算當採用某個動做後會發生什麼相混淆。假定某我的說德語,那麼他是德國人的條件機率是很是高的,可是若是隨機選擇的一我的會說德語,他的國籍不會所以而改變。計算一個行動的後果被稱爲干預查詢。干預查詢屬於因果模型的範疇

條件機率的鏈式法則

任何多維隨機變量的聯合機率分佈,均可以分解成只有一個變量的條件機率相乘的形式:

這個規則被稱爲機率的鏈式法則或者乘法法則。它能夠直接從條件機率的定義中獲得。

例如:使用兩次定義能夠獲得

獨立性和條件獨立性

兩個隨機變量x和y,若是它們的機率分佈能夠表示成兩個因子的乘積形式,而且一個因子只包含x,另外一個因子只包含y,就稱這兩個隨機變量是相互獨立的。

若是關於x和y的條件機率分佈對於z的每個值均可能寫成乘積的形式,那麼這兩個隨機變量x和y在給定隨機變量z時是條件獨立的

咱們能夠採用一種簡化形式來表示獨立性和條件獨立性:x ⊥ y 表示x和y相互獨立,x ⊥ y | z 表示x和y在給定z時條件獨立。

指望、方差和協方差

方差:實際值與指望值之差平方的平均值。用來度量隨機變量和其數學指望之間的偏離程度

標準差:方差開根號

協方差:用於衡量兩個變量的整體偏差。同時變大說明兩個變量是同向變化,協方差就是正的。反向變化就是負的。若是有X,Y兩個變量,X值與其均值之差乘以Y值與其均值之差,獲得一個乘積,對乘積求和並求出均值,即爲協方差。

函數f(x)關於某分佈P(x)的指望或者指望值是指,當x由P產生,f做用於x時,f(x)的平均值。對於離散型隨機變量,能夠經過求和獲得

對於連續型隨機變量,能夠經過求積分獲得

當機率分佈在上下文中指明時,能夠只寫出指望做用的隨機變量的名稱來進行簡化,例如 Ex[f(x)]。若是指望做用的隨機變量也很明確,能夠徹底不寫腳標,就像E[f(x)]。默認假設E[.] 表示對方括號內的全部隨機變量的值求平均。相似地,當沒有歧義時,咱們還能夠省略方括號。指望是線性的,例如

其中a 和 β不依賴於x

方差 衡量的是當咱們對x依據它的機率分佈進行採樣時,隨機變量x的函數值會呈現多大的差別

當方差很小時,f(x)的值造成的簇比較接近它們的指望值。方差的平方根被稱爲標準差

協方差 在某種意義上給出了兩個變量線性相關性的強度以及這些變量的尺度

協方差的絕對值若是很大,則意味着變量值變化很大,而且它們同時距離各自的均值很遠。若是協方差是正的,那麼兩個變量都傾向於同時取得相對較大的值。若是協方差是負的,那麼其中一個變量傾向於取得相對較大的值的同時,另外一個變量傾向於取得相對較小的值,反之亦然。其餘的衡量指標如相關係數將每一個變量的貢獻歸一化,爲了只衡量變量的相關性而不受各個變量尺度大小的影響

協方差和相關性是有聯繫的,但其實是不一樣的概念。它們是有聯繫的,若是兩個變量相互獨立,那麼它們的協方差爲零;若是兩個變量的協方差不爲零,那麼它們必定是相關的。然而,獨立性又是和協方差徹底不一樣的性質。兩個變量若是協方差爲零,它們之間必定沒有線性關係。獨立性是比零協方差的要求更強,由於獨立性還排除了非線性的關係。兩個變量相互依賴,可是具備零協方差是可能的。例如,假設咱們首先從區間[-1,1] 上的均勻分佈中採樣出一個實數x,而後對一個隨機變量s進行採集。s以1/2的機率值爲1,不然爲-1.咱們能夠經過令y=sx來生成一個隨機變量y。顯然,x和y不是相互獨立的,由於x徹底決定了y的尺度。然而,Cov(x,y) = 0 

隨機向量x∈Rn的協方差矩陣是一個n*n的矩陣,而且知足

協方差矩陣的對角元是方差

經常使用分佈

許多簡單的機率分佈在機器學習的衆多領域中都是有用的。

Bernoulli分佈

Bernoulli分佈,是單個二值隨機變量的分佈。由單個參數Φ∈[0,1] 控制,Φ 給出了隨機變量等於1的機率。具備以下的一些性質

Multinoulli分佈

Multinoulli分佈或者範疇分佈是指在具備k個不一樣狀態的單個離散型隨機變量上的分佈,其中k是一個有限值。Multinoulli分佈由向量p∈[0,1] k-1 參數化,其中每個份量pi表示第i個狀態的機率。最後的第k個狀態的機率能夠經過1-1Tp給出。

注意咱們必須限制1Tp<=1.Multionoulli分佈常常用來表示對象分類的分佈,因此咱們不多假設狀態1具備數值1之類。所以,咱們一般不須要去計算Multionoulli分佈的隨機變量的指望和方差。

Bernoulli分佈和Multinoulli分佈足夠用來描述在它們領域內的任意分佈。可以描述這些分佈,不是由於它們特別強大,而是由於它們的領域很簡單。它們能夠對那些可以將全部的狀態進行枚舉的離散性隨機變量進行建模。當處理的是連續型隨機變量時,會有不可數無限多的狀態,因此任何經過少許參數描述的機率分佈都必須在分佈上加以嚴格的限制。

高斯分佈

實數上最經常使用的分佈就是正態分佈,也稱爲高斯分佈

下圖畫出了正態分佈的機率密度函數

正態分佈由兩個參數控制,μ∈R,和σ∈(0,∞)參數μ給出了中心峯值的座標,這也是分佈的均值:E[x] = μ,分佈的標準差用σ表示,方差用σ2表示。

當咱們要對機率密度函數求值時,須要對σ平方而且取倒數。當咱們須要常常對不一樣參數下的機率密度函數求值時,一種更高效的參數化分佈的方式是使用參數β∈(0,∞)來控制分佈的精度或方差的倒數

採用正態分佈在不少應用中都是一個明智的選擇。當咱們因爲缺少關於某個實數上分佈的先驗知識而不知道該選擇怎樣的形式時,正態分佈是默認的比較好的選擇。由兩個緣由

1. 咱們想要建模的不少分佈的真實狀況是比較接近正態分佈的。中心極限定理說明不少獨立隨機變量的和近似服從正態分佈。這意味着在實際中,不少複雜系統均可以被成功地建模成正態分佈的噪聲,即便系統能夠被分解成一些更結構化的部分。

2. 具備相同方差的全部可能的機率分佈中,正態分佈在實數上具備最大的不肯定性。咱們能夠認爲正態分佈是對模型加入的先驗知識量最少的分佈。充分利用和證實這個想法須要更多的數學工具。

正態分佈能夠推廣到Rn空間,這種狀況下被稱爲多維正態分佈。它的參數是一個正定對稱矩陣∑

參數μ 仍然表示分佈的均值,只不過如今是向量值。參數∑給出了分佈的協方差矩陣。和單變量的狀況相似,當咱們但願對不少不一樣參數下的機率密度函數屢次求值時,協方差矩陣並非一個很高效的參數化分佈的方式,覺得內對機率密度函數求值時須要對∑求逆。可使用一個精度矩陣β進行替代

咱們經常把協方差矩陣固定成一個對角陣。更簡單的版本是各向同性高斯分佈,它的協方差矩陣是一個標量乘以單位陣。

指數分佈和Laplace分佈

深度學習中,須要一個在x=0點處取得邊界點的分佈。爲了實現這一目的,可使用指數分佈

指數分佈用指示函數1x>=0來使得當x取負值時的機率爲零

一個聯繫緊密的機率分佈是Laplace分佈,容許咱們在任意一點μ處設置機率質量的峯值

Dirac分佈和經驗分佈

但願機率分佈中的全部質量都集中在一點上,能夠經過Dirac delta函數定義機率密度函數來實現

Dirac delta函數被定義成在除了0之外的全部點的值都爲0,可是積分爲1.它是一種不一樣類型的數學對象,被稱爲廣義函數,廣義函數是依據積分性質定義的數學對象。能夠把Dirac delta函數想成一系列函數的極限點,這一系列函數把除0之外的全部點的機率密度越變越小。

Dirac分佈常常做爲經驗分佈的一個組成部分出現

經驗分佈能夠被定義成一個Multinoulli分佈,對於每個可能的輸入,其機率能夠簡單地設爲在訓練集上那個輸入值的經驗頻率

當咱們在訓練集上訓練模型時,能夠認爲從這個訓練集上獲得的經驗分佈指明瞭採樣來源的分佈。它是訓練數據的似然最大的那個機率密度函數

貝葉斯規則

咱們常常會須要在已知P(y|x)時計算P(x|y)。幸運的是,若是還直到P(x) 能夠用貝葉斯規則來實現這一目的

一般使用P(y)=∑xP(y|x)P(x) 來計算,因此咱們並不須要事先直到P(y)的信息。

貝葉斯規則能夠從條件機率的定義直接推導得出

信息論

主要研究對一個信號包含信息多少進行量化。

機器學習中,能夠把信息論應用於連續型變量,某些信息長度的解釋再也不適用。

基本想法:一個不太可能的事件竟然發生了,要比一個很是可能的事件發生,提供更多的信息。

好比「今天早上太陽升起」信息量不多,但「今天早上有日食」,信息量就很豐富。

經過這種基本想法來量化信息

1. 很是可能發生的事件信息量要比較少,而且極端狀況下,確保可以發生的事件應該沒有信息量

2. 較不可能發生的事件具備更高的信息量

3. 獨立事件應具備增量的信息。例:硬幣兩次正面向上傳遞的信息量,應該是一次硬幣正面向上的兩倍

爲知足上述3個性質,定義一個事件x=x的自信息(self-information)爲

Ι(x) = -logP(x)

用log來表示天然對數,其底數爲e。所以I(x)的單位是奈特(nats)。一奈特是以1/e的機率觀測到一個事件時得到的信息量。其餘的材料中使用底數爲2的對數,單位是比特(bit)或者香農(shannons)。經過比特度量的信息只是經過奈特度量信息的常數倍。

:指乘方運算的結果。叫作n的m次冪或n的m次方。n^m叫作n的m次冪。

對數:求冪的逆運算,正如除法是乘法的倒數。若是a的x次冪等於N,那麼數x叫作以a爲底N的對數。記做x=logaN

經常使用對數:以10爲底的對數,並記爲log。

天然對數:以無理數e(e=2.71828...)爲底的對數,並記爲ln。

自信息只處理單個的輸出。能夠用香農熵(Shannon entropy)來對整個機率分佈中的不肯定性總量進行量化

 記做H(P)

一個分佈的香農熵是指遵循這個分佈的事件所產生的指望信息總量。給出了對依據機率分佈P生成的符號進行編碼所需的比特數在平均意義上的下界。

接近肯定性的分佈具備較低的熵;接近均勻分佈的機率分佈具備較高的熵。當x是連續的,香農熵被稱爲微分熵(differential entropy)

 #

數值計算

機器學習算法一般須要大量的數值計算。一般指經過迭代過程更新解的估計值來解決數學問題的算法,而不是經過解析過程推導出公式來提供正確解的方法。常見的操做包括優化(找到最小化或最大化函數值的參數)和線性方程組的求解。

上溢和下溢

舍入偏差會致使一些問題,若是設計時沒有考慮最小化舍入偏差的累積,可能會致使算法失效。

一種極具毀滅性的舍入偏差是下溢(underflow)。當接近零的數被四捨五入爲零時發生下溢。許多函數在其參數爲零而不是很小的正數時纔會表現出質的不一樣。

另外一種數值錯誤形式是上溢(overflow)。當大量級的數被近似爲∞或-∞時發生上溢。致使這些無限值變爲非數字。

對上溢和下溢進行數值穩定的一個例子是softmax函數。經常使用於預測與Multionoulli分佈相關聯的機率

理論上說,所欲的輸出都應該爲1/n。當c量級很大時,可能不會發生。

若是c是很小的負數,exp(c)就會下溢。意味着softmax函數的分母會變成0,最後的結果是未定義的。

若是c是很大的正數時,exp(c)的上溢再次致使整個表達式未定義。

這兩個困難能經過計算softmax(z)同時解決,其中z=x-maxi xi,簡單的代數表示,softmax解析上的函數值不會由於從輸入向量減去或加上標量而改變。減去maxixi致使exp的最大參數爲0,排除了上溢的可能性。

病態條件

條件數指函數相對於輸入的微小變化而變化的快慢程度。輸入被輕微擾動而迅速改變的函數對於科學計算來講多是有問題的,由於輸入中的舍入偏差可能致使輸出的巨大變化。

考慮函數f(x)=A-1x。當A∈Rn*n具備特徵值分解時,其條件數爲

最大和最小特徵值的模之比。當該數很大時,矩陣求逆對輸入的偏差特別敏感。

敏感性是矩陣自己的固有特徵,而不是矩陣求逆期間舍入偏差的結果。即便咱們乘以徹底正確的矩陣逆,病態條件的矩陣也會放大預先存在的偏差。

梯度的優化方法

優化指的是改變x以最小化或最大化某個函數f(x)的任務。

一般以最小化f(x)指代大多數最優化問題。最大化能夠由最小化算法最小化-f(x)來實現。

最小化或最大化的函數稱爲目標函數(objective function)或準則(criterion)。當咱們對其進行最小化時,把它稱爲代價函數(cost function)、損失函數(loss function)、偏差函數(error function)

#

機器學習基礎

深度學習是機器學習的一個特定分支。

學習算法 

學習:對於某類任務T和性能度量P,一個計算機程序被認爲能夠從經驗E中學習是指,經過經驗E改進後,它在任務T上由性能度量P衡量的性能有所提高。

任務T 

學習過程自己不能算是任務,學習是咱們所謂的獲取完成任務的能力。

一般機器學習任務定義爲機器學習系統應該如何處理樣本(example)。指咱們從某些但願機器學習系統處理的對象或事件中收集到的已經量化的特徵(feature)的集合。一般會將樣本表示成一個向量x∈Rn,其中向量的每個元素xi是一個特徵。

機器學習能夠解決不少類型的任務

  • 分類:指定某些輸入屬於k類中的哪一類。學習算法一般會返回一個函數f:Rn->{1,...,k}。當y=f(x)時,模型將向量x所表明的輸入分類到數字碼y所表明的類別。分類任務中有一個任務是對象識別,其中輸入的是圖片,輸出的是表示圖片物體的數字碼。例如識別不一樣飲料,識別人臉。
  • 輸入缺失分類:當輸入向量的每一個度量不被保證時,分類問題將會變得更具備挑戰性。爲了解決分類任務,學習算法只須要定義一個從輸入向量映射到輸出類別的函數。當一些輸入可能丟失時,學習算法必須學習一組函數,而不是單個分類函數。每一個函數對應着分類具備不一樣缺失輸入子集的x。使用n個輸入變量,能夠得到每一個可能的缺失輸入集合所需的全部2n個不一樣的分類函數。
  • 迴歸:程序須要對給定輸入預測數值。學習算法須要輸出函數f:Rn->R。除了返回結果的形式不同外,這類問題和分類問題是很像的。這類任務的一個示例是預測投保人的索賠金額(用於設置保險費),或者預測證券將來的價格。用在交易算法中。
  • 轉錄:這類任務中,機器學習系統觀測一些相對非結構化表示的數據,並轉錄信息爲離散的文本形式。例如:光學字符識別要求程序根據文本圖片返回文字序列(ASCII碼或Unicode碼)。谷歌街景以這種方式使用深度學習處理街道編號。另外一個例子是語音識別,計算程序輸入一段音波形,輸出一序列音頻記錄中所說的字符或單詞ID的編碼。深度學習是現代語音識別系統的重要組成部分。
  • 機器翻譯:輸入是一種語言的符號序列,程序必須將其轉化成另外一種語言的符號序列。適用於天然語言,如將英語譯成法語。
  • 結構化輸出:輸出是向量或者其餘包含多個值的數據結構,而且構成輸出任務的輸出是向量或者其餘包含多個值的數據結構,而且構成輸出的這些不一樣元素間具備重要關係。這是一個很大的範疇,包含轉錄任務和翻譯任務在內的不少其餘任務。例如語法分析,映射天然語言句子到語法結構樹,並標記樹的節點爲動詞、名詞、副詞等。另外一個例子是圖像的像素級分隔,將每個像素分配到特定類別。可用於標註航拍照片中的道路位置,輸出結構形式不須要和輸入儘量類似。
  • 異常檢測:程序在一組事件或對象中篩選,並標記不正常或非典型的個體。例如信用卡欺詐檢測,經過對你的購買習慣建模,信用卡公司能夠檢測到你的卡是否被濫用。若是竊取你的信用卡或信用卡信息,採購物品的分佈一般和你的不一樣。
  • 合成和採樣:程序生成一些和訓練數據類似的新樣本。經過機器學習、合成和採樣能夠在應用中很是有用,能夠避免大量昂貴或者乏味費時的手工工做。例如,視頻遊戲自動生成大型物體或風景的紋理。但願採樣或合成過程能夠根據給定的輸入生成一些特定類型的輸出。
  • 缺失值填補:算法給定一個新樣本x∈Rn,x中某些元素xi缺失。算法必須填補這些缺失值
  • 去噪:算法的輸入是,乾淨樣本x∈Rn,通過未知損壞過程後獲得的損壞樣本。算法根據損壞後的樣本預測乾淨的樣本,或者預測條件機率分佈
  • 密度估計或機率質量函數評估:機器學習算法學習函數,其中Pmodel(x)能夠解釋成樣本採樣空間的機率密度函數或者機率質量函數。

性能度量P

對於評估機器學習算法的能力,必須設計其性能的定量度量。一般性能度量P是特定於系統執行的任務T而言的。

對於分類、缺失輸入分類和轉錄任務,一般度量模型的準確率(accuracy)。準確率是指該模型輸出正確結果的樣本比率。也能夠經過錯誤率(errorrate)獲得相同的信息。錯誤率是指該模型輸出錯誤結果的樣本比率。一般把錯誤率稱爲0-1損失的指望。在一個特定的樣本上,若是結果是對的,那麼0-1損失是0;不然是1.對於密度估計這類任務,度量準確率,錯誤率或者其餘類型的0-1損失是沒有意義的。

使用測試集(testset)數據來評估系統性能,將其與訓練機器學習系統的訓練集數據分開

性能度量的選擇或許看上去簡單且客觀,可是選擇一個系統理想表現對應的性能度量一般是很難的。

在執行轉錄任務時,應該度量系統轉錄整個序列的準確率,仍是應該用一個更細粒度的指標,對序列中正確的部分元素以正面評價?設計的選擇取決於應用。

經驗E

機器學習算法能夠分爲無監督(unsupervised)算法和監督(supervised)算法。

能夠被理解爲在整個數據集(dataset)上獲取經驗。數據集是指不少樣本組成的集合。有時咱們也將樣本稱爲數據點(data point)

無監督學習算法:訓練含有不少特徵的數據集,而後學習出這個數據集上有用的結構性質。深度學習中,一般要學習生成數據集的整個機率分佈。好比密度估計或是隱式地,好比合成或去噪。還有一些其餘類型的無監督學習任務,例如聚類,將數據集分紅類似樣本的集合。

監督學習算法:訓練含有不少特徵的數據集,不過數據集中的樣本都有一個標籤(label)或目標(target)。學習如何根據測量結果將樣本劃分爲不一樣品種。

大體來講,

無監督學習設計觀察隨即向量x的好幾個樣本,試圖顯示或隱式地學習出機率分佈p(x),或者該分佈一些有意思的性質。

監督學習包含觀察隨機鄉里那個x及其相關聯的值或向量y,而後從x預測y,一般是估計p(y|x)。

監督學習源自這樣一個視角,教員或老師提供目標y給機器學習系統,指導其應該作什麼。無監督學習中,沒有教員或老師,算法必須學會在沒有指導的狀況下理解數據。

容量、過擬合和欠擬合

在先前未觀察到的輸入上表現良好的能力稱爲泛化(generaliza-tion)

在訓練集上計算一些被稱爲訓練偏差(training error)的度量偏差,目標是下降訓練偏差。

機器學習和優化不一樣的地方在於,但願泛化偏差、測試偏差很低。泛化偏差被定義爲新輸入的偏差指望。指望的計算基於不一樣的可能輸入,採自系統在現實中遇到的分佈。

度量模型在訓練集中分出來的測試集(test set)樣本上的性能,來評估學習模型的泛化偏差

統計學習理論(statisticl learning theory)提供了一些理論。若是訓練集合測試集的數據是任意收集的,那麼咱們可以作的確實頗有限。若是能夠對訓練集和測試集數據的收集方式有些假設,那麼能對算法作出改進。

訓練集合測試集數據經過數據集上被稱爲數據生成過程(data generating process)的機率分佈生成。一般會作一系列獨立同分布假設(i.i.d. assumption)的假設。每一個數據集中的樣本都是彼此相互獨立的(independent),而且訓練集合測試集是同分布的(identically distributed),採樣自相同的分佈。使咱們可以在單個樣本的機率分佈描述數據生成過程。相同的分佈能夠用來生成每個訓練樣本和每個測試樣本。

這個共享的潛在分佈稱爲數據生成分佈(data generating distribution),記做Pdata

測試偏差指望會大於或等於訓練偏差指望。決定機器學習算法是否好的因素有兩個

1. 下降訓練偏差

2. 縮小訓練偏差和測試偏差的差距

這兩個因素對應機器學習的兩個主要挑戰:欠擬合(underfitting)和過擬合(overfitting)。

欠擬合是指模型不能再訓練集上得到足夠低的偏差。

過擬合是指偏差和測試偏差之間的差距太大。

經過調整模型的容量(capacity),能夠控制模型是否偏向於過擬合或者欠擬合。通俗來說,模型的容量是指擬合各類函數的能力。容量低的模型可能很難擬合訓練集。容量高的模型可能會過擬合,由於記住了不適用於測試集的訓練集性質。

控制訓練算法容量的方法是選擇假設空間(hypothesis space),學習算法能夠選擇爲解決方案的函數集。

沒有免費午飯定理

全部可能的數據生成分佈上平均以後,每個分類算法在未事先觀測的點上都有相同的錯誤率。換言之,在某種意義上,沒有一個機器學習算法老是比其餘的要好。可以設想的最早進的算法和簡單地將全部點歸爲同一類的簡單算法有相同的平均性能(全部可能的任務上)

意味着,機器學習研究的目標不是找一個通用學習算法或是絕對最優的學習算法,而是理解什麼樣的分佈與人工智能獲取經驗的「真實世界」相關,以及什麼樣的學習算法在咱們關注的數據生成分佈上效果最好。

正則化

能夠經過兩種方式控制算法的性能,一是容許使用的函數種類。二是這些函數的數量

相比於某一個學習算法,可能更偏好另外一個學習算法。意味着兩個函數都是符合條件的,可是咱們更偏好其中一個。只有非偏好函數比偏好函數在訓練數據集上效果明顯好不少時,咱們纔會考慮非偏好函數。

能夠加入權重衰減(weight decay)來修改線性迴歸的訓練標準。帶權重衰減的線性迴歸最小化訓練集上的均方偏差和正則項的和J(w),其偏好於平方L2範數較小的權重。

其中λ是提早挑選的值,控制咱們偏好小范數權重的程度。當λ=0時,沒有任何偏好。越大的值偏好範數越小的權重。最小化J(w)能夠看作擬合訓練數據和偏好小權重範數之間的權衡。會使得解決方案的斜率較小,或是將權重放在較少的特徵上。能夠訓練具備不一樣λ值的高次多項式迴歸模型,來講明如何經過權重衰減控制模型欠擬合或過擬合的趨勢。

正則化一個學習函數f(x;0)的模型,能夠給代價函數添加被稱爲正則化項(regularizer)的懲罰。

正則化指修改學習算法,使其下降泛化偏差而非訓練偏差。正則化是機器學習領域的中心問題之一,只有優化可以與其重要性相提並論。

對函數的偏好是比增減假設空間的成員函數更通常地控制模型容量的方法。能夠去掉假設空間中的某個函數看作對不同意這個函數的無限偏好。

點估計

點估計試圖爲一些感興趣的量提供單個「最優」預測。感興趣的量能夠是單個參數,或是某些參數模型中的一個向量參數。

爲了區分參數估計和真實值,習慣將參數θ的點估計表示爲

令{x(1),..,x(m)}是m個獨立同分布(i.i.d.)的數據點。點估計(point estimator)或統計量(statistics)是這些數據的任意函數:

定義不要求g返回一個接近真實θ的值,或者g的值域剛好是θ的容許取值範圍。點估計的定義很是寬泛,給了估計量的設計者極大的靈活性。

誤差

估計的誤差被定義爲

指望做用在全部數據(從隨機變量採樣獲得的)上,θ是用於定義數據生成分佈的θ的真實值。若是bias(θm)=0,那麼估計量θm被稱爲是無偏(unbiased),意味着E(θm)=θ。

若是估計值θm被稱爲漸近無偏(asymptotically unbiased),意味着

監督學習算法

大部分監督學習算法是基於估計機率分佈p(y|x)。能夠用最大似然估計找到對於有參分佈族p(y|x; θ)最好的參數向量θ。

線性迴歸對應於分佈族

經過定義一族不一樣的機率分佈,能夠將線性迴歸擴展到分類狀況中。若是有兩個類,類0和類1,那麼只須要指定這兩類之一的機率。類1的機率決定了類0的機率,由於這兩個值加起來必須等於1。

用於線性迴歸的實數正態分佈是用均值參數化的。提供這個均值的任何值都是有效的。二元變量上的分佈稍微複雜些,由於它的均值必須始終在0和1之間。

解決這個問題的一種辦法是使用logistic sigmoid函數將線性函數的輸出壓縮進區間(0,1)。能夠解釋爲機率

這個方法被稱爲邏輯迴歸(logistic regression),該模型用於分類並不是迴歸

線性迴歸中,能夠經過求解正規方程以找到最佳權重。邏輯迴歸會更困難些,其最佳權重沒有閉解。必須最大化對數似然來搜索最優解。能夠經過梯度降低算法最小化負對數似然來搜索。

肯定正確的輸入和輸出變量上的有參條件機率分佈族,相同的策略基本上能夠用於任何監督學習問題。

支持向量機

支持向量機(support vector machine,SVM)是監督學習中最有影響力的方法之一。相似於邏輯迴歸,這個模型也是基於線性函數wTx+b的。不一樣於邏輯迴歸的是,支持向量機不輸出機率,只輸出類別。當wTx+b爲正時,支持向量機預測屬於正類。當wTx+b爲負時,支持向量機預測屬於負類。

支持向量機的一個重要創新是核技巧(kernel trick)。核技巧觀察到許多機器學習算法均可以寫成樣本間點積的形式。例如,支持向量機中的線性函數能夠重寫爲

其中,x(i)是訓練樣本,α是係數向量。學習算法重寫爲這種形式容許咱們將x替換爲特徵函數的輸出,點積替換爲被稱爲核函數(kernel function)的函數。

使用核估計替換點積以後,可使用以下函數進行預測

核技巧十分強大有兩個緣由:

其一,使咱們可以使用保證有效收斂的凸優化技術來學習非線性模型(關於x的函數)。這是可能的,由於咱們能夠認爲Φ是固定的,僅優化α,即優化算法能夠將決策函數視爲不一樣空間中的線性函數。

其二,核函數k的實現方法一般比直接構建Φ(x)再算點積高效不少

最經常使用的核函數是高斯核(Gaussian kernel)

這個核也稱爲徑向基函數(radial basis function,RBF)核,由於其值沿v中從u向外輻射的方向減小。高斯覈對應於無限維空間中的點積,可是該空間的推導沒有整數上最小核的示例那麼直觀。

能夠認爲高斯核在執行中一種模板匹配(template matching)。訓練標籤y相關的訓練樣本x變成了類別y的模板。當測試點x/到x的歐幾里得距離很小,對應的高斯核響應很大時,代表x'和模板x很是類似。該模型進而會賦予相對應的訓練標籤y較大的權重。總的來講,預測會將組合不少這種經過訓練樣本類似度加權的訓練標籤。

許多其餘的線性模型也能夠經過這種方法來加強。使用核技巧的算法類別被稱爲核機器(kernel machine)或核方法(kernel method)

核機器的一個主要缺點是計算決策函數的成本關於訓練樣本的數目是線性的。由於第i個樣本共享 αik(x,x(i)) 到決策函數。支持向量機可以經過學習主要包含零的向量α,以緩和這個缺點。

當數據集很大時,核機器的計算量也會很大。帶通用核的核機器致力於泛化得更好。現代深度學習的設計旨在克服核機器的這些限制。當前深度學習的復興代表神經網絡可以在MNIST基準數據上賽過RBF核的支持向量機。

其餘簡單的監督學習算法

簡要介紹過另外一個非機率監督學習算法,最近鄰迴歸。

k-最近鄰

一類可用於分類或迴歸的技術。做爲一個非參數學習算法,k-近鄰並不侷限於固定數目的參數。一般認爲k-最近鄰算法沒有任何參數, 而是使用訓練數據的簡單函數。甚至也沒有一個真正的訓練階段或學習過程。測試階段咱們但願在新的測試輸入x上產生y,須要在訓練數據X上找到x的k-最近鄰。而後返回訓練集上對應的y值的平均值。

分類狀況中,能夠關於one-hot編碼向量c求平均,其中cy=1,其餘的i值取ci=0。能夠解釋這些one-hot編碼的均值爲類別的機率分佈。做爲一個非參數學習算法,k-近鄰能達到很是高的容量。

假設一個0-1偏差度量性能的多分類任務。在設定中,當訓練樣本數目趨向於無窮大時,1-最近鄰收斂到兩倍貝葉斯偏差。超出貝葉斯偏差的緣由是它們會隨機從等距離的臨近點中隨機挑一個。而存在無限的訓練數據時,全部測試點x周圍距離爲零的鄰近點有無限多個。若是使用全部這些臨近點投票的決策方式,而不是隨機挑選,那麼該過程將會收斂到貝葉斯錯誤率。

k-近鄰高容量使其在訓練樣本數目大時可以獲取較高精度。然而,它的計算成本很高,另外在訓練集較小時泛化能力不好。

k-近鄰的一個弱點是它不能學習出哪個特徵比其餘更具識別力。

假設要處理一個迴歸任務,其中x∈R100是從各向同性的高斯分佈中抽取的,可是隻有一個變量x1和結果相關。進一步假設該特徵直接決定了輸出,即在全部狀況中y=x1.

最近鄰迴歸不能檢測到這個簡單模式,大多數點x的最近鄰將取決於x2到x100的大多數特徵,而不是單獨取決於特徵x1。所以,小訓練集上的輸出將會很是隨機。

決策樹(decision tree)

決策樹及其變種是另外一類將輸入空間分紅不一樣的區域,每一個區域有獨立參數的算法。

決策樹的每一個節點都與輸入空間的一個區域相關聯,而且內部節點繼續將區域分紅子節點下的子區域(一般使用座標軸拆分區域)。空間由此細分紅不重疊的區域,葉節點和輸入區域之間造成一一對應的關係。每一個葉結點將其輸入區域的每一個點映射到相同的輸出。

若是學習任意大小的決策樹,那麼它能夠被視做非參數算法。然而實踐中一般有大小限制,做爲正則化將其轉變成有參模型。決策樹一般有大小限制,做爲正則化將其轉變成有參模型。決策樹一般使用座標軸相關的拆分,而且每一個子節點關聯到常數輸出,所以有時解決一些對於邏輯迴歸很簡單的問題很費力。

假設有一個二分類問題,當x2>x1時分類爲正,則決策樹的分界不是座標軸對齊的。所以決策樹將須要許多節點近似決策邊界,座標軸對齊使其算法步驟不斷地來回穿梭於真正的決策函數。

無監督學習算法

只處理「特徵」,不操做監督信號。監督和無監督算法之間的區別沒有規範嚴格的定義,由於沒有客觀的判斷來區分監督者提供的值是特徵仍是目標。

無監督學習的大多數嘗試是指從不須要人爲註釋的樣本的分佈中抽取信息。該術語一般與密度估計相關,學習從分佈中採樣、學習從分佈中去噪、尋找數據分佈的流形或是將數據中相關的樣本聚類。

經典的無監督學習任務是找到數據的「最佳」表現。「最佳」能夠是不一樣的表示,但通常來講,指該表示在比自己表示的信息更簡單或更易訪問而受到一些懲罰或限制的狀況下,儘量地保存關於x更多的信息。

最多見的3種包括低維表示、稀疏表示、獨立表示

低維表示嘗試將x中的信息儘量壓縮在一個較小的表示中。

稀疏表示將數據集嵌入到輸入項大多數爲零的表示中。一般用於須要增長表示維數的狀況,使得大部分爲零的表示不會丟失不少信息。使得表示的總體結構傾向於將數據分佈在表示空間的座標軸上。

獨立表示視圖分開數據分佈中變化的來源,使得表示的維度是統計獨立的。

這三個標準並不是相互排斥,低維表示一般會產生比原始的高維數據具備較少或較弱依賴關係的元素。由於減小表示大小的一種方式是找到並消除冗餘。識別並去除更多的冗餘使得降維算法在丟失更少信息的同時顯現更大的壓縮。

主成分分析

PCA算法提供了一種壓縮數據的方式。將PCA視爲學習數據標識的無監督學習算法。這種基於上述簡單表示的兩個標準。

PCA學習一種比原始輸入維度更低的表示。也學習了一種元素之間彼此沒有線性關係的表示。這是學習表示中元素統計獨立標準的第一步。要實現徹底獨立性,表示學習算法也必須去掉變量間的非線性關係。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相關文章
相關標籤/搜索