模式识别与机器学习-SVM(核方法)

SVM(核方法)

谨以此博客作为复习期间的记录

核方法

对解线性分类问题,线性分类支持向量机是一种非常有效的方法.但是,有时分类问题是非线性的,这时可以使用非线性支持向量机,核心思想是通过核方法将低维非线性可分数据转化为高维线性可分数据。

非线性问题往往不好求解,所以希望能用解线性分类问题的方法解决这个问题. 所采取的方法是进行一个非线性变换, 将非线性问题变换为线性问题, 通过解变换后的线性问题的方法求解原来的非线性问题. 对图 7.7 所示的例子,通过变换, 将左图中椭圆变换成右图中的直线, 将非线性分类问题变换为线性分类问题.

设原空间为 X ⊂ R 2 , x = ( x ( 1 ) , x ( 2 ) ) T ∈ X \mathcal{X} \subset \mathbf{R}^2, x=\left(x^{(1)}, x^{(2)}\right)^{\mathrm{T}} \in \mathcal{X} X⊂R2,x=(x(1),x(2))T∈X, 新空间为 Z ⊂ R 2 , z = ( z ( 1 ) , z ( 2 ) ) T ∈ Z \mathcal{Z} \subset \mathbf{R}^2, z=\left(z^{(1)}, z^{(2)}\right)^{\mathrm{T}} \in \mathcal{Z} Z⊂R2,z=(z(1),z(2))T∈Z,定义从原空间到新空间的变换 (映射):
z = ϕ ( x ) = ( ( x ( 1 ) ) 2 , ( x ( 2 ) ) 2 ) T z=\phi(x)=\left(\left(x^{(1)}\right)^2,\left(x^{(2)}\right)^2\right)^{\mathrm{T}} z=ϕ(x)=((x(1))2,(x(2))2)T

经过变换 z = ϕ ( x ) z=\phi(x) z=ϕ(x), 原空间 X ⊂ R 2 \mathcal{X} \subset \mathbf{R}^2 X⊂R2 变换为新空间 Z ⊂ R 2 \mathcal{Z} \subset \mathbf{R}^2 Z⊂R2, 原空间中的点相应地变换为新空间中的点,原空间中的椭圆
w 1 ( x ( 1 ) ) 2 + w 2 ( x ( 2 ) ) 2 + b = 0 w_1\left(x^{(1)}\right)^2+w_2\left(x^{(2)}\right)^2+b=0 w1(x(1))2+w2(x(2))2+b=0

变换成为新空间中的直线
w 1 z ( 1 ) + w 2 z ( 2 ) + b = 0 w_1 z^{(1)}+w_2 z^{(2)}+b=0 w1z(1)+w2z(2)+b=0

在变换后的新空间里,直线 w 1 z ( 1 ) + w 2 z ( 2 ) + b = 0 w_1 z^{(1)}+w_2 z^{(2)}+b=0 w1z(1)+w2z(2)+b=0 可以将变换后的正负实例点正确分开. 这样, 原空间的非线性可分问题就变成了新空间的线性可分问题.

核技巧在SVM中的应用

非线性支持向量机学习算法

输入: 训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\left\{\left(x_1, y_1\right),\left(x_2, y_2\right), \cdots,\left(x_N, y_N\right)\right\} T={(x1,y1),(x2,y2),⋯,(xN,yN)}, 其中 x i ∈ X = R n , y i ∈ x_i \in \mathcal{X}=\mathbf{R}^n, y_i \in xi∈X=Rn,yi∈ Y = { − 1 , + 1 } , i = 1 , 2 , ⋯   , N \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N Y={−1,+1},i=1,2,⋯,N;

输出: 分类决策函数.

(1)选取适当的核函数 K ( x , z ) K(x, z) K(x,z) 和适当的参数 C C C, 构造并求解最优化问题
min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i s.t. ∑ i = 1 N α i y i = 0 0 ⩽ α i ⩽ C , i = 1 , 2 , ⋯   , N \begin{array}{ll} \min \alpha & \frac{1}{2} \sum{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j K\left(x_i, x_j\right)-\sum_{i=1}^N \alpha_i \\ \text { s.t. } & \sum_{i=1}^N \alpha_i y_i=0 \\ & 0 \leqslant \alpha_i \leqslant C, \quad i=1,2, \cdots, N \end{array} minα s.t. 21∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαi∑i=1Nαiyi=00⩽αi⩽C,i=1,2,⋯,N

求得最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^*=\left(\alpha_1^*, \alpha_2^*, \cdots, \alpha_N^*\right)^{\mathrm{T}} α∗=(α1∗,α2∗,⋯,αN∗)T.

(2) 选择 α ∗ \alpha^* α∗ 的一个正分量 0 < α j ∗ < C 0<\alpha_j^*<C 0<αj∗<C, 计算
b ∗ = y j − ∑ i = 1 N α i ∗ y i K ( x i ⋅ x j ) b^*=y_j-\sum_{i=1}^N \alpha_i^* y_i K\left(x_i \cdot x_j\right) b∗=yj−i=1∑Nαi∗yiK(xi⋅xj)

(3)构造决策函数:
f ( x ) = sign ⁡ ( ∑ i = 1 N α i ∗ y i K ( x ⋅ x i ) + b ∗ ) f(x)=\operatorname{sign}\left(\sum_{i=1}^N \alpha_i^* y_i K\left(x \cdot x_i\right)+b^*\right) f(x)=sign(i=1∑Nαi∗yiK(x⋅xi)+b∗)

当 K ( x , z ) K(x, z) K(x,z) 是正定核函数时, 问题、 是凸二次规划问题, 解是存在的.

相关推荐
NAGNIP6 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab7 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab7 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP11 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年11 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼11 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS11 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区13 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈13 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang13 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx