有些时候,线性不可分是由噪声点决定的,可能这些数据本身就是分开的, 但是因为噪声, 某一类的个别数据混杂到了另一类中;
这里为什么要说个别数据呢? 因为后面会说因为数据的特点线性不可分的情况;
如果数据集线性不可分,意味着找不到一个合格的超平面 体现在优化问题上,任何的 w 和 b 都无法满足优化条件
(这个解决方案与运筹学的那一套目标规划的套路差不多)
对于之前的问题,硬间隔不可分,体现在满足不了约束条件上,于是提出松弛变量 ξ i ≥ 0 \xi_i≥0 ξi≥0(每 个数据点自己有一个 ξ i \xi_i ξi)
我们将约束条件放松为:
y i ( w T x i + b ) ≥ 1 − ξ i y_i(w^Tx_i+b) \geq 1 - \xi_i yi(wTxi+b)≥1−ξi
注意:
(把上面这个观点表示在目标函数中)
构建目标函数
min w 1 2 ∥ w ∥ 2 2 + C ∑ i = 1 m ξ i s . t d i = y i ( w T x i + b ) ≥ 1 − ξ i ξ i ≥ 0 \min_{w} \frac{1}{2}\lVert w \rVert_2^2 + C\sum_{i=1}^{m}\xi_i\\ s.t \qquad d_i = y_i(w^Tx_i+b) \geq 1 - \xi_i \\ \xi_i \geq 0 wmin21∥w∥22+Ci=1∑mξis.tdi=yi(wTxi+b)≥1−ξiξi≥0
构建拉格朗日函数
L ( w , b , ξ , α , μ ) = 1 2 ∥ w ∥ 2 2 + C ∑ i = 1 m ξ i − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 + ξ i ] − ∑ i = 1 m μ i ξ i ( α i ≥ 0 , μ i ≥ 0 ) L(w,b,\xi,\alpha,\mu)=\frac{1}{2}\lVert w \rVert_2^2 + C\sum_{i=1}^{m}\xi_i - \sum_{i=1}^m\alpha_i[y_i(w^Tx_i+b) - 1 + \xi_i] - \sum_{i=1}^m\mu_i\xi_i\\ (\alpha_i\geq0,\mu_i\geq0) L(w,b,ξ,α,μ)=21∥w∥22+Ci=1∑mξi−i=1∑mαi[yi(wTxi+b)−1+ξi]−i=1∑mμiξi(αi≥0,μi≥0)
优化原始问题
min w , b , ξ max α i ≥ 0 , μ i ≥ 0 L ( w , b , ξ , α , μ ) \min_{w,b,\xi}\max_{\alpha_i\geq0,\mu_i\geq0}L(w,b,\xi,\alpha,\mu) w,b,ξminαi≥0,μi≥0maxL(w,b,ξ,α,μ)
等价于优化原始问题的对偶问题
max α i ≥ 0 , μ i ≥ 0 min w , b , ξ L ( w , b , ξ , α , μ ) \max_{\alpha_i\geq0,\mu_i\geq0}\min_{w,b,\xi}L(w,b,\xi,\alpha,\mu) αi≥0,μi≥0maxw,b,ξminL(w,b,ξ,α,μ)
第一步求极小,对 w , b , ξ w,b,\xi w,b,ξ分别求偏导
∂ L ∂ w = 0 ⇒ w = ∑ i = 1 m α i y i x i ∂ L ∂ b = 0 ⇒ ∑ i = 1 m α i y i = 0 ∂ L ∂ ξ = 0 ⇒ C − α − μ = 0 \frac{\partial{L}}{\partial{w}} = 0 \Rightarrow w = \sum_{i=1}^m\alpha_iy_ix_i \\ \frac{\partial{L}}{\partial{b}} = 0 \Rightarrow \sum_{i=1}^m\alpha_iy_i = 0\\ \frac{\partial{L}}{\partial{\xi}} = 0 \Rightarrow C-\alpha-\mu=0\\ ∂w∂L=0⇒w=i=1∑mαiyixi∂b∂L=0⇒i=1∑mαiyi=0∂ξ∂L=0⇒C−α−μ=0
带回拉格朗日函数
L ( w , b , ξ , α , μ ) = 1 2 ∥ w ∥ 2 2 + C ∑ i = 1 m ξ i − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 + ξ i ] − ∑ i = 1 m μ i ξ i = 1 2 ∥ w ∥ 2 2 − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 + ξ i ] + ∑ i = 1 m α i ξ i = 1 2 ∥ w ∥ 2 2 − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 ] ( 这 不 就 变 回 硬 间 隔 了 嘛 ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 , j = 1 m α i y i x i T α j y j x j \begin{aligned} L(w,b,\xi,\alpha,\mu)&=\frac{1}{2}\lVert w \rVert_2^2 + C\sum_{i=1}^{m}\xi_i - \sum_{i=1}^m\alpha_i[y_i(w^Tx_i+b) - 1 + \xi_i] - \sum_{i=1}^m\mu_i\xi_i\\ &=\frac{1}{2}\lVert w \rVert_2^2 - \sum_{i=1}^m\alpha_i[y_i(w^Tx_i+b) - 1 + \xi_i] + \sum_{i=1}^m\alpha_i\xi_i\\ &=\frac{1}{2}\lVert w \rVert_2^2 - \sum_{i=1}^m\alpha_i[y_i(w^Tx_i+b) - 1](这不就变回硬间隔了嘛)\\ &= \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1,j=1}^m\alpha_iy_ix_i^T\alpha_jy_jx_j \\ \end{aligned} L(w,b,ξ,α,μ)=21∥w∥22+Ci=1∑mξi−i=1∑mαi[yi(wTxi+b)−1+ξi]−i=1∑mμiξi=21∥w∥22−i=1∑mαi[yi(wTxi+b)−1+ξi]+i=1∑mαiξi=21∥w∥22−i=1∑mαi[yi(wTxi+b)−1](这不就变回硬间隔了嘛)=i=1∑mαi−21i=1,j=1∑mαiyixiTαjyjxj
第二步求极大
max α ∑ i = 1 m α i − 1 2 ∑ i = 1 , j = 1 m α i y i x i T α j y j x j s . t . ∑ i = 1 m α i y i = 0 C − α − μ = 0 ( ∗ ) α i ≥ 0 ( i = 1 , 2 , … , m ) μ i ≥ 0 ( i = 1 , 2 , … , m ) \max_{\alpha}\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1,j=1}^m\alpha_iy_ix_i^T\alpha_jy_jx_j \\ s.t. \qquad \sum_{i=1}^{m}\alpha_iy_i = 0\\ C-\alpha-\mu=0 (*)\\ \alpha_i\geq0(i=1,2,\ldots,m)\\ \mu_i\geq0(i=1,2,\ldots,m)\\ αmaxi=1∑mαi−21i=1,j=1∑mαiyixiTαjyjxjs.t.i=1∑mαiyi=0C−α−μ=0(∗)αi≥0(i=1,2,…,m)μi≥0(i=1,2,…,m)
注意:
( ∗ ) (*) (∗)中的 α , μ \alpha,\mu α,μ都是向量而C是常数, 所以其实是C boardcast成向量再减去 α , μ \alpha,\mu α,μ其实可以写成m条约束:
C − α i − μ i = 0 ( i = 1 , 2 , … , m ) C-\alpha_i-\mu_i=0 (i=1,2,\ldots,m) C−αi−μi=0(i=1,2,…,m)
将后3条约束改写,目标改写
min α 1 2 ∑ i = 1 , j = 1 m α i y i x i T α j y j x j − ∑ i = 1 m α i s . t . ∑ i = 1 m α i y i = 0 0 ≤ α i ≤ C ( i = 1 , 2 , … , m ) \min_{\alpha}\frac{1}{2}\sum_{i=1,j=1}^m\alpha_iy_ix_i^T\alpha_jy_jx_j - \sum_{i=1}^m\alpha_i\\ s.t. \qquad \sum_{i=1}^{m}\alpha_iy_i = 0\\ 0\leq\alpha_i\leq C(i=1,2,\ldots,m)\\ αmin21i=1,j=1∑mαiyixiTαjyjxj−i=1∑mαis.t.i=1∑mαiyi=00≤αi≤C(i=1,2,…,m)
而上面的问题还是一个非线性规划, 我们用SMO算法求解
求出了 α i \alpha_i αi便可以得到w,b(与硬间隔一样)
w ∗ = ∑ i = 1 m α i ∗ y i x i b s u p p o r t = y s u p p o r t − ( w ∗ ) T x s u p p o r t b ∗ = 1 s ∑ s u p p o r t = 1 s b s u p p o r t w^* = \sum_{i=1}^m \alpha_i^*y_ix_i\\ b_{support} = y_{support} - (w^{*})^Tx_{support}\\ b^* = \frac{1}{s}\sum_{support=1}^{s}b_{support}\\ w∗=i=1∑mαi∗yixibsupport=ysupport−(w∗)Txsupportb∗=s1support=1∑sbsupport
解释:
α i = 0 \alpha_i=0 αi=0, 根据 C − α − μ = 0 C-\alpha-\mu=0 C−α−μ=0, 那么 μ i = C \mu_i =C μi=C, 根据拉格朗日函数的特点, 那么 ξ i \xi_i ξi就为0, (因为这样才不会影响拉格朗日函数与原函数一样的特性);
解释:
0 < α i < C 0<\alpha_i
解释:
α i = C \alpha_i=C αi=C, 根据 C − α − μ = 0 C-\alpha-\mu=0 C−α−μ=0, 那么 μ i = 0 \mu_i=0 μi=0, 根据拉格朗日函数的特点, 那么 ξ i \xi_i ξi就一定不为0, 且 y i ( w T x i + b ) − 1 − ξ i = 0 y_i(w^Tx_i+b) - 1-\xi_i=0 yi(wTxi+b)−1−ξi=0,当 ξ i \xi_i ξi为零时函数距离为1, 现在 ξ i \xi_i ξi不为0了, 就说明在边界内了;
如前所述, 软间隔只是用于解决线性不可分的一个补丁, 随着两个类别之间的数据互相嵌入的越来越多, 或者数据的构造本来就不是线性可分的, 软间隔也不好使;
观察下图:
这样的才叫分线性的数据, 显然非线性数据是线性不可分的, 叫软间隔来也不好使;
前面其实说过Polynomial多项式升维
可以将 2 元特征 ( x 1 , x 2 ) (x_1,x_2) (x1,x2)映射为 5 元特征 ( x 1 , x 2 , x 1 x 2 , x 1 2 , x 2 2 ) (x_1,x_2,x_1x_2,x_1^2,x_2^2) (x1,x2,x1x2,x12,x22) 这样在五元空间中有些二元空间里线性不可分的问题就变得线性可分了
对于线性 SVM 来说,最优化问题为:
min α 1 2 ∑ i = 1 , j = 1 m α i y i x i T α j y j x j − ∑ i = 1 m α i s . t . ∑ i = 1 m α i y i = 0 0 ≤ α i ≤ C ( i = 1 , 2 , … , m ) \min_{\alpha}\frac{1}{2}\sum_{i=1,j=1}^m\alpha_iy_ix_i^T\alpha_jy_jx_j - \sum_{i=1}^m\alpha_i\\ s.t. \qquad \sum_{i=1}^{m}\alpha_iy_i = 0\\ 0\leq\alpha_i\leq C(i=1,2,\ldots,m)\\ αmin21i=1,j=1∑mαiyixiTαjyjxj−i=1∑mαis.t.i=1∑mαiyi=00≤αi≤C(i=1,2,…,m)
如果使用 ϕ ( x ) \phi(x) ϕ(x)对训练集升维,最优化问题就变成了:
min α 1 2 ∑ i = 1 , j = 1 m α i y i ϕ ( x i ) T α j y j ϕ ( x j ) − ∑ i = 1 m α i s . t . ∑ i = 1 m α i y i = 0 0 ≤ α i ≤ C ( i = 1 , 2 , … , m ) \min_{\alpha}\frac{1}{2}\sum_{i=1,j=1}^m\alpha_iy_i\phi(x_i)^T\alpha_jy_j\phi(x_j) - \sum_{i=1}^m\alpha_i\\ s.t. \qquad \sum_{i=1}^{m}\alpha_iy_i = 0\\ 0\leq\alpha_i\leq C(i=1,2,\ldots,m)\\ αmin21i=1,j=1∑mαiyiϕ(xi)Tαjyjϕ(xj)−i=1∑mαis.t.i=1∑mαiyi=00≤αi≤C(i=1,2,…,m)
升维后的结果就像上图一样了
看似这种升维方式已经完美解决了线性不可分问题,但是带来了一个新问题:假设就使用多项式回归的方式进行升维:2维数据→5维;3维数据→9维数据;那如果是10维数据→……
而且就算升到那么高的维度, 目标函数中的 ϕ ( x i ) T ϕ ( x j ) \phi(x_i)^T\phi(x_j) ϕ(xi)Tϕ(xj)还要做向量内积, 计算量就超级大, 就引起了维度灾难了;
但是有一个重要的观察, 就算我们进行升维, 最后要算的还是 ϕ ( x i ) T ϕ ( x j ) \phi(x_i)^T\phi(x_j) ϕ(xi)Tϕ(xj), 所以数学家们找到了一些叫核函数的东西, 能跳过 ϕ ( x ) \phi(x) ϕ(x)这一步, 直接得出升维后的内积;
核函数
K : X × X ↦ R ∀ x , z ∈ X , 则 称 k ( x , z ) 为 核 函 数 \mathcal{K}: \mathbb{X} \times \mathbb{X} \mapsto \mathbb{R}\\ \forall x,z \in \mathbb{X}, 则称k(x,z)为核函数 K:X×X↦R∀x,z∈X,则称k(x,z)为核函数
正定核
K : X × X ↦ R ∀ x , z ∈ X , 有 k ( x , z ) 如 果 ∃ ϕ : X ↦ R , ϕ ∈ H s . t . k ( x , z ) = < ϕ ( x ) , ϕ ( z ) > \mathcal{K}: \mathbb{X} \times \mathbb{X} \mapsto \mathbb{R}\\ \forall x,z \in \mathbb{X}, 有k(x,z)\\ 如果\exist \phi: \mathbb{X} \mapsto \mathbb{R},\phi\in\mathcal{H}\\ s.t. k(x,z) = <\phi(x), \phi(z)>\\ K:X×X↦R∀x,z∈X,有k(x,z)如果∃ϕ:X↦R,ϕ∈Hs.t.k(x,z)=<ϕ(x),ϕ(z)>
则称k(x,z)为正定核函数, 其中 H \mathcal{H} H为希尔伯特空间(就是那个说汽车旅馆的那个数学家, 集合论就是他创建的)
完备的,可能是无限维的,被赋予内积的线性空间
完备的: 对极限运算封闭, 对 { k n } 有 lim x → ∞ k n = K ∈ H \{k_n\} 有 \lim_{x \to \infty}k_n = K \in \mathcal{H} {kn}有limx→∞kn=K∈H
无限维的: 就是字面意思, 可以指函数的次数的无穷次方
被赋予内积: 满足内积空间的三个性质
- 对称性– < a , b > = < b , a > = <a,b>=<b,a>
- 正定性– < a , a > ≥ 0 \geq0 <a,a>≥0
- 线性– < r 1 a 1 + r 2 a 2 , b > = r 1 < a 1 , b > + r 2 < a 2 , b >
= r_1 <r1a1+r2a2,b>=r1<a1,b>+r2<a2,b>+ r_2 线性空间: 对加法数乘封闭–经典8条(在这里还是推荐严质彬老师的矩阵分析)
我们SVM用的核函数都是正定核, 如果不加说明, 也默认核函数就是指正定核;
正定核的性质
(任取n个元素 x 1 , x 2 , … , x n x_1, x_2, \ldots, x_n x1,x2,…,xn)对应的Gram martix(格莱姆矩阵)是半正定的, 其中矩阵中的元素 a i j = k ( x i , x j ) a_{ij} = k(x_i, x_j) aij=k(xi,xj)
想说明一个矩阵是半正定的
著名的异或问题:
在这个二分类问题中, 找不到一个超平面使得能把两类分开
K ( ( 0 , 0 ) , ( 1 , 1 ) ) = 0 K ( ( 0 , 1 ) , ( 1 , 0 ) ) = 1 K((0,0), (1,1)) = 0\\ K((0,1), (1,0)) = 1 K((0,0),(1,1))=0K((0,1),(1,0))=1
这样两个线性不可分的点就可以通过高斯核函数变成线性可分了;
设 z = ( x − y ) 2 z = (x-y)^2 z=(x−y)2则能用一个平面将他们分开;
对于SVM来说, 判别函数 y = ( w T x + b ) y=(w^Tx+b) y=(wTx+b), 由于 w = ∑ i = 1 m α i y i x i w=\sum_{i=1}^m \alpha_iy_ix_i w=∑i=1mαiyixi
∴ y = ( ∑ i = 1 m α i y i ( x i x ) + b ) \therefore y=(\sum_{i=1}^m \alpha_iy_i(x_ix)+b) ∴y=(i=1∑mαiyi(xix)+b)
由于 α i y i \alpha_iy_i αiyi是确定的;所以得到一个结论:
每次计算判别函数时,需要求得判别点与所有训练集的内积;
所以SVM不怕样本维度多, 只怕样本数量大(预测时)
至于为什么要将拉格朗日函数的求解转化为求解对偶函数:
min w , b max α ⇒ max α min w , b \min_{w,b}\max_{\alpha} \Rightarrow \max_{\alpha}\min_{w,b} w,bminαmax⇒αmaxw,bmin
是因为之前数据量不大, 原本求解w个参数的就转换成了求 α \alpha α个参数了( α < w , 也 就 是 m < n \alpha
但是现在数据量大了( n < m n
将原始求解N个参数二次规划问题分解成很多个子二次规划问题分别求解。
每个子问题只需求解2个参数, 方法类似于坐标上升(固定其他变量, 研究某个变量), 每次启发式选择两个变量进行优化, 不断循环, 直到达到函数最优值;
由约束条件:
∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_iy_i = 0 i=1∑mαiyi=0
y i y_i yi已知, 若把 m − 1 个 α m-1个\alpha m−1个α固定, 那 α k \alpha_k αk就固定, 就无法优化;
所以只固定 m − 2 个 α m-2个\alpha m−2个α, 将 α 1 , α 2 \alpha_1,\alpha_2 α1,α2设置为变量, 固定其他参数;
注意:
K i j 表 示 的 是 核 函 数 K ( x i , x j ) K_{ij}表示的是核函数K(x_i,x_j) Kij表示的是核函数K(xi,xj)
对约束条件
α 1 y 1 + α 2 y 2 = − ∑ i = 3 m α i y i = 常 数 \alpha_1y_1 + \alpha_2y_2 = -\sum_{i=3}^m \alpha_iy_i = 常数 α1y1+α2y2=−i=3∑mαiyi=常数
求解
通过约束, 用 α 2 来 表 示 α 1 用\alpha_2 来表示 \alpha_1 用α2来表示α1, 带回目标中求极小(带回去求解就是一个很简单的一元函数求极小, 直接跳过了);
称此时求得的 α 2 \alpha_2 α2为
α 2 u n c l i p p e d = α o l d + y 2 ( E 1 − E 2 ) η \alpha_2^{unclipped} = \alpha^{old} + \frac{y_2(E_1-E_2)}{\eta} α2unclipped=αold+ηy2(E1−E2)
其中,
η = K 11 + K 22 − 2 K 12 E i = f ( x i ) − y i f ( x i ) = ∑ i = 1 m α i y i K ( x i x ) + b ( 判 别 函 数 ) \eta = K_{11} + K_{22} - 2K_{12}\\ E_i = f(x_i) - y_i \\ f(x_i)=\sum_{i=1}^m \alpha_iy_iK(x_ix)+b(判别函数)\\ η=K11+K22−2K12Ei=f(xi)−yif(xi)=i=1∑mαiyiK(xix)+b(判别函数)
上述求出的解未考虑到约束条件
0 ≤ α i ≤ C α 1 y 1 + α 2 y 2 = 常 数 0\leq \alpha_i \leq C\\ \alpha_1y_1 + \alpha_2y_2 = 常数 0≤αi≤Cα1y1+α2y2=常数
其实后一个约束条件上面已经考虑到了, 现在只是做一个一般性的讨论;
在二维平面上直观地表达两个约束条件:
对 α 2 \alpha_2 α2进行剪切,有
L ≤ α 2 ≤ H L\leq\alpha_2\leq H L≤α2≤H
其中,
{ y 1 ≠ y 1 , L = max ( 0 , α 2 − α 1 ) , H = m i n ( C , C + α 2 − α 1 ) y 1 = y 1 , L = max ( 0 , α 2 + α 1 − C ) , H = m i n ( C , α 2 + α 1 ) \begin{cases} y_1\neq y_1, L=\max(0, \alpha_2-\alpha_1), H=min(C, C+\alpha_2-\alpha_1)\\ y_1 = y_1,L=\max(0, \alpha_2+\alpha_1-C), H=min(C,\alpha_2+\alpha_1)\\ \end{cases} {y1=y1,L=max(0,α2−α1),H=min(C,C+α2−α1)y1=y1,L=max(0,α2+α1−C),H=min(C,α2+α1)
再带回约束 α 1 y 1 + α 2 y 2 = 常 数 , 求 出 α 1 \alpha_1y_1 + \alpha_2y_2 = 常数,求出\alpha_1 α1y1+α2y2=常数,求出α1;
首先遍历整个样本集, 选择违反KKT条件的 α 1 \alpha_1 α1
KKT条件:
{ α i = 0 , y i ( w T x i + b ) ≥ 1 α i = C , y i ( w T x i + b ) ≤ 1 0 < α i < C , y i ( w T x i + b ) = 1 \begin{cases} \alpha_i = 0, y_i(w^Tx_i + b) \geq 1 \\ \alpha_i = C, y_i(w^Tx_i + b) \leq 1 \\ 0 < \alpha_i < C, y_i(w^Tx_i + b) = 1 \\ \end{cases} ⎩⎪⎨⎪⎧αi=0,yi(wTxi+b)≥1αi=C,yi(wTxi+b)≤10<αi<C,yi(wTxi+b)=1
由于 α 2 u n c l i p p e d = α o l d + y 2 ( E 1 − E 2 ) η \alpha_2^{unclipped} = \alpha^{old} + \frac{y_2(E_1-E_2)}{\eta} α2unclipped=αold+ηy2(E1−E2)
后面的项相当于步长,我们希望算法尽快收敛,所以后面的步长越大越好;
前面选出的 α 1 对 应 E 1 \alpha_1对应E_1 α1对应E1
{ 当 E 1 > 0 时 , 选 择 最 小 的 E i 当 作 E 2 当 E 1 < 0 时 , 选 择 最 大 的 E i 当 作 E 2 \begin{cases} 当E_1>0时, 选择最小的E_i当作E_2\\ 当E_1<0时, 选择最大的E_i当作E_2\\ \end{cases} {当E1>0时,选择最小的Ei当作E2当E1<0时,选择最大的Ei当作E2
每完成对两个变量的优化后, 要对b的值进行更新, 因为b值关系到 f ( x i ) f(x_i) f(xi)的计算
b的计算
由 y 1 ( w T x 1 + b ) = 1 可 求 得 b 1 y_1(w^Tx_1 + b) = 1 可求得b_1 y1(wTx1+b)=1可求得b1
由 y 2 ( w T x 2 + b ) = 1 可 求 得 b 2 y_2(w^Tx_2 + b) = 1 可求得b_2 y2(wTx2+b)=1可求得b2
则 b 1 = b 2 b_1 = b_2 b1=b2
则取 b = b 1 + b 2 2 b = \frac{b_1 + b_2}{2} b=2b1+b2
标准的 SVM 的无阈值输出为
f ( x ) = h ( x ) + b f(x) = h(x) + b f(x)=h(x)+b
其中,
h ( x ) = ∑ i = 1 m y i α i K ( x i , x ) h(x) = \sum_{i=1}^{m}y_i\alpha_iK(xi, x) h(x)=i=1∑myiαiK(xi,x)
Platt(发明SMO的那个) 利用 sigmoid-fitting 方法,将标准 SVM 的输出结果进行后处理,转换成后验概率。
P ( y = 1 ∣ f ) = 1 1 + e A f + B P(y=1|f) = \frac{1}{1+e^{Af+B}} P(y=1∣f)=1+eAf+B1
其中,A、B为待拟合的参数,f为样本x的无阈值输出;
sigmoid-fitting 方法的优点在于保持 SVM 稀疏性的同时,可以良好的估计后验概率。
用极大似然估计来估计公式中的参数 A,B
定义为 t i = y i + 1 2 ( y i 所 属 的 类 别 : { − 1 , 1 } ) t_i = \frac{y_i+1}{2}(y_i所属的类别:\{-1,1\}) ti=2yi+1(yi所属的类别:{−1,1})
极小化训练集上的负对数似然函数
min − ∑ i = 1 m t i log P i + ( 1 − t i ) log ( 1 − P i ) 其 中 , P i = 1 1 + e A f i + B \min - \sum_{i=1}^{m}t_i\log P_i + (1-t_i)\log(1-P_i)\\ 其中, P_i = \frac{1}{1+e^{Af_i + B}} min−i=1∑mtilogPi+(1−ti)log(1−Pi)其中,Pi=1+eAfi+B1
梯度下降求解
(代码实现的时候, 将SVC中超参probability设置为True, 预测时predict_proba, 可以概率化输出)
还记得之前说过SVM有两种求解方法, 一种是前面的找支撑向量, 另一种是直接Loss函数梯度下降求解;
如图:0-1 损失是二分类问题的真正损失函数,合页损失与 logistic 损失是对 0-1 的损失函 数的近似。
SVM的loss函数就是用hinge loss
L ( y − ( w T x + b ) ) = [ 1 − y ( w T x + b ) ] + [ Z ] + = { Z , Z > 0 0 , Z < 0 L(y-(w^Tx+b)) = [1-y(w^Tx+b)]_+\\ [Z]_+ = \begin{cases} Z, Z > 0\\ 0, Z < 0 \\ \end{cases} L(y−(wTx+b))=[1−y(wTx+b)]+[Z]+={Z,Z>00,Z<0
即数据如果被分类正确, 损失为0; 如果被分类错误, 损失为Z;
可以直接梯度下降求解w,b因为没有约束了;
SVM多分类与Logistics回归差不多,就是OVO与OVR, 忘了回去看
优点:
缺点:
(吴恩达:)
SVM支持向量机就是这样了, 继续下一章吧!pd的Machine Learning