文章目录
一、基于梯度的方法
梯度概念
设函数 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 是正的比例因子。
梯度法求解步骤:
-
将样本写成规范化增广向量形式,选择准则函数,设置初始权向量 W ( 1 ) W(1) W(1),括号内为迭代次数 k = 1 k=1 k=1。
-
依次输入训练样本 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,输入下一个训练样本,计算新的权向量,直至对全部训练样本完成一轮迭代。
- 在一轮迭代中,如果有一个样本使 ∇ 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) 的形式不同,得到的具体算法也不同。
二、均方误差最小算法
回顾:收敛问题分析
在感知器算法、梯度算法、固定增量算法或其他类似方法中,仅当模式类可分离时才能收敛。在不可分的情况下,算法可能出现以下问题:
- 算法回摆动,始终不收敛;
- 一次次迭代后依然不见收敛。
原因:
- 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
为各分量均为正值的矢量。
说明:
- 在方程组中当行数 > > >> >> 列数时,通常无解,称为矛盾方程组 ,一般求近似解 。在模式识别中,通常训练样本数 N N N 总是大于模式的维数 n n n,因此方程的个数(行数) > > >> >> 模式向量的维数(列数),是矛盾方程组,只能求近似解 W ∗ W^* W∗,即
∥ X W ∗ − B ∥ = 极小 \| XW^* - B \| = 极小 ∥XW∗−B∥=极小
- 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 的近似解也称 "最优近似解":
------ 使方程组两边所有误差之和最小(即最优)的解。
可以看出:
- 当函数处到最小值,等式 X W = B XW = B XW=B 有最优解。即又将问题转化为求准则函数极小值的问题。
- 因为有两个变量 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),从而可以判断是否已收敛。
-
如果 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)} > 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。
-
如果 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) 核方法(非线性分类)
若数据不可线性分离,可以通过核函数将数据映射到高维空间。常用的核函数包括:
- 线性核: K ( x i , x j ) = x i T x j K(x_i, x_j) = x_i^T x_j K(xi,xj)=xiTxj
- 多项式核: 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
- 高斯核(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] 的分类结果为正类。