ML Note 1.3 - SVM

对于一个二分类问题 y ∈ { 1 , − 1 } y \in \{1, -1\} y{1,1} 我们希望用一个超平面 w T x + b = 0 w^Tx + b = 0 wTx+b=0 来区分样本
h ( x ) = s i g n ( w T x + b ) h(x) = sign\left(w^Tx + b\right) h(x)=sign(wTx+b)

Fisher 准则

样本空间中总有一个方向 w w w 使属于不同类别的样本在这一方向上的投影 z = w T x z = w^Tx z=wTx 分开得最好。对于类别 k ∈ { 1 , − 1 } k \in \{1, -1\} k{1,1} 定义下标集
η k = { i ∣ y ( i ) = k } \eta_k = \{i|y^{(i)} = k\} ηk={iy(i)=k}

由此定义样本均值
m ~ k = 1 ∣ η k ∣ ∑ i ∈ η k z i \widetilde m_k = \frac{1}{|\eta_k|}\sum\limits_{i \in \eta_k} z_i m k=ηk1iηkzi

以及样本类内离散度
S ~ k = ∑ i ∈ η k ( z i − m ~ k ) 2 \widetilde S_k = \sum\limits_{i \in \eta_k} \left(z_i - \widetilde m_k\right)^2 S k=iηk(zim k)2

我们希望每个类别的 S k S_k Sk 尽量小,同时样本间的差距尽量大。由此构造准则函数
J ( w ) = ( m ~ 1 − m ~ − 1 ) 2 S ~ 1 + S ~ − 1 J(w) = \frac{\left(\widetilde m_1 - \widetilde m_{-1}\right)^2}{\widetilde S_1 + \widetilde S_{-1}} J(w)=S 1+S 1(m 1m 1)2

类似的可以在原样本空间中定义

符号定义备注
m k m_k mk 1 ∣ η k ∣ ∑ i ∈ η k x ( i ) \frac{1}{\vert\eta_k\vert}\sum\limits_{i \in \eta_k} x^{(i)} ηk1iηkx(i)样本均值向量
S k S_k Sk ∑ i ∈ η k ( x ( i ) − m k ) ( x ( i ) − m k ) T \sum\limits_{i \in \eta_k} \left(x^{(i)} - m_k\right)\left(x^{(i)} - m_k\right)^T iηk(x(i)mk)(x(i)mk)T样本类内离散度矩阵
S w S_w Sw S 1 + S − 1 S_1 + S_{-1} S1+S1总类内离散度矩阵
S b S_b Sb ( m 1 − m − 1 ) ( m 1 − m − 1 ) T \left(m_1 - m_{-1}\right)\left(m_1 - m_{-1}\right)^T (m1m1)(m1m1)T样本类间离散度矩阵

可以证明
J ( w ) = w T S b w T w T S w w J(w) = \frac{w^TS_bw^T}{w^TS_ww} J(w)=wTSwwwTSbwT

应用广义瑞利商的性质可以证明1
w ∗ = S w − 1 ( m 1 − m − 1 ) w^* = S_w^{-1}\left(m_1 - m_{-1}\right) w=Sw1(m1m1)

计算阈值时,可以采用经验公式
b = − 1 2 ( m ~ 1 + m ~ − 1 ) b = -\frac{1}{2}(\widetilde m_1 + \widetilde m_{-1}) b=21(m 1+m 1)

或者用贝叶斯分类器确定。


Support vector machine 希望找到一个超平面,使超平面两侧的空白区域达到最大。

Optimal Margin Classifier

假设 S S S 线性可分,可以认为 w T x + b w^Tx+b wTx+b 的绝对值反映了单次预测的可信度。定义 functional margin
γ ^ ( i ) = y ( i ) ( w T x ( i ) + b ) \hat\gamma^{(i)} = y^{(i)}(w^Tx^{(i)}+b) γ^(i)=y(i)(wTx(i)+b)

如果 γ ^ ( i ) > 0 \hat\gamma^{(i)} > 0 γ^(i)>0 则说明预测正确。而 γ ^ ( i ) \hat\gamma^{(i)} γ^(i) 越大,说明预测的可信度越高。定义样本集的 functional margin
γ ^ = min ⁡ i = 1 , … , m γ ^ ( i ) \hat\gamma = \min\limits_{i=1,\dots,m}\hat\gamma^{(i)} γ^=i=1,,mminγ^(i)

则我们的目标可以表示为
max ⁡ w , b γ ^ \max\limits_{w, b}{\hat\gamma} w,bmaxγ^

但是如果 w w w 以一定比例增大 γ ^ \hat\gamma γ^ 可以变得无穷大。因此我们还需要一个约束
∣ ∣ w ∣ ∣ = 1 ||w|| = 1 w=1

但是这个问题并不是凸优化,因此定义 geometric margins
γ ( i ) = y ( i ) ( ( w ∣ ∣ w ∣ ∣ ) T x ( i ) + b ∣ ∣ w ∣ ∣ ) γ = min ⁡ i = 1 , … , m γ ( i ) \begin{array}{lcl} \gamma^{(i)} &=& y^{(i)}\left(\left(\frac{w}{||w||}\right)^Tx^{(i)}+\frac{b}{||w||}\right)\\ \gamma &=& \min\limits_{i=1,\dots,m}\gamma^{(i)} \end{array} γ(i)γ==y(i)((ww)Tx(i)+wb)i=1,,mminγ(i)

从几何角度考虑, γ ( i ) \gamma^{(i)} γ(i) 代表第 i 个样本到决策面的距离。因为距离决策面越远的点具有越高的可信度,所以原问题可以变为
max ⁡ w , b γ \max\limits_{w, b}{\gamma} w,bmaxγ

但是现在目标函数不是凸函数,因此还是不能应用凸优化。不过 w 的长度可以任取而不影响目标函数值了,而总有一个系数可以使 γ ^ = 1 \hat\gamma = 1 γ^=1 成立。因此将原问题重述为
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s.t. y ( i ) ( w T x ( i ) + b ) ≥ 1 , i = 1 , … , m \begin{array}{rll} \min\limits_{w, b} & \frac{1}{2}||w||^2 &\\ \text{s.t.} & y^{(i)}(w^Tx^{(i)}+b) \ge 1, & i=1,\dots,m \end{array} w,bmins.t.21w2y(i)(wTx(i)+b)1,i=1,,m

Soft Margin Classifier

对于线性不可分的 S S S 采用 l 1 l_1 l1 regularization 重述问题
min ⁡ w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i s.t. y ( i ) ( w T x ( i ) + b ) ≥ 1 − ξ i , i = 1 , … , m ξ i ≥ 0 , i = 1 , … , m \begin{array}{rll} \min\limits_{w, b, \xi} & \frac{1}{2}||w||^2 + C\sum\limits_{i=1}^m\xi_i&\\ \text{s.t.} & y^{(i)}(w^Tx^{(i)}+b) \ge 1 - \xi_i, & i=1,\dots,m\\ & \xi_i \ge 0, & i=1,\dots,m \end{array} w,b,ξmins.t.21w2+Ci=1mξiy(i)(wTx(i)+b)1ξi,ξi0,i=1,,mi=1,,m

构造 generalized Lagrangian
L ( w , b , ξ , α , β ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i − ∑ i = 1 m α i [ y ( i ) ( w T x ( i ) + b ) − 1 + ξ i ] − ∑ i = 1 m β i ξ i L(w,b,\xi,\alpha,\beta) = \frac{1}{2}||w||^2 + C\sum\limits_{i=1}^m\xi_i- \sum\limits_{i=1}^m \alpha_i[y^{(i)}(w^Tx^{(i)}+b)-1+\xi_i] - \sum\limits_{i=1}^m\beta_i\xi_i L(w,b,ξ,α,β)=21w2+Ci=1mξii=1mαi[y(i)(wTx(i)+b)1+ξi]i=1mβiξi

容易验证
w = 0 ⃗ b = 0 ξ i = 2 \begin{array}{rcl} w &=& \vec 0\\ b &=& 0\\ \xi_i &=& 2 \end{array} wbξi===0 02

满足 the Slater’s condition,因此对偶问题与原问题有相同的最优解
max ⁡ α , β θ D ( α , β ) \begin{array}{rll} \max\limits_{\alpha, \beta} & \theta_D(\alpha, \beta) \end{array} α,βmaxθD(α,β)

为了求
θ D ( α , β ) = min ⁡ w , b , ξ L \theta_D(\alpha, \beta) = \min\limits_{w, b, \xi}L θD(α,β)=w,b,ξminL

L L L 求导得
∇ w L = w − ∑ i = 1 m α i y ( i ) x ( i ) = 0 ∂ ∂ b L = − ∑ i = 1 m α i y ( i ) = 0 ∂ ∂ ξ i L = C − α i − β i = 0 \begin{array}{rclcl} \nabla_wL &=& w-\sum\limits_{i=1}^m \alpha_iy^{(i)}x^{(i)} &=& 0\\ \frac{\partial}{\partial b}L &=& -\sum\limits_{i=1}^m \alpha_iy^{(i)} &=& 0\\ \frac{\partial}{\partial\xi_i}L &=& C-\alpha_i-\beta_i &=& 0 \end{array} wLbLξiL===wi=1mαiy(i)x(i)i=1mαiy(i)Cαiβi===000

带入 L L L 可得对偶问题
max ⁡ α , β ∑ i = 1 m α i − 1 2 ∑ i , j = 1 m y ( i ) y ( j ) α i α j ⟨ x ( i ) , x ( j ) ⟩ s.t. 0 ≤ α i ≤ C , i = 1 , … , m ∑ i = 1 m α i y ( i ) = 0 \begin{array}{rll} \max\limits_{\alpha, \beta} & \sum\limits_{i=1}^m \alpha_i - \frac{1}{2}\sum\limits_{i,j=1}^m y^{(i)}y^{(j)}\alpha_i\alpha_j\langle x^{(i)}, x^{(j)}\rangle\\ \text{s.t.} & 0 \le \alpha_i \le C,\quad i=1,\dots,m\\ & \sum\limits_{i=1}^m \alpha_iy^{(i)} = 0 \end{array} α,βmaxs.t.i=1mαi21i,j=1my(i)y(j)αiαjx(i),x(j)0αiC,i=1,,mi=1mαiy(i)=0

由 KKT complementary conditions 可以得到
a i ∗ = 0 ⇒ y ( i ) ( w T x ( i ) + b ) ≥ 1 0 < a i ∗ < C ⇒ y ( i ) ( w T x ( i ) + b ) = 1 a i ∗ = C ⇒ y ( i ) ( w T x ( i ) + b ) ≤ 1 \begin{array}{rcl} a_i^* = 0 &\Rightarrow& y^{(i)}(w^Tx^{(i)}+b) \ge 1\\ 0 < a_i^* < C &\Rightarrow& y^{(i)}(w^Tx^{(i)}+b) = 1\\ a_i^* = C &\Rightarrow& y^{(i)}(w^Tx^{(i)}+b) \le 1\\ \end{array} ai=00<ai<Cai=Cy(i)(wTx(i)+b)1y(i)(wTx(i)+b)=1y(i)(wTx(i)+b)1

SMO2

为了同时对 ( α 1 , α 2 , … , α m ) (\alpha_1, \alpha_2, \dots, \alpha_m) (α1,α2,,αm) 进行优化,最直观的想法是使用坐标上升。但是在这个问题中,等式条件
∑ i = 1 m α i y ( i ) = 0 \sum\limits_{i=1}^m \alpha_iy^{(i)} = 0 i=1mαiy(i)=0

在改变任何一个变量的值后都无法保持成立。因此 SMO 算法同时更新两个变量,以保持等式条件成立
repeat  { Select some pair  ( α i , α j )  to update by heuristic Optimize  W  w.r.t.  ( α i , α j ) } \begin{aligned} &\text{repeat}\ \{\\ &\qquad \text{Select some pair }(\alpha_i,\alpha_j)\text{ to update by heuristic}\\ &\qquad\text{Optimize }W\text{ w.r.t. }(\alpha_i,\alpha_j)\\ &\} \end{aligned} repeat {Select some pair (αi,αj) to update by heuristicOptimize W w.r.t. (αi,αj)}

其中 W W W 为优化的目标函数
W = ∑ i = 1 m α i − 1 2 ∑ i , j = 1 m y ( i ) y ( j ) α i α j ⟨ x ( i ) , x ( j ) ⟩ W = \sum\limits_{i=1}^m \alpha_i - \frac{1}{2}\sum\limits_{i,j=1}^m y^{(i)}y^{(j)}\alpha_i\alpha_j\langle x^{(i)}, x^{(j)}\rangle W=i=1mαi21i,j=1my(i)y(j)αiαjx(i),x(j)

Solving for Two Lagrange Multipliers

设第一步中选取的优化变量为 ( α 1 , α 2 ) (\alpha_1,\alpha_2) (α1,α2) 令常数
ζ ≡ − ∑ i = 3 m α i y ( i ) = α 1 y ( 1 ) + α 2 y ( 2 ) \zeta \equiv -\sum\limits_{i=3}^m\alpha_iy^{(i)} = \alpha_1y^{(1)} + \alpha_2y^{(2)} ζi=3mαiy(i)=α1y(1)+α2y(2)

则两个优化变量实际可以简化为一个
α 1 = ( ζ − α 2 y ( 2 ) ) y ( 1 ) \alpha_1 = (\zeta-\alpha_2y^{(2)})y^{(1)} α1=(ζα2y(2))y(1)

由此将原问题转化为单变量优化问题
α 2 : = arg ⁡ max ⁡ α ^ 2 W ( ( ζ − α ^ 2 y ( 2 ) ) y ( 1 ) , α ^ 2 , α 3 , … , α m ) \alpha_2 := \arg\max_{\hat\alpha_2} W((\zeta-\hat\alpha_2y^{(2)})y^{(1)},\hat\alpha_2,\alpha_3,\dots,\alpha_m) α2:=argα^2maxW((ζα^2y(2))y(1),α^2,α3,,αm)

定义变量
η = ⟨ x ( 1 ) , x ( 1 ) ⟩ + ⟨ x ( 2 ) , x ( 2 ) ⟩ − 2 ⟨ x ( 1 ) , x ( 2 ) ⟩ E i = w T x ( i ) + b − y ( i ) \begin{array}{rcl} \eta &=& \langle x^{(1)}, x^{(1)}\rangle + \langle x^{(2)}, x^{(2)}\rangle - 2\langle x^{(1)}, x^{(2)}\rangle\\ E_i &=& w^Tx^{(i)} + b - y^{(i)} \end{array} ηEi==x(1),x(1)+x(2),x(2)2x(1),x(2)wTx(i)+by(i)

注意到 η \eta η W W W 的二阶导数,一般情况下有 η > 0 \eta \gt 0 η>0 。可以解得3
α 2 : = α 2 + y ( 2 ) ( E 1 − E 2 ) η \alpha_2 := \alpha_2 + \frac{y^{(2)}\left(E_1 - E_2\right)}{\eta} α2:=α2+ηy(2)(E1E2)

由此求出的 α 2 \alpha_2 α2 有可能违反约束条件 0 < a i ∗ < C 0 < a_i^* < C 0<ai<C 。为了使 ( α 1 , α 2 ) (\alpha_1, \alpha_2) (α1,α2) 同时满足约束条件,这个点必须位于下图的斜线上

smo_bounds

y 1 ≠ y 2 y_1 \ne y_2 y1=y2 时,定义
H = min ⁡ { C , C + α 2 − α 1 } L = max ⁡ { 0 , α 2 − α 1 } \begin{array}{rcl} H &=& \min\{C, C + \alpha_2 - \alpha_1\}\\ L &=& \max\{0, \alpha_2 - \alpha_1\} \end{array} HL==min{C,C+α2α1}max{0,α2α1}

否则,定义
H = min ⁡ { C , α 2 + α 1 } L = max ⁡ { 0 , α 2 + α 1 − C } \begin{array}{rcl} H &=& \min\{C, \alpha_2 + \alpha_1\}\\ L &=& \max\{0, \alpha_2 + \alpha_1 - C\} \end{array} HL==min{C,α2+α1}max{0,α2+α1C}

如果变量的最优值违反了约束条件而无法取到,则选择这一变量可行域中最接近最优值的一侧边界作为新的变量值
α 2 n e w , c l i p p e d : = { H , α 2 n e w ≥ H α 2 n e w , L < α 2 n e w < H L , α 2 n e w ≤ L \alpha_2^{new, clipped} := \left\{\begin{array}{rcl} H, & \alpha_2^{new} \ge H\\ \alpha_2^{new}, & L \lt \alpha_2^{new} \lt H\\ L, & \alpha_2^{new} \le L \end{array}\right. α2new,clipped:=H,α2new,L,α2newHL<α2new<Hα2newL

由此可以解得
α 1 : = α 1 + y ( 1 ) y ( 2 ) ( α 2 − α 2 n e w , c l i p p e d ) \alpha_1 := \alpha_1 + y^{(1)}y^{(2)}\left(\alpha_2- \alpha_2^{new, clipped}\right) α1:=α1+y(1)y(2)(α2α2new,clipped)

得到 α 1 , α 2 \alpha_1, \alpha_2 α1,α2 后,需要更新 b b b 使 KKT 条件对其成立。定义
b 1 = b − E 1 − y ( 1 ) ( α 1 n e w − α 1 ) ⟨ x ( 1 ) , x ( 1 ) ⟩ − y ( 2 ) ( α 2 n e w , c l i p p e d − α 2 ) ⟨ x ( 1 ) , x ( 2 ) ⟩ b 2 = b − E 2 − y ( 1 ) ( α 1 n e w − α 1 ) ⟨ x ( 2 ) , x ( 1 ) ⟩ − y ( 2 ) ( α 2 n e w , c l i p p e d − α 2 ) ⟨ x ( 2 ) , x ( 2 ) ⟩ \begin{array}{rcl} b_1 &=& b - E_1 - y^{(1)}(\alpha_1^{new} - \alpha_1)\langle x^{(1)}, x^{(1)}\rangle - y^{(2)}(\alpha_2^{new, clipped} - \alpha_2)\langle x^{(1)}, x^{(2)}\rangle\\ b_2 &=& b - E_2 - y^{(1)}(\alpha_1^{new} - \alpha_1)\langle x^{(2)}, x^{(1)}\rangle - y^{(2)}(\alpha_2^{new, clipped} - \alpha_2)\langle x^{(2)}, x^{(2)}\rangle \end{array} b1b2==bE1y(1)(α1newα1)x(1),x(1)y(2)(α2new,clippedα2)x(1),x(2)bE2y(1)(α1newα1)x(2),x(1)y(2)(α2new,clippedα2)x(2),x(2)

α 1 ∈ ( 0 , C ) \alpha_1 \in (0, C) α1(0,C) b 1 b_1 b1 有效,对 α 2 \alpha_2 α2 同理。如果只有一个 b b b 有效时,该值即为新的阈值。当两个 b b b 都有效时,应有 b 1 = b 2 b_1 = b_2 b1=b2 成立。当两个 b b b 都无效时,取
b : = b 1 + b 2 2 b := \frac{b_1 + b_2}{2} b:=2b1+b2

Heuristics for Choosing Which Multipliers to Optimize

Osuna’s Theorem 保证每次更新都会使目标函数值减小,只要有至少一个 α \alpha α 违反了 KKT 条件。为了保证收敛 SMO 首先寻找违反 KKT 条件的 α 2 \alpha_2 α2 作为 α 2 \alpha_2 α2 。这里所说的违反 KKT 条件指的是不满足
a i ∗ = 0 ∧ y ( i ) ( w T x ( i ) + b ) ≥ 1 0 < a i ∗ < C ∧ y ( i ) ( w T x ( i ) + b ) = 1 a i ∗ = C ∧ y ( i ) ( w T x ( i ) + b ) ≤ 1 \begin{array}{rcl} a_i^* = 0 &\land& y^{(i)}(w^Tx^{(i)}+b) \ge 1\\ 0 < a_i^* < C &\land& y^{(i)}(w^Tx^{(i)}+b) = 1\\ a_i^* = C &\land& y^{(i)}(w^Tx^{(i)}+b) \le 1\\ \end{array} ai=00<ai<Cai=Cy(i)(wTx(i)+b)1y(i)(wTx(i)+b)=1y(i)(wTx(i)+b)1

通过化简可以得到等价的判断条件
( y ( i ) E i < 0 ∧ a i ∗ < C ) ∨ ( y ( i ) E i > 0 ∧ a i ∗ > 0 ) \left(y^{(i)}E_i < 0 \land a_i^* < C\right) \lor \left(y^{(i)}E_i > 0 \land a_i^* > 0\right) (y(i)Ei<0ai<C)(y(i)Ei>0ai>0)

由于 KKT 条件本身是比较严格的,因此引入误差项 ε \varepsilon ε 一般取 1 e − 3 1e^{-3} 1e3
( y ( i ) E i < − ε ∧ a i ∗ < C ) ∨ ( y ( i ) E i > ε ∧ a i ∗ > 0 ) \left(y^{(i)}E_i < -\varepsilon \land a_i^* < C\right) \lor \left(y^{(i)}E_i > \varepsilon \land a_i^* > 0\right) (y(i)Ei<εai<C)(y(i)Ei>εai>0)

当遍历过整个数据集后,那些处在边界的 α \alpha α 在后续更新时会倾向于留在边界。这里所说的边界指 α = 0 \alpha = 0 α=0 α = C \alpha = C α=C 。为了将 CPU 时间集中在处理更有可能违背 KKT 条件的数据上 SMO 转而遍历所有非边界 α \alpha α 直到他们都满足 KKT 条件为止。这时 SMO 只能再次遍历整个数据集。如果遍历过程中没有遇到违反 KKT 条件的数据,即可退出循环;否则跳回上一步遍历非边界点。实现代码如下

numChanged = 0;
examineAll = true;
while (numChanged > 0 || examineAll)
    numChanged = 0;
    if examineAll
        for i = 1 : m
            numChanged = numChanged + examineExample(i);
        end
    else
        for i = 1 : m
            if 0 < alpha(i) && alpha(i) < C
                numChanged = numChanged + examineExample(i);
            end
        end
    end
    if examineAll
        examineAll = false;
    elseif numChanged == 0
        examineAll = 1;
    end
end

选定 α 2 \alpha_2 α2 后,可以在所有 α \alpha α 中选择使步长 ∣ E 1 − E 2 ∣ / η |E_1 - E_2| / \eta E1E2/η 最大化的一个作为 α 1 \alpha_1 α1 。但是在某些情况下,这样选出的 α 1 \alpha_1 α1 不能使更新过程正常进行。这时就需要遍历所有非边界 α \alpha α 甚至是全体 α \alpha α 来尝试更新。在一些极端情况下,没有一个 α \alpha α 可以作为 α 1 \alpha_1 α1 ,这时就需要抛弃 α 2 \alpha_2 α2 重新选择。


当循环结束时,可以根据 α \alpha α 的值计算
w ∗ = ∑ i = 1 m α i y ( i ) x ( i ) w^* = \sum\limits_{i=1}^m\alpha_iy^{(i)}x^{(i)} w=i=1mαiy(i)x(i)

但是这个值只有在没有指定核函数时有意义。在使用核函数的情况下需要用下式进行预测
h ( x ) = s i g n ( ∑ i = 1 m α i y ( i ) ⟨ x ( i ) , x ⟩ + b ∗ ) h(x) = sign\left(\sum\limits_{i=1}^m\alpha_iy^{(i)}\langle x^{(i)}, x\rangle + b^*\right) h(x)=sign(i=1mαiy(i)x(i),x+b)

Kernels

有些情况下,决策边界无法用一个超平面来表示。这时可以选择适当的 feature mapping ϕ \phi ϕ 将 input attribute x x x 映射到高维,从而使其线性可分
kernel

但是这样做会使内积的计算量激增,因此实际操作中会选择一个 kernel
K ( x , z ) = ⟨ ϕ ( x ) , ϕ ( z ) ⟩ K(x, z) = \langle \phi(x), \phi(z) \rangle K(x,z)=ϕ(x),ϕ(z)

左式的核函数一般计算起来比较简便,从而避免了映射和内积的操作。常见的核函数有

名称 K ( x , z ) K(x, z) K(x,z)
Polynomial ( x T z + c ) d (x^Tz+c)^d (xTz+c)d
Gaussian exp ⁡ ( − ∣ ∣ x − z ∣ ∣ 2 2 σ 2 ) \exp\left(-\frac{\vert\vert x-z\vert\vert^2}{2\sigma^2}\right) exp(2σ2xz2)
Sigmoid tanh ⁡ ( β 0 x T z + β 1 ) \tanh\left(\beta_0 x^Tz + \beta_1\right) tanh(β0xTz+β1)

但是并不是任何一个函数都可以作为核函数,因为不一定存在适当的基函数 ϕ \phi ϕ 与之对应。对于一个函数
K : R n × R n → R K: \mathbb{R}^n \times\mathbb{R}^n\rightarrow \mathbb{R} K:Rn×RnR

定义其对应的 kernel matrix
K = ( K i j ) ∈ R n × n K = (K_{ij}) \in \mathbb{R}^{n\times n} K=(Kij)Rn×n

其中
K i j = K ( x ( i ) , x ( j ) ) K_{ij} = K(x^{(i)},x^{(j)}) Kij=K(x(i),x(j))

Mercer theorem 给出了 K K K 是一个合法核函数的充分必要条件

Matrix K K K is symmetric positive semi-definite


  1. 线性判别分析LDA原理总结 ↩︎

  2. 【机器学习详解】SMO算法剖析 ↩︎

  3. W W W 求导得
    ∂ ∂ α i W = 1 − y ( i ) ∑ j = 1 m y ( j ) α j ⟨ x ( i ) , x ( j ) ⟩ \frac{\partial}{\partial \alpha_i} W = 1 - y^{(i)}\sum\limits_{j = 1}^m y^{(j)}\alpha_j\langle x^{(i)}, x^{(j)}\rangle αiW=1y(i)j=1my(j)αjx(i),x(j) f ( α 2 ) = W ( ( ζ − α 2 y ( 2 ) ) y ( 1 ) , α 2 , α 3 , … , α m ) f(\alpha_2) = W\left(\left(\zeta-\alpha_2y^{(2)}\right)y^{(1)}, \alpha_2, \alpha_3, \dots, \alpha_m\right) f(α2)=W((ζα2y(2))y(1),α2,α3,,αm)
    d f d α 2 = ∂ ∂ α 1 W ⋅ ( − y ( 1 ) y ( 2 ) ) + ∂ ∂ α 2 W = 1 − y ( 2 ) ∑ j = 1 m y ( j ) α j ⟨ x ( 2 ) , x ( j ) ⟩ − y ( 1 ) y ( 2 ) + y ( 2 ) ∑ j = 1 m y ( j ) α j ⟨ x ( 1 ) , x ( j ) ⟩ = 1 − y ( 1 ) y ( 2 ) + y ( 2 ) ∑ j = 3 m y ( j ) α j ⟨ x ( 1 ) , x ( j ) ⟩ − y ( 2 ) ∑ j = 3 m y ( j ) α j ⟨ x ( 2 ) , x ( j ) ⟩ + y ( 2 ) y ( 1 ) α 1 ⟨ x ( 1 ) , x ( 1 ) ⟩ + α 2 ⟨ x ( 1 ) , x ( 2 ) ⟩ − y ( 2 ) y ( 1 ) α 1 ⟨ x ( 2 ) , x ( 1 ) ⟩ − α 2 ⟨ x ( 2 ) , x ( 2 ) ⟩ = 1 − y ( 1 ) y ( 2 ) + y ( 2 ) ∑ j = 3 m y ( j ) α j ⟨ x ( 1 ) , x ( j ) ⟩ − y ( 2 ) ∑ j = 3 m y ( j ) α j ⟨ x ( 2 ) , x ( j ) ⟩ + y ( 2 ) ζ ( ⟨ x ( 1 ) , x ( 1 ) ⟩ − ⟨ x ( 1 ) , x ( 2 ) ⟩ ) − η α 2 = 0 \begin{array}{rcl} \frac{df}{d \alpha_2} &=& \frac{\partial}{\partial \alpha_1} W \cdot \left(-y^{(1)}y^{(2)}\right) + \frac{\partial}{\partial \alpha_2} W\\ &=& 1 - y^{(2)}\sum\limits_{j = 1}^m y^{(j)}\alpha_j\langle x^{(2)}, x^{(j)}\rangle - y^{(1)}y^{(2)} + y^{(2)}\sum\limits_{j = 1}^m y^{(j)}\alpha_j\langle x^{(1)}, x^{(j)}\rangle\\ &=& 1 - y^{(1)}y^{(2)} + y^{(2)}\sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(1)}, x^{(j)}\rangle - y^{(2)}\sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(2)}, x^{(j)}\rangle\\ && + y^{(2)} y^{(1)}\alpha_1\langle x^{(1)}, x^{(1)}\rangle + \alpha_2\langle x^{(1)}, x^{(2)}\rangle - y^{(2)} y^{(1)}\alpha_1\langle x^{(2)}, x^{(1)}\rangle\\ && - \alpha_2\langle x^{(2)}, x^{(2)}\rangle\\ &=& 1 - y^{(1)}y^{(2)} + y^{(2)}\sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(1)}, x^{(j)}\rangle - y^{(2)}\sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(2)}, x^{(j)}\rangle\\ && + y^{(2)}\zeta\left(\langle x^{(1)}, x^{(1)}\rangle - \langle x^{(1)}, x^{(2)}\rangle\right) - \eta\alpha_2\\ &=& 0 \end{array} dα2df=====α1W(y(1)y(2))+α2W1y(2)j=1my(j)αjx(2),x(j)y(1)y(2)+y(2)j=1my(j)αjx(1),x(j)1y(1)y(2)+y(2)j=3my(j)αjx(1),x(j)y(2)j=3my(j)αjx(2),x(j)+y(2)y(1)α1x(1),x(1)+α2x(1),x(2)y(2)y(1)α1x(2),x(1)α2x(2),x(2)1y(1)y(2)+y(2)j=3my(j)αjx(1),x(j)y(2)j=3my(j)αjx(2),x(j)+y(2)ζ(x(1),x(1)x(1),x(2))ηα20 可以解得
    y ( 2 ) η α 2 n e w = y ( 2 ) − y ( 1 ) + ∑ j = 3 m y ( j ) α j ⟨ x ( 1 ) , x ( j ) ⟩ − ∑ j = 3 m y ( j ) α j ⟨ x ( 2 ) , x ( j ) ⟩ + ζ ( ⟨ x ( 1 ) , x ( 1 ) ⟩ − ⟨ x ( 1 ) , x ( 2 ) ⟩ ) = y ( 2 ) − y ( 1 ) + ∑ j = 1 m y ( j ) α j ⟨ x ( 1 ) , x ( j ) ⟩ − ∑ j = 1 m y ( j ) α j ⟨ x ( 2 ) , x ( j ) ⟩ + y ( 2 ) η α 2 \begin{array}{rcl} y^{(2)}\eta\alpha_2^{new} &=& y^{(2)} - y^{(1)} + \sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(1)}, x^{(j)}\rangle - \sum\limits_{j = 3}^m y^{(j)}\alpha_j\langle x^{(2)}, x^{(j)}\rangle\\ && + \zeta\left(\langle x^{(1)}, x^{(1)}\rangle - \langle x^{(1)}, x^{(2)}\rangle\right)\\ &=& y^{(2)} - y^{(1)} + \sum\limits_{j = 1}^m y^{(j)}\alpha_j\langle x^{(1)}, x^{(j)}\rangle - \sum\limits_{j = 1}^m y^{(j)}\alpha_j\langle x^{(2)}, x^{(j)}\rangle\\ && + y^{(2)}\eta\alpha_2 \end{array} y(2)ηα2new==y(2)y(1)+j=3my(j)αjx(1),x(j)j=3my(j)αjx(2),x(j)+ζ(x(1),x(1)x(1),x(2))y(2)y(1)+j=1my(j)αjx(1),x(j)j=1my(j)αjx(2),x(j)+y(2)ηα2 over. ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LutingWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值