Svm

支持向量機中的支持向量是什麼?

  • November 14, 2017

我知道支持向量機是如何工作的,但由於某種原因,我總是對支持向量到底是什麼感到困惑。

在線性可分數據的情況下,支持向量是那些(完全)位於邊緣邊界上的數據點。這些是計算邊際所需的唯一點(通過偏置項).

然而,對於 C-SVM,我總是對支持向量到底是什麼感到困惑。顯然,邊緣邊界上的數據點仍然是支持向量,但我總是對邊緣中的點是否是支持向量感到困惑。畢竟,只有確切的邊界用於計算偏差項(與線性可分情況相同),因此可以說邊距僅由這些點支持。

但是,我確實覺得這是不正確的,因為我在這裡發現了多個 問題,其中提到了 1000 多個支持向量,如果僅計算邊界上的支持向量,這是不可能的。因此,我的問題是 SVM 的支持向量到底是什麼,以及我如何記住這一點。

簡短的回答

支持向量是那些拉格朗日乘數不為零的點(不僅僅是 $ b $ 在支持向量機中)。

長答案

硬保證金

對於一個簡單的硬邊距 SVM,我們必須解決以下最小化問題:

$$ \min_{\boldsymbol{w}, b} \frac{1}{2} |\boldsymbol{w}|^2 $$ 受制於 $$ \forall i : y_i (\boldsymbol{w} \cdot \boldsymbol{x}_i + b) - 1 \geq 0 $$

可以在拉格朗日乘數的幫助下找到解決方案 $ \alpha_i $ . 在最小化拉格朗日函數的過程中,可以發現$$ \boldsymbol{w} = \sum_i \alpha_i y_i \boldsymbol{x}_i. $$所以, $ \boldsymbol{w} $ 只取決於那些樣本 $ \alpha_i \neq 0 $ .

此外,Karush-Kuhn-Tucker 條件要求解滿足 $$ \alpha_i (y_i (\boldsymbol{w} \cdot \boldsymbol{x}_i + b) - 1) = 0. $$ 為了計算 $ b $ , 樣本的約束 $ i $ 必須緊,即 $ \alpha_i > 0 $ , 以便 $ y_i (\boldsymbol{w} \cdot \boldsymbol{x}_i + b) - 1 = 0 $ . 因此, $ b $ 僅取決於那些樣本 $ \alpha_i > 0 $ .

因此,我們可以得出結論,解決方案取決於所有樣本 $ \alpha_i > 0 $ .

軟邊距

對於 C-SVM,它似乎被稱為soft-margin SVM,最小化問題由下式給出:

$$ \min_{\boldsymbol{w}, b} \frac{1}{2} |\boldsymbol{w}|^2 + C \sum_i \xi_i $$ 受制於 $$ \forall i : \begin{aligned}y_i (\boldsymbol{w} \cdot \boldsymbol{x}_i + b) - 1 + \xi_i & \geq 0 \ \xi_i &\geq 0\end{aligned} $$

使用拉格朗日乘數 $ \alpha_i $ 和 $ \lambda_i = (C - \alpha_i) $ ,權重(再次)由下式給出$$ \boldsymbol{w} = \sum_i \alpha_i y_i \boldsymbol{x}_i, $$ 因此 $ \boldsymbol{w} $ 確實僅取決於樣本 $ \alpha_i \neq 0 $ .

由於 Karush-Kuhn-Tucker 條件,解必須滿足

$$ \begin{align} \alpha_i (y_i (\boldsymbol{w} \cdot \boldsymbol{x}_i + b) - 1 + \xi_i) & = 0 \ (C - \alpha_i) \xi_i & = 0, \end{align} $$

這允許計算 $ b $ 如果 $ \alpha_i > 0 $ 和 $ \xi_i = 0 $ . 如果兩個約束都很緊,即 $ \alpha_i < C $ , $ \xi_i $ 必須為零。所以, $ b $ 取決於那些樣本 $ 0 < \alpha_i < C $ .

因此,我們可以得出結論,解決方案取決於所有樣本 $ \alpha_i > 0 $ . 畢竟, $ \boldsymbol{w} $ 仍然取決於那些樣本 $ \alpha_i = C $ .

引用自:https://stats.stackexchange.com/questions/313660

comments powered by Disqus

相關問答