机器学习笔记--常见算法(9)--support vector machine(SVM)(台大林轩田SVM)

本文深入探讨支持向量机(SVM),从线性SVM的引入、margin计算、优化方法,到非线性SVM的处理,最后详细阐述了拉格朗日对偶问题的构建、求解及其重要性质,揭示了SVM如何通过特征转换和优化策略平衡模型复杂度与泛化能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Liner Support Vector Machine

1.1 SVM引出

SVM是一种分类器。现在有两种类别(如下图),我们要找到一条直线,将两个不同的类别区分开。图中存在许多满足条件的直线,我们该选哪条最合适呢?
这里写图片描述
直观上来说,我们有几种考虑因素:①能容忍更多噪声,②模型更健壮,不会过拟合。
这个问题可以等价于:选择一条直线,判断该直线到最近的点的距离究竟是远还是近。我们希望这条直线更"fat"(如上图最后一条直线),也就是直线到最近的点的距离越远越好。

1.2 SVM中的margin计算

定义分类线有多胖,也就是看距离分类线最近的点与分类线的距离,我们把它用margin表示。
整体来说,我们的目标就是找到这样的分类线并满足下列条件:

  • 分类正确。能把所有正负类分开。即 y n ω T x n > 0 y_n\omega^Tx_n>0 ynωTxn>0
  • margin最大化
    这里写图片描述

有了上述条件,那么如何计算点到分类线的距离呢?

为了便于计算,做一个小小的改动,将 ω ( ω 0 , ω 1 , … , ω d ) \omega(\omega_0,\omega_1,…,\omega_d) ω(ω0,ω1,,ωd)中的 ω 0 \omega_0 ω0拿出,替换为b。同时省去 x 0 x_0 x0项。假设函数hypothesis就变成了 h ( x ) = s i g n ( ω T x + b ) h(x)=sign(\omega^Tx+b) h(x)=sign(ωTx+b)

那么,点到分类平面的距离公式为:(推导见视频)
d i s t a n c e ( x , b , w ) = ∣ ω T ∣ ∣ ω ∣ ∣ ( x − x ′ ) ∣ = 1 ∣ ∣ ω ∣ ∣ ∣ ω T x + b ∣ distance(x,b,w)=|\frac{\omega^T}{||\omega||}(x-x')|=\frac{1}{||\omega||}|\omega^Tx+b| distance(x,b,w)=ωωT(xx)=ω1ωTx+b

具体的求距离步骤:
①写出hyperplane ω 1 x 1 + ω 2 x 2 + . . . + ω d x d + b = 0 \omega_1x1+\omega_2x2+...+\omega_dxd+b=0 ω1x1+ω2x2+...+ωdxd+b=0的形式
②求 ∣ ∣ ω ∣ ∣ = ω 1 2 + ω 2 2 + . . . + ω d 2 ||\omega||=\sqrt{\omega_1^2+\omega_2^2+...+\omega_d^2} ω=ω12+ω22+...+ωd2
③将距hyperplane最近的点代入 ω T x = b \omega^Tx=b ωTx=b
④求③绝对值,代入距离公式计算最终结果

1.3 margin计算公式的简化

为了简化计算,做一个放缩,令距离分类面最近的点满足 y n ( w T x n + b ) = 1 y_n(w^Tx_n+b)=1 yn(wTxn+b)=1。那么我们所要求的margin就变成了:
m a r g i n ( b , w ) = 1 ∣ ∣ w ∣ ∣ margin(b,w)=\frac{1}{||w||} margin(b,w)=w1

目标形式简化为:
这里写图片描述
另外,最大化问题 m a x 1 ∣ ∣ w ∣ ∣ max\frac{1}{||w||} maxw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值