第三章线性判别函数(二)

文章目录


一、基于梯度的方法

梯度概念

设函数 f ( Y ) f(Y) f(Y) 是向量 Y = [ y 1 , y 2 , ... , y n ] T Y = [y_1, y_2, \dots, y_n]^T Y=[y1,y2,...,yn]T 的函数,则 f ( Y ) f(Y) f(Y) 的梯度定义为:

∇ f ( Y ) = d d Y f ( Y ) = [ ∂ f ∂ y 1 , ∂ f ∂ y 2 , ... , ∂ f ∂ y n ] T \nabla f(Y) = \frac{d}{dY} f(Y) = \begin{bmatrix} \frac{\partial f}{\partial y_1}, \frac{\partial f}{\partial y_2}, \dots, \frac{\partial f}{\partial y_n} \end{bmatrix}^T ∇f(Y)=dYdf(Y)=[∂y1∂f,∂y2∂f,...,∂yn∂f]T

梯度向量的重要性质之一:指出函数 f ( Y ) f(Y) f(Y) 在其自变量增加时,增长最快的方向。即:

  • 梯度的方向 是函数 f ( Y ) f(Y) f(Y) 在 Y Y Y 点增长最快的方向,
  • 梯度的 是 f ( Y ) f(Y) f(Y) 在增长最快的方向上的增长率(增长率最大值)。

显然:负梯度指向了最快下降方向 。------梯度算法的依据。
判断函数: 设两个线性可分的模式类别 ω 1 \omega_1 ω1 和 ω 2 \omega_2 ω2 的样本共有 N N N 个,将两类样本分开的判别函数 d ( X ) d(X) d(X) 应满足:

d ( X i ) = W T X i > 0 , i = 1 , 2 , ... , N d(X_i) = W^T X_i > 0, \quad i = 1, 2, \dots, N d(Xi)=WTXi>0,i=1,2,...,N

即 N N N 个不等式。梯度算法的目的是求一个满足上述条件的权向量,主导思想是将联立不等式求解 W W W 的问题,转换成求准则函数极小值的问题 。用负梯度方向的值对权向量 W W W 进行修正,实现使准则函数达到极小值的目的。

基本思路:

定义一个对错误分类敏感的准则函数 J ( W , X ) J(W, X) J(W,X),在 J J J 的梯度方向上对权向量进行修正。一般关系表示成从 W ( k ) W^{(k)} W(k) 导出 W ( k + 1 ) W^{(k+1)} W(k+1):

W ( k + 1 ) = W ( k ) + c ( − ∇ J ) = W ( k ) − c ∇ J W(k+1) = W(k) + c(-\nabla J) = W(k) - c\nabla J W(k+1)=W(k)+c(−∇J)=W(k)−c∇J

即:

W ( k + 1 ) = W ( k ) − c [ ∂ J ( W , X ) ∂ W ] W = W ( k ) W(k+1) = W(k) - c \left[\frac{\partial J(W, X)}{\partial W}\right]_{W=W^{(k)}} W(k+1)=W(k)−c[∂W∂J(W,X)]W=W(k)

其中 c c c 是正的比例因子。


梯度法求解步骤:

  1. 将样本写成规范化增广向量形式,选择准则函数,设置初始权向量 W ( 1 ) W(1) W(1),括号内为迭代次数 k = 1 k=1 k=1。

  2. 依次输入训练样本 X X X。设第 k k k 次迭代时输入样本为 X i X_i Xi,此时已有权向量 W ( k ) W(k) W(k),求 ∇ J ( k ) \nabla J(k) ∇J(k):

∇ J ( k ) = ∂ J ( W , X i ) ∂ W \nabla J(k) = \frac{\partial J(W, X_i)}{\partial W} ∇J(k)=∂W∂J(W,Xi)

权向量修正为:

W ( k + 1 ) = W ( k ) − c ∇ J ( k ) W(k+1) = W(k) - c\nabla J(k) W(k+1)=W(k)−c∇J(k)

迭代次数加 1,输入下一个训练样本,计算新的权向量,直至对全部训练样本完成一轮迭代。

  1. 在一轮迭代中,如果有一个样本使 ∇ J ≠ 0 \nabla J \neq 0 ∇J=0,回到步骤 2 进行下一轮迭代。否则, W W W 不再变化,算法收敛。

例: 选择准则函数, J ( W , X ) = ∣ W T X ∣ − W T X J(W, X) = |W^T X| - W^T X J(W,X)=∣WTX∣−WTX,简单地考虑 X X X 为一维增广模式的情况 X = 1 X=1 X=1,此时 W = w W = w W=w,两者均为标量,

J ( W , X ) = ∣ w ∣ − w J(W, X) = |w| - w J(W,X)=∣w∣−w

错误分类时:

W T X < 0 ⇒ w ⋅ 1 < 0 ⇒ w < 0 W^T X < 0 \Rightarrow w \cdot 1 < 0 \Rightarrow w < 0 WTX<0⇒w⋅1<0⇒w<0

∇ J = ∂ J ( W , X ) ∂ W = ∂ ( ∣ w ∣ − w ) ∂ w = 2 w \nabla J = \frac{\partial J(W, X)}{\partial W} = \frac{\partial (|w| - w)}{\partial w} = 2w ∇J=∂W∂J(W,X)=∂w∂(∣w∣−w)=2w

W ( k + 1 ) = W ( k ) − c ⋅ ( − 2 ) = W ( k ) + 2 c W(k+1) = W(k) - c \cdot (-2) = W(k) + 2c W(k+1)=W(k)−c⋅(−2)=W(k)+2c

正确分类时:

W T X > 0 ⇒ w ⋅ 1 > 0 ⇒ w > 0 W^T X > 0 \Rightarrow w \cdot 1 > 0 \Rightarrow w > 0 WTX>0⇒w⋅1>0⇒w>0

∇ J = ∂ J ( W , X ) ∂ W = 0 \nabla J = \frac{\partial J(W, X)}{\partial W} = 0 ∇J=∂W∂J(W,X)=0

W ( k + 1 ) = W ( k ) W(k+1) = W(k) W(k+1)=W(k)
梯度下降法中的注意点

a) 权向量更新公式

权向量的更新公式为:

W ( k + 1 ) = W ( k ) − c ∇ J = W ( k ) − c [ ∂ J ( W , X ) ∂ W ] W = W ( k ) W(k+1) = W(k) - c \nabla J = W(k) - c \left[ \frac{\partial J(W, X)}{\partial W} \right]_{W=W(k)} W(k+1)=W(k)−c∇J=W(k)−c[∂W∂J(W,X)]W=W(k)

随着权向量 W W W 向理论值接近,准则函数关于 W W W 的导数( ∇ J \nabla J ∇J)越来越接近于零。这意味着准则函数 J J J 越来越接近最小值。当最终 ∇ J = 0 \nabla J = 0 ∇J=0 时, J J J 达到最小值,此时 W W W 不再改变,算法收敛。

核心思想: 将感知器算法中联立不等式求解 W W W 的问题,转换为求函数 J J J 极小值的问题。

b) 比例因子 c c c 的选择

比例因子 c c c 的选取非常重要:

  • 如果 c c c 值太小,收敛速度会非常慢;
  • 如果 c c c 值太大,可能导致搜索过程震荡,甚至引起发散。

因此需要对 c c c 进行适当的选择,确保算法稳定高效。

c) 梯度下降法的通用性

梯度算法是求解权向量的通用解法 ,具体计算形式取决于准则函数 J ( W , X ) J(W, X) J(W,X) 的选择。根据 J ( W , X ) J(W, X) J(W,X) 的形式不同,得到的具体算法也不同。

二、均方误差最小算法

回顾:收敛问题分析

在感知器算法、梯度算法、固定增量算法或其他类似方法中,仅当模式类可分离时才能收敛。在不可分的情况下,算法可能出现以下问题:

  1. 算法回摆动,始终不收敛;
  2. 一次次迭代后依然不见收敛。
    原因:
  • a) 迭代过程本身收敛缓慢;
  • b) 模式本身不可分。

LMSE 算法特点

  • 对可分模式收敛。
  • 对于类别不可分的情况,也能指出问题所在。

两类分类问题的线性不等式解

假设给出两类模式 ω 1 \omega_1 ω1 和 ω 2 \omega_2 ω2 的训练样本集 { X i , i = 1 , 2 , ... , N } \{X_i, i = 1, 2, \dots, N\} {Xi,i=1,2,...,N},需要满足以下线性不等式:

W T X i > 0 , i = 1 , 2 , ... , N W^T X_i > 0, \quad i = 1, 2, \dots, N WTXi>0,i=1,2,...,N

其中, X i X_i Xi 为归一化增广样本向量,定义为:
X i = [ x i 1 , x i 2 , ... , x i n , 1 ] T X_i = [x_{i1}, x_{i2}, \dots, x_{in}, 1]^T Xi=[xi1,xi2,...,xin,1]T

展开形式

将上述不等式展开,可表示为:
ω 1   类: { w 1 x 11 + w 2 x 12 + ⋯ + w n x 1 n + w n + 1 > 0 对 X 1 w 1 x 21 + w 2 x 22 + ⋯ + w n x 2 n + w n + 1 > 0 对 X 2 ⋮ ω 2   类: − w 1 x N 1 − w 2 x N 2 − ⋯ − w n x N n − w n + 1 > 0 对 X N \omega_1 \, \text{类:} \quad \begin{cases} w_1 x_{11} + w_2 x_{12} + \cdots + w_n x_{1n} + w_{n+1} > 0 & \text{对 } X_1 \\ w_1 x_{21} + w_2 x_{22} + \cdots + w_n x_{2n} + w_{n+1} > 0 & \text{对 } X_2 \\ \vdots & \\ \omega_2 \, \text{类:} \quad -w_1 x_{N1} - w_2 x_{N2} - \cdots - w_n x_{Nn} - w_{n+1} > 0 & \text{对 } X_N \end{cases} ω1类:⎩ ⎨ ⎧w1x11+w2x12+⋯+wnx1n+wn+1>0w1x21+w2x22+⋯+wnx2n+wn+1>0⋮ω2类:−w1xN1−w2xN2−⋯−wnxNn−wn+1>0对 X1对 X2对 XN

将线性不等式组表示为矩阵形式:令 N × ( n + 1 ) N \times (n+1) N×(n+1) 的长方矩阵为 X X X,则 W T X i > 0 W^T X_i > 0 WTXi>0 转化为:
X W > 0 XW > 0 XW>0

式中定义:

X = [ X 1 T X 2 T ⋮ X i T − X N − 1 T − X N T ] N × ( n + 1 ) X = \begin{bmatrix} X_1^T \\ X_2^T \\ \vdots \\ X_i^T \\ \hline -X_{N-1}^T \\ -X_N^T \end{bmatrix}_{N \times (n+1)} X= X1TX2T⋮XiT−XN−1T−XNT N×(n+1)

W = [ w 1 , w 2 , ⋯   , w n , w n + 1 ] T W = [w_1, w_2, \cdots, w_n, w_{n+1}]^T W=[w1,w2,⋯,wn,wn+1]T

感知器算法通过求解不等式组 X W > 0 XW > 0 XW>0 来确定权向量 W W W。

其中:

  • X 1 , X 2 , ⋯   , X i ∈ ω 1 X_1, X_2, \cdots, X_i \in \omega_1 X1,X2,⋯,Xi∈ω1 表示第一类样本,
  • X N − 1 , X N ∈ ω 2 X_{N-1}, X_N \in \omega_2 XN−1,XN∈ω2 表示第二类样本取负后包含在矩阵中,
  • 0 0 0 为零向量。

LMSE算法把对满足 X W > 0 XW > 0 XW>0 的求解,改为满足的求解。式中:

X W = B XW = B XW=B

B = [ b 1 , b 2 , ⋯   , b i , ⋯   , b N ] T B = [b_1, b_2, \cdots, b_i, \cdots, b_N]^T B=[b1,b2,⋯,bi,⋯,bN]T

为各分量均为正值的矢量。

说明:

  1. 在方程组中当行数 > > >> >> 列数时,通常无解,称为矛盾方程组 ,一般求近似解 。在模式识别中,通常训练样本数 N N N 总是大于模式的维数 n n n,因此方程的个数(行数) > > >> >> 模式向量的维数(列数),是矛盾方程组,只能求近似解 W ∗ W^* W∗,即

∥ X W ∗ − B ∥ = 极小 \| XW^* - B \| = 极小 ∥XW∗−B∥=极小

  1. LMSE算法的出发点:选择一个准则函数,使得当达到最小值时, X W = B XW = B XW=B 可得到近似解(最小二乘近似解)。

准则函数定义为:

J ( W , X , B ) = 1 2 ∥ X W − B ∥ 2 J(W, X, B) = \frac{1}{2} \| XW - B \|^2 J(W,X,B)=21∥XW−B∥2

3. LMSE算法的思路

  • 对 X W > 0 XW > 0 XW>0 求解
    转化为
  • 对 X W = B XW = B XW=B 求解
    转化为
  • 通过求准则函数极小值找 W , B W, B W,B

2. LMSE算法的出发点:

选择一个准则函数,使得当达到最小值时, X W = B XW = B XW=B 可得到近似解(最小二乘近似解)

准则函数定义为:
J ( W , X , B ) = 1 2 ∥ X W − B ∥ 2 J(W, X, B) = \frac{1}{2} \| XW - B \|^2 J(W,X,B)=21∥XW−B∥2


3. LMSE算法的思路:

  • 对 X W > 0 XW > 0 XW>0 求解
    转化为
  • 对 X W = B XW = B XW=B 求解
    转化为
  • 通过求准则函数极小值找 W , B W, B W,B

考察向量 X W − B XW - B XW−B 有:


∥ X W − B ∥ 2 = ( 向量各分量的平方和 ) = 向量各分量的平方和 \|XW - B\|^2 = (\text{向量各分量的平方和}) = \text{向量各分量的平方和} ∥XW−B∥2=(向量各分量的平方和)=向量各分量的平方和

即:

∥ X W − B ∥ 2 = ( W T X 1 − b 1 ) 2 + ⋯ + ( W T X N − b N ) 2 = ∑ i = 1 N ( W T X i − b i ) 2 \|XW - B\|^2 = (W^T X_1 - b_1)^2 + \cdots + (W^T X_N - b_N)^2 = \sum_{i=1}^N (W^T X_i - b_i)^2 ∥XW−B∥2=(WTX1−b1)2+⋯+(WTXN−bN)2=i=1∑N(WTXi−bi)2

准则函数

J ( W , X , B ) = 1 2 ∥ X W − B ∥ 2 = 1 2 ∑ i = 1 N ( W T X i − b i ) 2 J(W, X, B) = \frac{1}{2} \|XW - B\|^2 = \frac{1}{2} \sum_{i=1}^N \left( W^T X_i - b_i \right)^2 J(W,X,B)=21∥XW−B∥2=21i=1∑N(WTXi−bi)2

X W = B XW = B XW=B 的近似解也称 "最优近似解":

------ 使方程组两边所有误差之和最小(即最优)的解。

可以看出:

  1. 当函数处到最小值,等式 X W = B XW = B XW=B 有最优解。即又将问题转化为求准则函数极小值的问题。
  2. 因为有两个变量 W W W 和 B B B,有更多的自由度供选择求解,故可望改善算法的收敛速率。

与问题相关的两个梯度

对 W W W 的梯度:
∂ J ∂ W = X T ( X W − B ) \frac{\partial J}{\partial W} = X^T (XW - B) ∂W∂J=XT(XW−B)

对 B B B 的梯度:
∂ J ∂ B = − 1 2 [ ( X W − B ) + X W − B ] \frac{\partial J}{\partial B} = - \frac{1}{2} [(XW - B) + XW - B] ∂B∂J=−21[(XW−B)+XW−B]


(1) 求 W W W 的递推关系

设梯度为 0,即:
∂ J ∂ W = 0 \frac{\partial J}{\partial W} = 0 ∂W∂J=0

则:
X T ( X W − B ) = 0    ⟹    X T X W = X T B X^T (XW - B) = 0 \implies X^T X W = X^T B XT(XW−B)=0⟹XTXW=XTB

因此:
W = ( X T X ) − 1 X T B = X # B W = (X^T X)^{-1} X^T B = X^\# B W=(XTX)−1XTB=X#B

其中:

  • X # = ( X T X ) − 1 X T X^\# = (X^T X)^{-1} X^T X#=(XTX)−1XT 称为 X X X 的伪逆;
  • X X X 为 N × ( n + 1 ) N \times (n+1) N×(n+1) 长方阵, X # X^\# X# 为 ( n + 1 ) × N (n+1) \times N (n+1)×N 长方阵。

(2) 求 B ( k + 1 ) B^{(k+1)} B(k+1) 的迭代公式

根据梯度算法公式:
W ( k + 1 ) = W ( k ) − c [ ∂ J ( W , X ) ∂ W ] W = W ( k ) W^{(k+1)} = W^{(k)} - c \left[\frac{\partial J(W, X)}{\partial W}\right]_{W=W^{(k)}} W(k+1)=W(k)−c[∂W∂J(W,X)]W=W(k)

利用梯度算法对应到 B B B 的公式:
B ( k + 1 ) = B ( k ) − c ′ [ ∂ J ∂ B ] B = B ( k ) B^{(k+1)} = B^{(k)} - c' \left[\frac{\partial J}{\partial B}\right]_{B=B^{(k)}} B(k+1)=B(k)−c′[∂B∂J]B=B(k)

代入公式 (3-46),得:
B ( k + 1 ) = B ( k ) + c ′ 2 [ ( X W ( k ) − B ( k ) ) + ∣ X W ( k ) − B ( k ) ∣ ] B^{(k+1)} = B^{(k)} + \frac{c'}{2} \left[(XW^{(k)} - B^{(k)}) + |XW^{(k)} - B^{(k)}|\right] B(k+1)=B(k)+2c′[(XW(k)−B(k))+∣XW(k)−B(k)∣]

令 c ′ 2 = c \frac{c'}{2} = c 2c′=c,定义:
X W ( k ) − B ( k ) = e ( k ) (3-49) XW^{(k)} - B^{(k)} = e^{(k)} \tag{3-49} XW(k)−B(k)=e(k)(3-49)

最终迭代公式为:
B ( k + 1 ) = B ( k ) + c [ e ( k ) + ∣ e ( k ) ∣ ] (3-50) B^{(k+1)} = B^{(k)} + c \left[e^{(k)} + |e^{(k)}|\right] \tag{3-50} B(k+1)=B(k)+c[e(k)+∣e(k)∣](3-50)
(3) 求 W ( k + 1 ) W^{(k+1)} W(k+1) 的迭代式

由 W ( k + 1 ) = X # B ( k + 1 ) W^{(k+1)} = X^\# B^{(k+1)} W(k+1)=X#B(k+1),代入公式 (3-50) 得:
W ( k + 1 ) = X # { B ( k ) + c [ e ( k ) + e ( k ) ] } W^{(k+1)} = X^\# \left\{B^{(k)} + c \left[e^{(k)} + e^{(k)}\right]\right\} W(k+1)=X#{B(k)+c[e(k)+e(k)]}

化简后:
W ( k + 1 ) = W ( k ) + c X # e ( k ) W^{(k+1)} = W^{(k)} + c X^\# e^{(k)} W(k+1)=W(k)+cX#e(k)

结合以下公式:
B ( k + 1 ) = B ( k ) + c [ e ( k ) + e ( k ) ] (3-50) B^{(k+1)} = B^{(k)} + c \left[e^{(k)} + e^{(k)}\right] \tag{3-50} B(k+1)=B(k)+c[e(k)+e(k)](3-50)

X W ( k ) − B ( k ) = e ( k ) (3-49) XW^{(k)} - B^{(k)} = e^{(k)} \tag{3-49} XW(k)−B(k)=e(k)(3-49)

最终得出 W ( k + 1 ) W^{(k+1)} W(k+1) 的迭代公式。

总结:

设初值 B ( 1 ) B(1) B(1),各分量均为正值,括号中数字代表迭代次数。

W ( 1 ) = X # B ( 1 ) W(1) = X^{\#} B(1) W(1)=X#B(1)

e ( k ) = X W ( k ) − B ( k ) e^{(k)} = XW^{(k)} - B^{(k)} e(k)=XW(k)−B(k)

W ( k + 1 ) = W ( k ) + c X # e ( k ) W^{(k+1)} = W^{(k)} + c X^{\#} e^{(k)} W(k+1)=W(k)+cX#e(k)

B ( k + 1 ) = B ( k ) + c [ e ( k ) + e ( k ) ] B^{(k+1)} = B^{(k)} + c \left[e^{(k)} + e^{(k)}\right] B(k+1)=B(k)+c[e(k)+e(k)]

W ( k + 1 ) W^{(k+1)} W(k+1)、 B ( k + 1 ) B^{(k+1)} B(k+1) 互相独立,先后次序无关。

收敛性证明:

可以证明:当模式类线性可分,且校正系数 c c c 满足 0 < c ≤ 1 0 < c \leq 1 0<c≤1 时,该算法收敛,可求得解 W W W。

理论上不能证明该算法到底需要迭代多少步才能达到收敛,通常在每次迭代计算后检查一下 X W ( k ) XW^{(k)} XW(k) 和误差向量 e ( k ) e^{(k)} e(k),从而可以判断是否已收敛。

  1. 如果 e ( k ) = 0 e^{(k)} = 0 e(k)=0,表明 X W ( k ) = B ( k ) > 0 XW^{(k)} = B^{(k)} > 0 XW(k)=B(k)>0,有解。

  2. 如果 e ( k ) > 0 e^{(k)} > 0 e(k)>0,表明 X W ( k ) > B ( k ) > 0 XW^{(k)} > B^{(k)} > 0 XW(k)>B(k)>0,隐含有解。继续迭代,可使 e ( k ) → 0 e^{(k)} \to 0 e(k)→0。

  3. 如果 e ( k ) < 0 e^{(k)} < 0 e(k)<0(所有分量为负数或零,但不全为零),停止迭代,无解。此时若继续迭代,数据不再发生变化。

三、支持向量机 (SVM)

1. 算法原理

支持向量机(Support Vector Machine, SVM)是一种用于分类和回归的监督学习算法,其主要目标是寻找一个超平面将不同类别的数据分开,同时最大化分类间隔(margin)。

(1) 问题描述

给定一个训练数据集:

D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ... , ( x N , y N ) } D = \{(x_1, y_1), (x_2, y_2), \dots, (x_N, y_N)\} D={(x1,y1),(x2,y2),...,(xN,yN)}

其中, x i ∈ R n x_i \in \mathbb{R}^n xi∈Rn 是特征向量, y i ∈ { − 1 , + 1 } y_i \in \{-1, +1\} yi∈{−1,+1} 是类别标签。

目标是找到一个超平面:
w T x + b = 0 w^T x + b = 0 wTx+b=0

使得超平面最大化分类间隔,并满足:

y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ... , N y_i (w^T x_i + b) \geq 1, \quad i = 1, 2, \dots, N yi(wTxi+b)≥1,i=1,2,...,N

其中, w w w 是超平面的法向量, b b b 是偏置。

(2) 优化问题

最大化分类间隔等价于最小化 w w w 的范数。优化问题可表示为:

原始问题:
min ⁡ w , b 1 2 ∥ w ∥ 2 \min_{w, b} \frac{1}{2} \|w\|^2 w,bmin21∥w∥2

约束条件:
y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ... , N y_i (w^T x_i + b) \geq 1, \quad i = 1, 2, \dots, N yi(wTxi+b)≥1,i=1,2,...,N

对偶问题:

通过拉格朗日乘子法,将问题转化为对偶形式:
max ⁡ α ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j \max_{\alpha} \sum_{i=1}^N \alpha_i - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i^T x_j αmaxi=1∑Nαi−21i=1∑Nj=1∑NαiαjyiyjxiTxj

约束条件:
∑ i = 1 N α i y i = 0 , α i ≥ 0 , i = 1 , 2 , ... , N \sum_{i=1}^N \alpha_i y_i = 0, \quad \alpha_i \geq 0, \quad i = 1, 2, \dots, N i=1∑Nαiyi=0,αi≥0,i=1,2,...,N

(3) 核方法(非线性分类)

若数据不可线性分离,可以通过核函数将数据映射到高维空间。常用的核函数包括:

  1. 线性核: K ( x i , x j ) = x i T x j K(x_i, x_j) = x_i^T x_j K(xi,xj)=xiTxj
  2. 多项式核: K ( x i , x j ) = ( x i T x j + c ) d K(x_i, x_j) = (x_i^T x_j + c)^d K(xi,xj)=(xiTxj+c)d
  3. 高斯核(RBF): K ( x i , x j ) = exp ⁡ ( − ∥ x i − x j ∥ 2 2 σ 2 ) K(x_i, x_j) = \exp\left(-\frac{\|x_i - x_j\|^2}{2\sigma^2}\right) K(xi,xj)=exp(−2σ2∥xi−xj∥2)

通过核函数,优化问题中的 x i T x j x_i^T x_j xiTxj 替换为 K ( x i , x j ) K(x_i, x_j) K(xi,xj)。


示例

假设训练数据为:
D = { ( x 1 = [ 2 , 3 ] , y 1 = 1 ) , ( x 2 = [ 1 , 1 ] , y 2 = − 1 ) } D = \{(x_1 = [2, 3], y_1 = 1), (x_2 = [1, 1], y_2 = -1)\} D={(x1=[2,3],y1=1),(x2=[1,1],y2=−1)}

(1) 构造优化问题

超平面形式:
w T x + b = 0 w^T x + b = 0 wTx+b=0

优化目标:
min ⁡ w , b 1 2 ∥ w ∥ 2 \min_{w, b} \frac{1}{2} \|w\|^2 w,bmin21∥w∥2

约束条件:
y 1 ( w T x 1 + b ) ≥ 1 , y 2 ( w T x 2 + b ) ≥ 1 y_1 (w^T x_1 + b) \geq 1, \quad y_2 (w^T x_2 + b) \geq 1 y1(wTx1+b)≥1,y2(wTx2+b)≥1

替换数据:
1 ⋅ ( ( w 1 ⋅ 2 + w 2 ⋅ 3 ) + b ) ≥ 1 1 \cdot ((w_1 \cdot 2 + w_2 \cdot 3) + b) \geq 1 1⋅((w1⋅2+w2⋅3)+b)≥1
− 1 ⋅ ( ( w 1 ⋅ 1 + w 2 ⋅ 1 ) + b ) ≥ 1 -1 \cdot ((w_1 \cdot 1 + w_2 \cdot 1) + b) \geq 1 −1⋅((w1⋅1+w2⋅1)+b)≥1

约束变为:
2 w 1 + 3 w 2 + b ≥ 1 2w_1 + 3w_2 + b \geq 1 2w1+3w2+b≥1
− w 1 − w 2 − b ≥ 1 -w_1 - w_2 - b \geq 1 −w1−w2−b≥1

(2) 对偶问题

通过求解对偶问题,计算拉格朗日乘子 α i \alpha_i αi,得到解:
w = [ 0.4 , 0.6 ] , b = − 1.2 w = [0.4, 0.6], \quad b = -1.2 w=[0.4,0.6],b=−1.2

(3) 分类决策

分类决策函数:
f ( x ) = sign ( w T x + b ) f(x) = \text{sign}(w^T x + b) f(x)=sign(wTx+b)

对新数据点 x = [ 3 , 4 ] x = [3, 4] x=[3,4] 进行分类:
f ( x ) = sign ( [ 0.4 , 0.6 ] T [ 3 , 4 ] − 1.2 ) f(x) = \text{sign}([0.4, 0.6]^T [3, 4] - 1.2) f(x)=sign([0.4,0.6]T[3,4]−1.2)
f ( x ) = sign ( 0.4 ⋅ 3 + 0.6 ⋅ 4 − 1.2 ) = sign ( 3.6 ) = + 1 f(x) = \text{sign}(0.4 \cdot 3 + 0.6 \cdot 4 - 1.2) = \text{sign}(3.6) = +1 f(x)=sign(0.4⋅3+0.6⋅4−1.2)=sign(3.6)=+1

因此, x = [ 3 , 4 ] x = [3, 4] x=[3,4] 的分类结果为正类。

相关推荐
栈溢出了10 小时前
GIN学习笔记
人工智能·神经网络·算法·机器学习·gin
chenyuhao202410 小时前
AI agent 开发之嵌入模型和提示词 前置知识
人工智能·深度学习·算法·langchain·agent·ai应用开发
靠沿10 小时前
【递归、搜索与回溯算法】专题六——记忆化搜索
算法
初心未改HD10 小时前
机器学习之模型评估指标详解
人工智能·机器学习
AI机器学习算法12 小时前
机器学习基础知识
数据结构·人工智能·python·深度学习·算法·机器学习·ai学习路线
QQ80578065119 小时前
django基于机器学习的电商评论情感分析系统设计实现
python·机器学习·django
Sherlock Ma19 小时前
西瓜书《机器学习》全网最详细解读 第一章:绪论
人工智能·深度学习·考研·机器学习·学习方法·西瓜书·改行学it
烟锁池塘柳019 小时前
【机器学习】一文彻底搞懂正则化(Regularization)
人工智能·深度学习·机器学习
X journey19 小时前
机器学习进阶(13):支持向量机SVM
算法·机器学习·支持向量机
wx090919 小时前
stata实现机器学习的环境配置
python·机器学习·stata