天天看點

感覺機的簡單了解

一,感覺機模型

1,超平面的定義

令w1,w2,...wn,v都是實數(R) ,其中至少有一個wi不為零,由所有滿足線性方程w1*x1+w2*x2+...+wn*xn=v

的點X=[x1,x2,...xn]組成的集合,稱為空間R的超平面。

從定義可以看出:超平面就是點的集合。集合中的某一點X,與向量w=[w1,w2,...wn]的内積,等于v

特殊地,如果令v等于0,對于訓練集中某個點X:

w*X=w1*x1+w2*x2+...+wn*xn>0,将X标記為一類

w*X=w1*x1+w2*x2+...+wn*xn<0,将X标記為另一類

2,資料集的線性可分

對于資料集T={(X1, y1),(X2, y2)...(XN, yN)},Xi belongs to Rn,yi belongs to {-1, 1},i=1,2,...N

若存在某個超平面S:w*X=0

将資料集中的所有樣本點正确地分類,則稱資料集T線性可分。

所謂正确地分類,就是:如果w*Xi>0,那麼樣本點(Xi, yi)中的 yi 等于1

如果w*Xi<0,那麼樣本點(Xi, yi)中的 yi 等于-1

是以,給定超平面 w*X=0,對于資料集 T中任何一個點(Xi, yi),都有yi(w*Xi)>0,這樣T中所有的樣本點都被正确地分類了。

如果有某個點(Xi, yi),使得yi(w*Xi)<0,則稱超平面w*X對該點分類失敗,這個點就是一個誤分類的點。

3,感覺機模型

感覺機模型,對應着一個超平面w*X+b=0,這個超平面的參數是(w,b),w是超平面的法向量,b是超平面的截距。

我們的目标是,找到一個(w,b),能夠将線性可分的資料集T中的所有的樣本點正确地分成兩類。

如何找到(w,b)?---感覺機學習算法做的事

二,感覺機學習算法

既然我們的目标是将T中所有的樣本點正确地分類,那麼對于某個(w,b),先看一下它在哪些點上分類失敗了。由前面所述:

如果有某個點(Xi, yi),使得yi(w*Xi)<0,則稱超平面w*X對該點分類失敗。采用所有誤分類的點到超平面的距離來衡量分類失敗的程度。

n維空間Rn中一點Xi到超平面w*X+b=0的距離公式:

感覺機的簡單了解

對于誤分類的點,有yi(w*Xi)<0。而距離總是大于0的,是以,某個誤分類的點到超平面的距離表示為:

感覺機的簡單了解

||w||是一個常數,對最小化L(w,b)沒有影響,故忽略之。

假設所有的誤分類點都在集合M中,得到的損失函數如下:

感覺機的簡單了解

最終,将尋找(w,b)問題轉化為最小化損失函數,即轉化為一個最優化問題。(損失函數越小,說明誤分類的樣本點“越少”---或者說分類失敗的程度越低)

而這個優化問題可以用梯度下降法來尋找最優的(w,b)

minL(w,b)沒有 analytical solution,我的了解是:不能通過數學公式各種推導,最終求得一個關于最優的w 和 b 的解。比如,Stanford CS229課程中cs229-notes1.pdf 中求解 linear regression 的代價函數J(θ)的參數θ,可以使用Normal Equation 方法:直接根據公式得到θ

上面說的second way of doing so. second way就是Normal Equation方法

梯度下降,則是一種疊代算法,使用不斷疊代(w,b)的方式,使得L(w,b)變得越來越小。

另外一個原因是(不知道對不對):在《機器學習基石》視訊中講到NP-Hard問題。

x

感覺機的簡單了解

梯度方向是函數L(w,b)增加最快的方向,而現在要最小化L(w,b),在目前的(w,b)點,從梯度的負方向搜尋下一個(w,b)點,那麼找到的(w,b)就是使L(w,b)減少的最快的方向上的那個點(還與搜尋的步長有關)了。

現在證明為什麼梯度方向是函數f(x)增加最快的方向,這裡涉及到幾個概念:

①梯度

梯度是個向量,由于x=[x1,x2,...xn]是n維的,梯度就是對x的各個分量xi求偏導數:

感覺機的簡單了解

②增加的方向---方向導數

給定一個函數f(x),通俗地講方向導數就是決定 自變量x 可以往哪個方向移動。比如在f(x)邊界上,x往某個方向移動時,就不在定義域的範圍内了,那x是不能往該方向變化的。假設 d 是f(x)的一個可行方向,||d||=1,那麼函數f 的值在 x 處 沿着方向d 的增長率increase_rate,可以用内積表示:

感覺機的簡單了解

那麼現在,到底往哪個方向增長,能夠使 increase_rate 最大呢?也即,d取哪個方向,使 increase_rate 最大?

感覺機的簡單了解

也就是說,increase_rate的最大值為:

感覺機的簡單了解

而當 d =

感覺機的簡單了解

 時,根據内積的定義:

increase_rate等于:

感覺機的簡單了解

    此時,increase_rate取最大值,且可行方向d 就是梯度方向!

 是以,若要最小化L(w,b),往梯度的負方向搜尋(w,b),能使L(w,b)下降得最快。

根據前面的介紹,梯度實際上是求偏導數,是以L(w,b)分别對w 和 b 求偏導數:

感覺機的簡單了解

而在感覺機中是一次隻選擇一個誤分類點對(w,b)進行疊代更新,選擇梯度的負方向進行更新,故更新的公式如下所示:

感覺機的簡單了解

三,感覺機學習算法的收斂性證明

由于資料集T是線性可分的,假設存在一個理想的超平面wopt,且||wopt||=1,wopt能夠将T中的所有樣本點正确地分類。

如前所述,若正确分類,則對于資料集 T中任何一個點(Xi, yi),都有yi(w*Xi)>0

取r=min{yi(wopt*Xi)} ,并且令R=max||xi||   ,則疊代次數k滿足下列不等式:

感覺機的簡單了解

具體證明過程見《統計學習方法》p32-p33頁

在證明過程中,推導出了兩個不等式,一個是:wk*wopt  >=  knr  (k是疊代次數,n是疊代步長,r是min{yi(wopt*Xi))

超平面wopt是理想的超平面,能夠完美地将所有的樣本點正确地分開。wk是采用感覺機學習算法使用梯度下降不斷疊代求解的超平面,二者之間的内積,用來衡量這兩個超平面的接近程度。因為兩個向量的内積越大,說明這兩個向量越相似(接近),也就是說:不斷疊代後的wk越來越接近理想的超平面wopt了。(向量的模為1,||wopt||=1)

第二個不等式是:

感覺機的簡單了解

結合上面的二個不等式,有:

感覺機的簡單了解

其中第一個不等号成立是因為:wk*wopt  >=  knr 

第二個不等号成立是因為:柯西-施瓦茲不等式

第三個不等号成立是因為:第二個不等式 和 ||wopt||=1

四,參考文獻

《統計學習方法》

《最優化導論》

本文轉自hapjin部落格園部落格,原文連結:http://www.cnblogs.com/hapjin/p/6714526.html,如需轉載請自行聯系原作者

繼續閱讀