6 Support vector machine(1)

本學習筆記參考自Andrew的機器學習課程(點此打開), 內容來自視頻以及其講義, 部分內容引用網友的學習筆記,會特別註明


本集內容


1.事件模型
2.神經網絡簡單介紹
3.支持向量機(上)


事件模型



多值伯努利事件模型


在前面介紹的一個垃圾郵件分類的例子中,輸入特徵的分向量要麼取0或1,即p(x|y)中的x是服從伯努利分佈的,這樣的樸素貝葉斯算法叫多值伯努利事件模型

多項式事件模型


上面的垃圾郵件分類器的特徵並沒有完全描述郵件的性質,比如單詞出現的次數,下面會改造一下。一般的,輸入特徵的分向量可能取值爲1,2,3..k種,就不能用上面的處理方式了,這裏對垃圾郵件分類器重新改變一下,來處理這種並非二元取值的情況,相應的模型叫做多項式事件模型,就是p(x|y)中的x服從多項式分佈。輸入特徵重新如下輸入特徵如下:

 (x 1 ,x 2 ,.x i..,x n )

 i表示郵件中第i個單詞,自然的n就是最後一個單詞,也就是郵件的長度了,所以輸入特徵向量的維度根據樣本而變化。其中x i的取值爲1,2,3...|V|,|V|是詞典的大小,不再是原來的0或1了,xi相當於單詞在詞典中的索引。這個輸入特徵的直觀理解就是把郵件內容的每個單詞用詞典中的序號替代了。根據樸素貝葉斯算法以及前面介紹過的多項式分佈,可以得到該模型的參數如下:
1. φ y = p(y)
2. φ i|y=1 = p(x j = i|y = 1)
3. φ i|y=0 = p(x j = i|y = 0)

爲了獲得參數,同樣的最大化參數的似然性


從中可以看到,每個參數的意義很清楚,比如φ k|y=1 就表示在所有樣本的垃圾郵件裏面,詞典序號爲k的單詞出現的次數除以所有垃圾郵件的單詞數目,也即詞典序號爲k的單詞所佔比例。

這裏舉一個例子,例子內容來自一個JerryLead的學習筆記,很詳細,這裏引用一下

假如新來一封郵件爲 b,c 那麼特徵表示爲{2,3}。要對它進行預測:


當然這個模型可以用Laplace平滑處理,得到如下:




神經網絡簡單介紹


這裏簡單的介紹了一下神經網絡,目的還是引出支持向量機。從邏輯迴歸開始,該模型實現分類是線性的,也就是能夠用一條直線去分隔兩個類別,如圖:

但是如果訓練樣本是這樣的:


線性分類器就沒有辦法處理了,神經網絡可以處理非線性分類問題,神經網絡的基本單位可以表示如下:


該圖可以等效的表達爲邏輯迴歸,只要令其中的H(θTX)爲邏輯迴歸函數即可,當有許多這樣的單元組成時,那麼這個網絡就可以處理非線性分類問題了,最後可以用最小平方的方式更新參數,不過與邏輯迴歸不同的是,神經網絡中並不是很容易達到全局最優值,很可能運用最小平方所得的結果是一個局部最優值





支持向量機(SVM 上)



兩種間隔(Margins)的直觀理解


爲了介紹函數間隔和幾何間隔的概念,先對兩種間隔直觀的進行介紹。從邏輯迴歸舉例,從邏輯函數中可以看到

當 h θ (x) ≥ 0.5 即  θ T x ≥ 0 時 我們認爲 y = 1,否則 y = 0
更加的,當 θ T x 遠大於 0時,我們更有把我確定 y = 1,當 θ T x 遠小於0時,我們更加有把握確定 y = 0。如果對於對訓練集中的樣本,我們都能夠得到θ T x遠大於0或者遠小於0,那麼該模型將表現的更好,因爲我們可以預測的更有把握,在下面要介紹的函數間隔就回達到這樣的目標。另外幾何間隔的一種直觀介紹如圖:

當距離分隔線越遠的點,我們更有把握預測它屬於哪一類,所以如果能儘可能使離分隔線近的點都遠離分割線,模型將表現的更好,這個目標通過要介紹的幾何間隔來實現。


一些新的符號


和原來不一樣,需要定義一些新的符號,現在假設 y ∈ {−1,1} ,原來的邏輯函數變爲:

其中w T x + b 是把原來的θ T x中的θ0單獨區分出來,即b,這樣x式子中的x就不包含x0了。另外這個函數當w T x + b>=0,則輸出爲1,否則輸出爲-1,有點類似感知器學習規則的定義,不再和邏輯迴歸一樣得到的輸出的是y=1的概率。


函數間隔和幾何間隔


函數間隔的形式定義如下:

我們可以看到如果y = 1的話,w T x + b越大於0越好,這樣我們更確信,此時整個式子也就越大。如果y = -1,w T x + b越小越好,即負的越大越好,這樣我們對負例更有確信,這個時候式子的值還是越大越好,所以無論是針對正例還是負例,整個式子越大越好,也就是函數間隔代表着特徵的輸出是正例還是負例的確信度。但是如果光是直接增大w,b,函數間隔可以無窮大,這樣並沒有達到效果。所以必須對w,b進行約束限制,比如用||w|| = 1。注意這裏||w|| 代表着w向量的長度,有時候會看到||w||2也是表示向量的模,更一般的表示:

當p = 2時,結果就是向量的模。上面是針對某一個樣本定義的函數間隔,對整個訓練集來說,函數間隔定義爲其中最小的:

再來看幾何間隔,用下圖來介紹


其中的γ (i)表示樣本訓練點A( x (i),y (i))到超平面的距離,幾何間隔也是指這個距離,現在需要求出這個距離。在上面的介紹中,很容易知道該平面的方程是w T x + b = 0,這裏的w表示該超平面的法向量,可以這樣去理解,以前學習過給定一個平面方程比如:Ax + By +Cz = 0的法向量是(A, B,C),那麼這裏w T x + b = 0將wx展開後,得到w1x1+w2x2+w3x3...這裏的x1,x2,x3就相當於x,y,z,只要順序將前面的係數挨着寫下來即(w1, w2,w3,w4...)T 則是該平面的法向量,即w。該法向量的單位向量即w/||w||。那麼向量BA就等於γ (i)w/||w||。所以B點可以表示爲: x (i) − γ (i) · w/||w||,B點在超平面上面,帶入w T x + b = 0,得到:


注意上面只是針對正樣本來推導的,如果是負樣本,最開始推導的法向量應該朝另一邊,我們用如下統一:


可以看到如果||w|| = 1, 則和函數間隔是一樣的它們的關係是幾何間隔 = 函數間隔/||w||,並且幾何間隔是不會隨w,b加倍而變化,可以這樣理解,使w,b變換任意相同倍數,並不會使超平面wTx + b = 0有任何變換。另外這是針對某一個樣本而言的幾何間隔,針對整個訓練集,如下定義幾何間隔:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章