1. 程式人生 > >演算法工程師修仙之路:吳恩達機器學習(十五)

演算法工程師修仙之路:吳恩達機器學習(十五)

吳恩達機器學習筆記及作業程式碼實現中文版

第十章 支援向量機


大間隔分類器的數學原理

  • 假設我有兩個二維向量 u u v v

    u T v u^Tv 也叫做向量 u
    u
    v v 之間的內積。

    • 向量 u u
      在橫軸上取值為某個 u 1 u_1 ,而在縱軸上,高度是某個 u 2 u_2 作為 u u 的第二個分量。
    • u ∥u∥ 表示 u u 的範數,即 u u 的長度,即向量 u u 的歐幾里得長度。 u = u 1 2 + u 2 2 ∥u∥=\sqrt{u_1^2+u_2^2} ,這是向量 u u 的長度,它是一個實數。
    • 現在讓我們回頭來看向量 v v v v 是另一個向量,它的兩個分量 v 1 v_1 v 2 v_2 是已知的。
    • 我們將向量 v v 做一個直角投影到向量 u u 上,接下來度量投影的長度 p p ,或
      者說是向量 v v 投影到向量 u u 上的量,因此可以將 u T v = p u u^Tv=p*∥u∥
    • 另一個計算公式是: u T v u^Tv 就是 [ u 1 , u 2 ] [u_1, u_2] 這個一行兩列的矩陣乘以 v v 。因此可以得到 u 1 v 1 + u 2 v 2 u_1*v_1+u_2*v_2
    • u T v = v T u u^Tv=v^Tu ,因此如果你將 u u v v 交換位置,將 u u 投影到 v v 上,而不是將 v v 投影到 u u 上,然後做同樣地計算,事實上可以得到同樣的結果。
    • p p 事實上是有符號的,即它可能是正值,也可能是負值。
    • 在內積計算中,如果 u u v v 之間的夾角小於 90 度,那麼 p p 是正值。然而如果這個夾角大於 90度,則 p p 將會是負的,兩個向量之間的內積也是負的。
      在這裡插入圖片描述
  • 支援向量機模型中的目標函式:
    在這裡插入圖片描述

    • 接下來忽略掉截距,令 θ 0 = 0 \theta_0 = 0 ,這樣更容易畫示意圖。我將特徵數n置為2,因此我們僅有兩個特徵 x 1 , x 2 x_1, x_2 ,當我們僅有兩個特徵時,這個式子可以寫作: 1 2 ( θ 1 2 + θ 2 2 ) = 1 2 ( θ 1 2 + θ 2 2 ) 2 \frac{1}{2}(\theta_1^2+\theta_2^2)=\frac{1}{2}(\sqrt{\theta_1^2+\theta_2^2})^2 。括號裡面的這一項是向量 θ \theta 的範數,或者說是向量 θ \theta 的長度。
    • 因此支援向量機做的全部事情,就是極小化引數向量 θ \theta 範數的平方,或者說長度的平方。
      在這裡插入圖片描述
    • 我們考察一個單一的訓練樣本,我有用一個叉來表示一個正樣本 x ( i ) x^{(i)} ,意思是在水平軸上取值為 x 1 ( i ) x_1^{(i)} ,在豎直軸上取值為 x 2 ( i ) x_2^{(i)}
      在這裡插入圖片描述
    • 我們計算的方式就是將訓練樣本投影到引數向量 θ \theta ,然後我來看一看這個線段的長度,我將它畫成紅色。我將它稱為 p ( i ) p^{(i)} 用來表示這是第 i i 個訓練樣本在引數向量 θ \theta 上的投影。
    • θ T x ( i ) \theta^Tx^{(i)} 將會等於 p p 乘以向量 θ \theta 的長度或範數,即 θ 1 x 1 ( i ) + θ 2 x 2 (