【机器学习基础】最大边缘分类器
本系列为《模式识别与机器学习》的读书笔记。
一,最大边缘分类器
考察线性模型的⼆分类问题,线性模型的形式为
y(x)=wTϕ(x)+b(7.1)y(\boldsymbol{x})=\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x})+b\tag{7.1} y(x)=wTϕ(x)+b(7.1)
其中 ϕ(x)\boldsymbol{\phi}(\boldsymbol{x})ϕ(x) 表⽰⼀个固定的特征空间变换,并且显式地写出了偏置参数 bbb 。训练数据集由 NNN 个输⼊向量 x1,…,xN\boldsymbol{x}_1,\dots,\boldsymbol{x}_Nx1,…,xN 组成,对应的⽬标值为 t1,…,tNt_1,\dots,t_Nt1,…,tN ,其中 tn∈{−1,1}t_n\in\{−1, 1\}tn∈{−1,1} , 新的数据点 x\boldsymbol{x}x 根据 y(x)y(\boldsymbol{x})y(x) 的符号进⾏分类。
现阶段,假设训练数据集在特征空间中是线性可分的,即根据定义,存在⾄少⼀个参数 w\boldsymbol{w}w 和 bbb 的选择⽅式,使得对于 tn=+1t_n = +1tn=+1 的点,函数(7.1)都满⾜ y(xn)>0y(\boldsymbol{x}_n)>0y(xn)>0 ,对于 tn=−1t_n = −1tn=−1 的点,都有 y(xn)<0y(\boldsymbol{x}_n)<0y(xn)<0 ,从⽽对于所有训练数据点,都有 tny(xn)>0t_ny(\boldsymbol{x}_n)>0tny(xn)>0 。
如果有多个能够精确分类训练数据点的解,那么应该尝试寻找泛化错误最⼩的那个解。 ⽀持向量机解决这个问题的⽅法是:引⼊边缘(margin
) 的概念,这个概念被定义为决策边界与任意样本之间的最⼩距离,如图7.1所⽰。
如图7.2,最⼤化边缘会⽣成对决策边界的⼀个特定的选择,这个决策边界的位置由数据点的⼀个⼦集确定,被称为⽀持向量,⽤圆圈表⽰。
在⽀持向量机中,决策边界被选为使边缘最⼤化的那个决策边界。
点 x\boldsymbol{x}x 距离由 y(x)=0y(\boldsymbol{x})=0y(x)=0 定义的超平⾯的垂直距离为 ∣y(x)∣∥w∥\frac{|y(\boldsymbol{x})|}{\|\boldsymbol{w}\|}∥w∥∣y(x)∣ ,其中 y(x)y(\boldsymbol{x})y(x) 的函数形式由公式(7.1)给出,我们感兴趣的是那些能够正确分类所有数据点的解,即对于所有的 nnn 都有 tny(xn)>0t_ny(\boldsymbol{x}_n)>0tny(xn)>0 ,因此点 xn\boldsymbol{x}_nxn 距离决策⾯的距离为
tny(xn)∥w∥=tn(wTϕ(xn)+b)∥w∥(7.2)\frac{t_ny(\boldsymbol{x}_n)}{\|\boldsymbol{w}\|}=\frac{t_n(\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)+b)}{\|\boldsymbol{w}\|}\tag{7.2} ∥w∥tny(xn)=∥w∥tn(wTϕ(xn)+b)(7.2)
边缘由数据集⾥垂直距离最近的点 xn\boldsymbol{x}_nxn 给出,希望最优化参数 w\boldsymbol{w}w 和 bbb ,使得这个距离能够最⼤化。因此最⼤边缘解可以通过下式得到:
argmaxw,b{1∥w∥minn[tn(wTϕ(xn)+b)]}(7.3)\underset{\boldsymbol{w}, b}{\arg \max}\left\{\frac{1}{\|\boldsymbol{w}\|} \min _{n}\left[t_{n}\left(\boldsymbol{w}^{T} \boldsymbol{\phi}\left(\boldsymbol{x}_{n}\right)+b\right)\right]\right\}\tag{7.3} w,bargmax{∥w∥1nmin[tn(wTϕ(xn)+b)]}(7.3)
注意到如果进⾏重新标度 w→κw\boldsymbol{w}\to\kappa\boldsymbol{w}w→κw 以及 b→κbb\to\kappa{b}b→κb , 那么任意点 xn\boldsymbol{x}_nxn 距离决策⾯的距离 tny(xn)∥w∥\frac{t_ny(\boldsymbol{x}_n)}{\|\boldsymbol{w}\|}∥w∥tny(xn) 不会发⽣改变。利用这个性质,对于距离决策⾯最近的点,令
tn(wTϕ(xn)+b)=1t_n(\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)+b)=1 tn(wTϕ(xn)+b)=1
在这种情况下,所有的数据点会满⾜限制
tn(wTϕ(xn)+b)≥1,n=1…,Nt_n(\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)+b)\ge1, n=1\dots,N tn(wTϕ(xn)+b)≥1,n=1…,N
这被称为决策超平⾯的标准表⽰。 对于使上式取得等号的数据点,我们说限制被激活(active
),对于其他的数据点,我们说限制未激活(inactive
)。根据定义,总会存在⾄少⼀个激活限制,因为总会有⼀个距离最近的点,并且⼀旦边缘被最⼤化,会有⾄少两个激活的限制。这样,最优化问题就简化为了最⼤化 ∥w∥−1\|\boldsymbol{w}\|^{-1}∥w∥−1 ,这等价于最⼩化 ∥w∥2\|\boldsymbol{w}\|^2∥w∥2 ,因此我们要在上述限制条件下,求解最优化问题
argminw,b12∥w∥2\underset{\boldsymbol{w},b}{\arg\min}\frac{1}{2}\|\boldsymbol{w}\|^{2} w,bargmin21∥w∥2
为了解决这个限制的最优化问题,引⼊拉格朗⽇乘数 an≥0a_n\ge0an≥0 。每个限制条件都对应着⼀个乘数 ana_nan ,从⽽可得下⾯的拉格朗⽇函数
L(w,b,a)=12∥w∥2−∑n=1Nan{tn(wTϕ(xn)+b)−1}(7.4)L(\boldsymbol{w},b,\boldsymbol{a})=\frac{1}{2}\|\boldsymbol{w}\|^{2}-\sum_{n=1}^{N}a_n\{t_n(\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)+b)-1\}\tag{7.4} L(w,b,a)=21∥w∥2−n=1∑Nan{tn(wTϕ(xn)+b)−1}(7.4)
其中 a=(a1,…,aN)T\boldsymbol{a} = (a_1,\dots,a_N)^{T}a=(a1,…,aN)T 。令 L(w,b,a)L(\boldsymbol{w},b,\boldsymbol{a})L(w,b,a) 关于 w\boldsymbol{w}w 和 bbb 的导数等于零,有
w=∑n=1Nantnϕ)(xn)∑n=1Nantn=0\boldsymbol{w}=\sum_{n=1}^{N}a_nt_n\boldsymbol{\phi})(\boldsymbol{x}_n)\\ \sum_{n=1}^{N}a_nt_n=0 w=n=1∑Nantnϕ)(xn)n=1∑Nantn=0
使⽤这两个条件从 L(w,b,a)L(\boldsymbol{w},b,\boldsymbol{a})L(w,b,a) 中消去 a\boldsymbol{a}a 和 bbb ,就得到了最⼤化边缘问题的对偶表⽰(dual representation
),其中要关于 a\boldsymbol{a}a 最⼤化
L~(a)=∑n=1Nan−12∑n=1N∑m=1Nanamtntmk(xn,xm)(7.5)\tilde{L}(\boldsymbol{a})=\sum_{n=1}^{N}a_n-\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}a_na_mt_nt_mk(\boldsymbol{x}_n,\boldsymbol{x}_m)\tag{7.5} L~(a)=n=1∑Nan−21n=1∑Nm=1∑Nanamtntmk(xn,xm)(7.5)
其中 k(x,x′)=ϕ(x)Tϕ(x′)k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\boldsymbol{\phi}(\boldsymbol{x})^{T}\boldsymbol{\phi}(\boldsymbol{x}^{\prime})k(x,x′)=ϕ(x)Tϕ(x′),限制条件为
an≥0,n=1…,N∑n=1Nantn=0a_n\ge0,n=1\dots,N\\ \sum_{n=1}^{N}a_nt_n=0 an≥0,n=1…,Nn=1∑Nantn=0
通过使⽤公式消去 w\boldsymbol{w}w ,y(x)y(\boldsymbol{x})y(x) 可以根据参数 {an}\{a_n\}{an} 和核函数表⽰,即
y(x)=∑n=1Nantnk(x,xn)+b(7.6)y(\boldsymbol{x})=\sum_{n=1}^{N}a_nt_nk(\boldsymbol{x},\boldsymbol{x}_n)+b\tag{7.6} y(x)=n=1∑Nantnk(x,xn)+b(7.6)
满足如下性质:
an≥0tny(xn)−1≥0an{tny(xn)−1}=0a_n\ge0\\ t_ny(\boldsymbol{x}_n)-1\ge0\\ a_n\{t_ny(\boldsymbol{x}_n)-1\}=0 an≥0tny(xn)−1≥0an{tny(xn)−1}=0
因此对于每个数据点,要么 an=0a_n = 0an=0 ,要么 tny(xn)=1t_n y(\boldsymbol{x}_n) = 1tny(xn)=1 。任何使得 an=0a_n = 0an=0 的数据点都不会出现在公式(7.5)的求和式中,因此对新数据点的预测没有作⽤。剩下的数据点被称为⽀持向量(support vector
)。
解决了⼆次规划问题,找到了 a\boldsymbol{a}a 的值之后,注意到⽀持向量 xn\boldsymbol{x}_nxn 满⾜ tny(xn)=1t_ny(\boldsymbol{x}_n)=1tny(xn)=1,就可以确定阈值参数 bbb 的值,可得
tn(∑m∈Samtmk(xn,xm)+b)=1(7.7)t_n\left(\sum_{m\in{\mathcal{S}}}a_mt_mk(\boldsymbol{x}_n,\boldsymbol{x}_m)+b\right)=1\tag{7.7} tn(m∈S∑amtmk(xn,xm)+b)=1(7.7)
其中 S\mathcal{S}S 表⽰⽀持向量的下标集合。 ⾸先乘以 tnt_ntn ,使⽤ tn2=1t_n^2=1tn2=1 的性质,然后对于所有的⽀持向量,整理⽅程,解出 bbb ,可得
b=1NS∑n∈S(tn−∑m∈Samtmk(xn,xm))(7.8)b=\frac{1}{N_\mathcal{S}}\sum_{n\in{\mathcal{S}}}\left(t_n-\sum_{m\in{\mathcal{S}}}a_mt_mk(\boldsymbol{x}_n,\boldsymbol{x}_m)\right)\tag{7.8} b=NS1n∈S∑(tn−m∈S∑amtmk(xn,xm))(7.8)
其中 NSN_\mathcal{S}NS 是⽀持向量的总数。
对于接下来的模型⽐较,可以将最⼤边缘分类器⽤带有简单⼆次正则化项的最⼩化误差函数表⽰,形式为
∑n=1NE∝(y(xn)tn−1)+λ∥w∥2\sum_{n=1}^{N}E_{\propto}(y(\boldsymbol{x}_n)t_n-1)+\lambda\|\boldsymbol{w}\|^{2} n=1∑NE∝(y(xn)tn−1)+λ∥w∥2
其中E∞(z)E_{\infty}(z)E∞(z) 是⼀个函数,当 z≥0z\ge0z≥0 时,函数值为零,其他情况下函数值为 ∞\infty∞ 。
如图7.3,⼆维空间中来⾃两个类别的⼈⼯⽣成数据的例⼦。图中画出了具有⾼斯核函数的⽀持向量机的得到的常数 y(xn)y(\boldsymbol{x}_n)y(xn) 的轮廓线。同时给出的时决策边界、边缘边界以及⽀持向量。
二,重叠类分布
在实际中,类条件分布可能重叠,这种情况下对训练数据的精确划分会导致较差的泛化能⼒。
引⼊松弛变量(slack variable
)ξn≥0\xi_n\ge 0ξn≥0 ,其中 n=1,…,Nn = 1,\dots, Nn=1,…,N ,每个训练数据点都有⼀个松弛变量(Bennett
, 1992; Cortes and Vapnik
, 1995)。对于位于正确的边缘边界内部的点或者边界上的点,ξn=0\xi_n=0ξn=0 ,对于其他点,ξn=∣tn−y(xn)∣\xi_n=|t_n−y(\boldsymbol{x}_n)|ξn=∣tn−y(xn)∣ 。 因此,对于位于决策边界 y(xn)=0y(\boldsymbol{x}n)=0y(xn)=0 上的点,ξn=1\xi_n=1ξn=1 ,并且 ξn>1\xi_n>1ξn>1 的点就是被误分类的点。 从而分类的限制条件为
tny(xn)≥1−ξn,n=1,…,Nt_ny(\boldsymbol{x}_n)\ge1-\xi_n,n=1,\dots,N tny(xn)≥1−ξn,n=1,…,N
其中松弛变量被限制为满⾜ ξn≥0\xi_n \ge 0ξn≥0 。ξn=0\xi_n = 0ξn=0 的数据点被正确分类,要么位于边缘上,要么在边缘的正确⼀侧。0<ξn≤10 < \xi_n\le 10<ξn≤1 的点位于边缘内部,但是在决策边界的正确⼀侧。ξn>1\xi_n > 1ξn>1 的点位于决策边界的错误⼀侧,是被错误分类的点。这种⽅法有时被描述成放宽边缘的硬限制,得到⼀个软边缘(soft margin
),并且允许⼀些训练数据点被错分。
如图7.4,松弛变量 ξn≥0\xi_n \ge 0ξn≥0 的说明。圆圈标记的数据点是⽀持向量。
现在的⽬标是最⼤化边缘,同时以⼀种⽐较柔和的⽅式惩罚位于边缘边界错误⼀侧的点。于是最⼩化
C∑n=1Nξn+12∥wn∥2C\sum_{n=1}^{N}\xi_n+\frac{1}{2}\|\boldsymbol{w}_n\|^{2} Cn=1∑Nξn+21∥wn∥2
其中参数 C>0C>0C>0 控制了松弛变量惩罚与边缘之间的折中。由于任何被误分类的数据点都有 ξn>1\xi_n>1ξn>1 ,因此 ∑nξn\sum_{n}\xi_n∑nξn 是误分类数据点数量的上界。于是,参数 CCC 类似于(作⽤相反的)正则化系数,因为它控制了最⼩化训练误差与模型复杂度之间的折中。
现在想要在限制条件以及 ξn≥0\xi_n \ge 0ξn≥0 的条件下最⼩化式,对应的拉格朗⽇函数为
L(w,b,ξ,a,μ)=12∥w∥2+C∑n=1Nξn−∑n=1Nan{tny(xn)−1+ξn}−∑n=1Nμnξn(7.9)L(\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{a},\boldsymbol{\mu})=\frac{1}{2}\|\boldsymbol{w}\|^{2}+C\sum_{n=1}^{N}\xi_n-\sum_{n=1}^{N}a_n\{t_ny(\boldsymbol{x}_n)-1+\xi_n\}-\sum_{n=1}^{N}\mu_n\xi_n\tag{7.9} L(w,b,ξ,a,μ)=21∥w∥2+Cn=1∑Nξn−n=1∑Nan{tny(xn)−1+ξn}−n=1∑Nμnξn(7.9)
其中 {an≥0}\{a_n \ge 0\}{an≥0} 和 {μn≥0}\{\mu_n \ge 0\}{μn≥0} 是拉格朗⽇乘数。对应的 KKT
条件为
an≥0tny(xn)−1+ξn≥0an(tny(xn)−1+ξn)=0μn≥0ξn≥0μnξn=0a_n\ge0\\ t_ny(\boldsymbol{x}_n)-1+\xi_n\ge0\\ a_n(t_ny(\boldsymbol{x}_n)-1+\xi_n)=0\\ \mu_n\ge0\\ \xi_n\ge0\\ \mu_n\xi_n=0 an≥0tny(xn)−1+ξn≥0an(tny(xn)−1+ξn)=0μn≥0ξn≥0μnξn=0
其中 n=1,…,Nn = 1,\dots, Nn=1,…,N 。
现在对 w\boldsymbol{w}w , bbb 和 {ξn}\{\xi_n\}{ξn} 进⾏最优化,有
∂L∂w=0⇒w=∑n=1Nantnϕ(xn)∂L∂b=0⇒∑n=1Nantn=0∂L∂ξn=0⇒an=C−μn(7.10)\frac{\partial{L}}{\partial\boldsymbol{w}}=0\Rightarrow\boldsymbol{w}=\sum_{n=1}^{N}a_nt_n\boldsymbol{\phi}(\boldsymbol{x}_n)\\ \frac{\partial{L}}{\partial{b}}=0\Rightarrow\sum_{n=1}^{N}a_nt_n=0\\ \frac{\partial{L}}{\partial{\xi_n}}=0\Rightarrow{a_n}=C-\mu_n\tag{7.10} ∂w∂L=0⇒w=n=1∑Nantnϕ(xn)∂b∂L=0⇒n=1∑Nantn=0∂ξn∂L=0⇒an=C−μn(7.10)
从而,
L~(a)=∑n=1Nan−12∑n=1N∑m=1Nanamtntmk(xn,xm)(7.11)\tilde{L}(\boldsymbol{a})=\sum_{n=1}^{N}a_n-\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}a_na_mt_nt_mk(\boldsymbol{x}_n,\boldsymbol{x}_m)\tag{7.11} L~(a)=n=1∑Nan−21n=1∑Nm=1∑Nanamtntmk(xn,xm)(7.11)
关于对偶变量 {an}\{a_n\}{an} 最⼤化公式(7.11)时必须要满⾜以下限制
0≤an≤C∑n=1Nantn=00\le{a_n}\le{C}\\ \sum_{n=1}^{N}a_nt_n=0 0≤an≤Cn=1∑Nantn=0
其中 n=1,…,Nn = 1,\dots, Nn=1,…,N 。 第一个公式被称为盒限制(box constraint
)。
对于数据点的⼀个⼦集,有 an=0a_n = 0an=0 ,在这种情况下这些数据点对于预测模型没有贡献;剩余的数据点组成了⽀持向量。这些数据点满⾜ an>0a_n > 0an>0 ,必须满⾜
tny(xn)=1−ξn(7.12)t_ny(\boldsymbol{x}_n)=1-\xi_n\tag{7.12} tny(xn)=1−ξn(7.12)
如果 an<Ca_n < Can<C ,那么 μn>0\mu_n > 0μn>0 ,则有 ξn=0\xi_n = 0ξn=0 ,从⽽这些点位于边缘上;an=Ca_n = Can=C 的点位于边缘内部,并且如果 ξn≤1\xi_n \le 1ξn≤1 则被正确分类,如果 ξn>1\xi_n > 1ξn>1 则分类错误。
为确定公式(7.1)中的参数 bbb ,注意到 0<an<C0<a_n<C0<an<C 的⽀持向量满⾜ ξn=0\xi_n = 0ξn=0 即 tny(xn)=1t_ny(\boldsymbol{x}_n)=1tny(xn)=1 ,因此就满⾜
tn(∑m∈Samtmk(xn,xm)+b)=1(7.13)t_n\left(\sum_{m\in{S}}a_mt_mk(\boldsymbol{x}_n,\boldsymbol{x}_m)+b\right)=1\tag{7.13} tn(m∈S∑amtmk(xn,xm)+b)=1(7.13)
通过求平均的⽅式得
b=1NM∑n∈M(tn−∑m∈Samtmk(xn,xm))(7.14)b=\frac{1}{N_\mathcal{M}}\sum_{n\in{\mathcal{M}}}\left(t_n-\sum_{m\in{\mathcal{S}}}a_mt_mk(\boldsymbol{x}_n,\boldsymbol{x}_m)\right)\tag{7.14} b=NM1n∈M∑(tn−m∈S∑amtmk(xn,xm))(7.14)
其中 M\mathcal{M}M 表⽰满⾜ 0<an<C0 < a_n < C0<an<C 的数据点的下标的集合。
⽀持向量机的另⼀种等价形式, 被称为 ν−SVM\nu-SVMν−SVM,由Schölkopf et al.
(2000)提出。它涉及到最⼩化
L~(a)=−12∑n=1N∑m=1Nanamtntmk(xn,xm)(7.15)\tilde{L}(\boldsymbol{a})=-\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}a_na_mt_nt_mk(\boldsymbol{x}_n,\boldsymbol{x}_m)\tag{7.15} L~(a)=−21n=1∑Nm=1∑Nanamtntmk(xn,xm)(7.15)
限制条件为
0≤an≤1N∑n=1Nantn=0∑n=1Nan≥ν0\le{a_n}\le\frac{1}{N}\\ \sum_{n=1}^{N}a_nt_n=0\\ \sum_{n=1}^{N}a_n\ge\nu 0≤an≤N1n=1∑Nantn=0n=1∑Nan≥ν
这种⽅法的优点是,参数 ν\nuν 代替了参数 CCC ,它既可以被看做边缘错误(margin error
)(ξn>0\xi_n > 0ξn>0 的点,因此就是位于边缘边界错误⼀侧的数据点,它可能被误分类也可能没被误分类)的上界, 也可以被看做⽀持向量⽐例的下界。
如图7.5,ν−SVM\nu-SVMν−SVM 应⽤于⼆维不可分数据集的例⼦,圆圈表⽰⽀持向量。这⾥使⽤了形如 exp(−γ∥x−x′∥2)\exp(-\gamma\| \boldsymbol{x}−\boldsymbol{x}^{\prime}\|^{2})exp(−γ∥x−x′∥2) 的⾼斯核,且 γ=0.45\gamma = 0.45γ=0.45 。
⼀种最流⾏的训练⽀持向量机的⽅法被称为顺序最⼩化优化(sequential minimal optimization
),或者称为 SMO
(Platt
, 1999),这种⽅法考虑了分块⽅法的极限情况,每次只考虑两个拉格朗⽇乘数。
考虑⼀个简单的⼆阶多项式核,⽤它的分量进⾏展开
k(x,z)=(1+xTz)2=(1+x1z1+x2z2)2=1+2x1z1+2x2z2+x12z12+2x1z1x2z2+x22z22=(1,2x1,2x2,x12,2x1x2,x22)(1,2z1,2z2,z12,2z1z2,z22)T=ϕ(x)Tϕ(z)(7.16)\begin{aligned}k(\boldsymbol{x},\boldsymbol{z})&=(1+\boldsymbol{x}^{T}\boldsymbol{z})^{2}\\&=(1+x_1z_1+x_2z_2)^{2}\\&=1+2x_1z_1+2x_2z_2+x_1^2z_1^2+2x_1z_1x_2z_2+x_2^2z_2^2\\&=(1,\sqrt{2}x_1,\sqrt{2}x_2,x_1^2,\sqrt{2}x_1x_2,x_2^2)(1,\sqrt{2}z_1,\sqrt{2}z_2,z_1^2,\sqrt{2}z_1z_2,z_2^2)^{T}\\&=\boldsymbol{\phi}(\boldsymbol{x})^{T}\boldsymbol{\phi}(\boldsymbol{z})\end{aligned}\tag{7.16} k(x,z)=(1+xTz)2=(1+x1z1+x2z2)2=1+2x1z1+2x2z2+x12z12+2x1z1x2z2+x22z22=(1,2x1,2x2,x12,2x1x2,x22)(1,2z1,2z2,z12,2z1z2,z22)T=ϕ(x)Tϕ(z)(7.16)
于是这个核函数表⽰六维特征空间中的⼀个内积, 其中输⼊空间到特征空间的映射由向量函数 ϕ(x)\boldsymbol{\phi}(\boldsymbol{x})ϕ(x) 描述,然⽽对这些特征加权的系数被限制为具体的形式。因此,原始⼆维空间 x\boldsymbol{x}x 中的 任意点集都会被限制到这个六维特征空间中的⼆维⾮线性流形中。
⽀持向量机不提供概率输出,⽽是对新的输⼊进⾏分类决策。 Veropoulos et al.
(1999)讨论了对 SVM
的修改,使其能控制假阳性和假阴性之间的折中。然⽽,如果希望把 SVM
⽤作较⼤的概率系统中的⼀个模块,那么需要对于新的输 ⼊ x\boldsymbol{x}x 的类别标签 ttt 的概率预测。为了解决这个问题,Platt
(2000)提出了使⽤ logistic sigmoid
函数拟合训练过的⽀持向量机的输出的⽅法。具体来说,需要求解的条件概率被假设具有下⾯的形式
p(t=1∣x)=σ(Ay(x)+B)(7.17)p(t=1|\boldsymbol{x})=\sigma(Ay(\boldsymbol{x})+B)\tag{7.17} p(t=1∣x)=σ(Ay(x)+B)(7.17)
其中 y(x)y(\boldsymbol{x})y(x) 由公式(7.1)定义, 参数 AAA 和 BBB 的值通过最⼩化交叉熵误差函数的⽅式确定。 交叉熵误差函数根据由 y(xn)y(\boldsymbol{x}_n)y(xn) 和 tnt_ntn 组成的训练数据集定义。⽤于拟合sigmoid
函数的数据需要独⽴于训练原始 SVM
的数据,为了避免严重的过拟合现象。
三,与 logistic
回归的关系
对于位于边缘边界正确⼀侧的数据点,即满⾜ yntn≥1y_nt_n\ge1yntn≥1 的数据点,有 ξn=0\xi_n = 0ξn=0 ,对于剩余的数据点,有 ξn=1−yntn\xi_n = 1 − y_nt_nξn=1−yntn 。因此⽬标函数可以写成(忽略整体的具有可乘性的常数)
∑n=1NESV(yntn)+λ∥w∥2\sum_{n=1}^{N}E_{SV}(y_nt_n)+\lambda\|\boldsymbol{w}\|^{2} n=1∑NESV(yntn)+λ∥w∥2
其中 λ=(2C)−1\lambda = (2C)^{−1}λ=(2C)−1 ,ESV(⋅)E_{SV} (·)ESV(⋅) 是铰链(hinge
)误差函数,定义为
ESV(yntn)=[1−yntn]+E_{SV}(y_nt_n)=[1-y_nt_n]_{+} ESV(yntn)=[1−yntn]+
其中 [⋅]+[·]_+[⋅]+ 表⽰正数部分。
如图7.6,⽀持向量机使⽤的“铰链”误差函数的图像,⽤蓝⾊表⽰。同时画出的还有logistic
回归的误差函数,使⽤因⼦ 1ln(2)\frac{1}{\ln(2)}ln(2)1 重新放缩,从⽽通过点 (0,1)(0, 1)(0,1) ,⽤红⾊表⽰,还画出了误分类误差函数(⿊⾊)和平⽅误差函数(绿⾊)。
考虑logistic
回归模型,发现⽐较⽅便的做法是对⽬标变量 t∈{0,1}t\in\{0, 1\}t∈{0,1} 进⾏操作。为了与⽀持向量机进⾏对⽐,⾸先使⽤⽬标变量 t∈{−1,1}t\in\{−1,1\}t∈{−1,1} 重写最⼤似然logistic
回归函数。注意到 p(t=1∣y)=σ(y)p(t=1|y)=\sigma(y)p(t=1∣y)=σ(y) ,其中 y(x)y(\boldsymbol{x})y(x) 由公式(7.1)给出,σ(y)\sigma(y)σ(y) 是的 logistic sigmoid
函数。因此有 p(t=−1∣y)=1−σ(y)=σ(−y)p(t=−1|y)=1−\sigma(y)=\sigma(−y)p(t=−1∣y)=1−σ(y)=σ(−y) ,从而
p(t∣y)=σ(yt)(7.18)p(t|y)=\sigma(yt)\tag{7.18} p(t∣y)=σ(yt)(7.18)
从这个式⼦中可以通过对似然函数取负对数的⽅式构造⼀个误差函数。带有正则化项的误差函数的形式为
∑n=1NELR(yntn)+λ∥w∥2\sum_{n=1}^{N}E_{LR}(y_nt_n)+\lambda\|\boldsymbol{w}\|^{2} n=1∑NELR(yntn)+λ∥w∥2
其中
ELR(yntn)=ln(1+exp(−yt))E_{LR}(y_nt_n)=\ln(1+\exp(-yt)) ELR(yntn)=ln(1+exp(−yt))
logistic
误差函数与铰链损失都可以看成对误分类误差函数的连续近似。有时⽤于解决分类问题的另⼀个连续近似的误差函数是平⽅和误差函数。但是,它具有下⾯的性质:它会着重强调那些被正确分类的在正确的⼀侧距离决策边界较远的点。
四,多类 SVM
将多个两类 SVM
组合构造多类分类器的⼀种常⽤的⽅法(Vapnik
, 1998)是构建 KKK 个独⽴的 SVM
,其中第 kkk 个模型 yk(x)y_k(\boldsymbol{x})yk(x) 在训练时,使⽤来⾃类别 Ck\mathcal{C}_kCk 的数据作为正例,使⽤来⾃剩余的 K−1K − 1K−1 个类别的数据作为负例。这被称为“1对剩余”(one-versus-the-rest
)⽅法。然⽽使⽤独⽴的分类器进⾏决策会产⽣不相容的结果,其中⼀个输⼊会同时被分配到多个类别中,这个问题有时可以这样解决:对于新的输⼊ x\boldsymbol{x}x ,使⽤下式做预测
y(x)=maxkyk(x)(7.19)y(\boldsymbol{x})=\underset{k}{\max}y_k(\boldsymbol{x})\tag{7.19} y(x)=kmaxyk(x)(7.19)
不幸的是,这种启发式的⽅法会产⽣⼀个问题:不同的分类器是在不同的任务上进⾏训练的,⽆法保证不同分类器产⽣的实数值 yk(x)y_k(\boldsymbol{x})yk(x) 具有恰当的标度。
“1对剩余”⽅法的另⼀个问题是训练集合不平衡。
Lee et al.
(2001)提出了“1对剩余”⽅法的⼀种变体。这种变体修改了⽬标值,使得正例类别的⽬标值为 +1+1+1,负例类别的⽬标值为 −1K−1−\frac{1}{K−1}−K−11 。
Weston and Watkins
(1999)定义了⼀个单⼀⽬标函数⽤来同时训练所有的 KKK 个 SVM
,基于的是最⼤化每个类别与其余剩余类别的边缘。然⽽,这会导致训练过程变慢,因为这种⽅法需要求解的不是 NNN 个数据点上的 KKK 个独⽴的最优化问题(整体代价为 O(KN2)O(KN^2)O(KN2)),⽽是要求解⼀个规模为 (K−1)N(K − 1)N(K−1)N 的单⼀的最优化问题,整体代价为 O(K2N2)O(K^2N^2)O(K2N2) 。
另⼀种⽅法是在所有可能的类别对之间训练 K(K−1)2\frac{K(K−1)}{2}2K(K−1) 个不同的⼆分类 SVM
,然后将测试数据点分到具有最⾼“投票数”的类别中去。这种⽅法有时被称为“1对1”(one-versus-one
)。
后⼀个问题可以通过将每对分类器组织成有向⽆环图的⽅式解决,这就产⽣了 DAGSVM
(Platt et al.
, 2000)。对于 KKK 个类别, DAGSVM
共有 K(K−1)2\frac{K(K−1)}{2}2K(K−1) 个分类器。每次对新的测试点分类时,只需要 K−1K − 1K−1 对分类器进⾏计算。选定的分类器是根据遍历图的路径确定的。
Dietterich and Bakiri
(1995)提出了⼀种不同的⽅法解决多分类问题。这种⽅法基于的是误差-修正输出编码,并且被Allwein et al.
(2000)⽤到⽀持向量机中,这种⽅法可以被看做“1对1”投票⽅法的⼀个推⼴。这种⽅法中,⽤来训练各个分类器的类别划分的⽅式更加⼀般,KKK 个类别本⾝被表⽰为选定的两类分类器产⽣的响应的集合。结合⼀套合适的解码⽅法,这种⽅法对于错误以及各个分类器的输出的歧义性具有鲁棒性。
五,回归问题的 SVM
在简单的线性回归模型中, 最⼩化⼀个正则化的误差函数
12∑n=1N{yn−tn}2+λ2∥w∥2\frac{1}{2}\sum_{n=1}^{N}\{y_n-t_n\}^{2}+\frac{\lambda}{2}\|\boldsymbol{w}\|^{2} 21n=1∑N{yn−tn}2+2λ∥w∥2
为了得到稀疏解,⼆次误差函数被替换为⼀个 ϵ\epsilonϵ -不敏感误差函数(ϵ-insensitive error function
) (Vapnik
, 1995)。如果预测 y(x)y(\boldsymbol{x})y(x) 和⽬标 ttt 之间的差的绝对值⼩于 ϵ\epsilonϵ,那么这个误差函数给出的误差等于零,其中 ϵ>0\epsilon > 0ϵ>0 。 ϵ\epsilonϵ -不敏感误差函数 的⼀个简单的例⼦
Eϵ(y(x)−t)={0,如果∣y(w)−t∣<ϵ∣y(x)−t∣−ϵ,其他情况(7.20)E_{\epsilon}(y(\boldsymbol{x})-t) = \begin{cases} 0, & 如果|y(\boldsymbol{w})-t|<\epsilon \\ |y(\boldsymbol{x})-t|-\epsilon, & 其他情况 \end{cases}\tag{7.20} Eϵ(y(x)−t)={0,∣y(x)−t∣−ϵ,如果∣y(w)−t∣<ϵ其他情况(7.20)
它在不敏感区域之外,会有⼀个与误差相关联的线性代价。
如图7.7,ϵ\epsilonϵ -不敏感误差函数(红⾊)的图像。在不敏感区域之外,误差函数值随着距离线性增⼤。作为对⽐,同时给出了⼆次误差函数(绿⾊)。
于是最⼩化正则化的误差函数,形式为
C∑n=1NEϵ(y(x)−tn)+λ2∥w∥2C\sum_{n=1}^{N}E_{\epsilon}(y(\boldsymbol{x})-t_n)+\frac{\lambda}{2}\|\boldsymbol{w}\|^{2} Cn=1∑NEϵ(y(x)−tn)+2λ∥w∥2
其中 y(x)y(\boldsymbol{x})y(x) 由公式(7.1)给出。
通过引⼊松弛变量的⽅式,可以重新表达最优化问题。对于每个数据点 xn\boldsymbol{x}_nxn ,现在需要两个松弛变量 ξn≥0\xi_n\ge0ξn≥0 和 ξ^n≥0\hat{\xi}_n\ge0ξ^n≥0 , 其中 ξn>0\xi_n > 0ξn>0 对应于 tn>y(xn)+ϵt_n > y(\boldsymbol{x}_n)+\epsilontn>y(xn)+ϵ 的数据点,ξ^>0\hat{\xi}>0ξ^>0 对应于 tn<y(xn)−ϵt_n < y(\boldsymbol{x}_n)−\epsilontn<y(xn)−ϵ 的数据点。
如图7.8,SVM
回归的说明。图中画出了回归曲线以及 ϵ\epsilonϵ-不敏感“管道”。同时给出的是松弛变量 ξ\xiξ 和 ξ^\hat{\xi}ξ^ 的例⼦。 对于 ϵ\epsilonϵ -管道上⽅的点,ξ>0\xi>0ξ>0 且 ξ^=0\hat{\xi}=0ξ^=0 ,对于 ϵ\epsilonϵ -管道下⽅的点,ξ=0\xi=0ξ=0 且 ξ^>0\hat{\xi}>0ξ^>0, 对于 ϵ\epsilonϵ -管道内部的点,ξ=0\xi=0ξ=0 且 ξ^=0\hat{\xi}=0ξ^=0 。
⽬标点位于 ϵ\epsilonϵ-管道内的条件是 yn−ϵ≤tn≤yn+ϵy_n−\epsilon \le t_n \le y_n+\epsilonyn−ϵ≤tn≤yn+ϵ ,其中 yn=y(xn)y_n=y(\boldsymbol{x}_n)yn=y(xn) 。引⼊松弛变量使得数据点能够位于管道之外,只要松弛变量不为零即可。对应的条件变为
tn≤y(xn)+ϵ+ξntn≥y(xn)−ϵ−ξ^nt_n\le y(\boldsymbol{x}_n)+\epsilon+\xi_n\\ t_n\ge y(\boldsymbol{x}_n)-\epsilon-\hat{\xi}_n tn≤y(xn)+ϵ+ξntn≥y(xn)−ϵ−ξ^n
⽀持向量回归的误差函数可以写成
C∑n=1N(ξn+ξ^n)+λ2∥w∥2C\sum_{n=1}^{N}(\xi_n+\hat{\xi}_n)+\frac{\lambda}{2}\|\boldsymbol{w}\|^{2} Cn=1∑N(ξn+ξ^n)+2λ∥w∥2
引⼊拉格朗⽇乘数 an≥0a_n\ge0an≥0 , a^n≥0\hat{a}_n\ge0a^n≥0 , μn≥0\mu_n\ge0μn≥0 以及 μ^n≥0\hat{\mu}_n\ge0μ^n≥0 ,然后最优化拉格朗⽇函数
L=C∑n=1N(ξn+ξ^n)+λ2∥w∥2−∑n=1N(μnξn+μ^nξ^n)−∑n=1Nan(ϵ+ξn+yn−tn)−∑n=1Na^n(ϵ+ξ^n−yn+tn)(7.21)\begin{aligned}L&=C\sum_{n=1}^{N}(\xi_n+\hat{\xi}_n)+\frac{\lambda}{2}\|\boldsymbol{w}\|^{2}-\sum_{n=1}^{N}(\mu_n\xi_n+\hat{\mu}_n\hat{\xi}_n)\\&-\sum_{n=1}^{N}a_n(\epsilon+\xi_n+y_n-t_n)-\sum_{n=1}^{N}\hat{a}_n(\epsilon+\hat{\xi}_n-y_n+t_n)\end{aligned}\tag{7.21} L=Cn=1∑N(ξn+ξ^n)+2λ∥w∥2−n=1∑N(μnξn+μ^nξ^n)−n=1∑Nan(ϵ+ξn+yn−tn)−n=1∑Na^n(ϵ+ξ^n−yn+tn)(7.21)
令拉格朗⽇函数关于 w\boldsymbol{w}w , bbb , ξn\xi_nξn 和 ξ^n\hat{\xi}_nξ^n 的导数为零,有
∂L∂w=0⇒w=∑n=1N(an−a^n)ϕ(xn)∂L∂b=0⇒∑n=1N(an−a^n)=0∂L∂ξn=0⇒an=C−μn∂L∂ξ^n=0⇒a^n=C−μ^n\frac{\partial{L}}{\partial\boldsymbol{w}}=0\Rightarrow\boldsymbol{w}=\sum_{n=1}^{N}(a_n-\hat{a}_n)\boldsymbol{\phi}(\boldsymbol{x}_n)\\ \frac{\partial{L}}{\partial{b}}=0\Rightarrow\sum_{n=1}^{N}(a_n-\hat{a}_n)=0\\ \frac{\partial{L}}{\partial{\xi_n}}=0\Rightarrow{a_n}=C-\mu_n\\ \frac{\partial{L}}{\partial{\hat{\xi}_n}}=0\Rightarrow{\hat{a}_n}=C-\hat{\mu}_n ∂w∂L=0⇒w=n=1∑N(an−a^n)ϕ(xn)∂b∂L=0⇒n=1∑N(an−a^n)=0∂ξn∂L=0⇒an=C−μn∂ξ^n∂L=0⇒a^n=C−μ^n
对偶问题涉及到关于 {an}\{a_n\}{an} 和 {a^n}\{\hat{a}_n\}{a^n} 最⼤化
L~(a,a^)=−12∑n=1N∑m=1N(an−a^n)(am−a^m)k(xn,xm)−ϵ∑n=1N(an+a^n)+∑n=1N(an−a^n)tn(7.22)\begin{aligned}\tilde{L}(\boldsymbol{a},\hat{\boldsymbol{a}})&=-\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}(a_n-\hat{a}_n)(a_m-\hat{a}_m)k(\boldsymbol{x}_n,\boldsymbol{x}_m)\\&-\epsilon\sum_{n=1}^{N}(a_n+\hat{a}_n)+\sum_{n=1}^{N}(a_n-\hat{a}_n)t_n\end{aligned}\tag{7.22} L~(a,a^)=−21n=1∑Nm=1∑N(an−a^n)(am−a^m)k(xn,xm)−ϵn=1∑N(an+a^n)+n=1∑N(an−a^n)tn(7.22)
其中核 k(x,x′)=ϕ(x)Tϕ(x′)k(\boldsymbol{x},\boldsymbol{x}^{\prime})=\boldsymbol{\phi}(\boldsymbol{x})^{T}\boldsymbol{\phi}(\boldsymbol{x}^{\prime})k(x,x′)=ϕ(x)Tϕ(x′) 。
从而盒限制
0≤an≤C0≤a^n≤C0\le a_n \le C\\ 0\le \hat{a}_n \le C 0≤an≤C0≤a^n≤C
对于新的输⼊变量,可以使⽤下式进⾏预测
y(x)=∑n=1N(an−a^n)k(x,xn)+b(7.23)y(\boldsymbol{x})=\sum_{n=1}^{N}(a_n-\hat{a}_n)k(\boldsymbol{x},\boldsymbol{x}_n)+b\tag{7.23} y(x)=n=1∑N(an−a^n)k(x,xn)+b(7.23)
对应的Karush-Kuhn-Tucker
(KKT
)条件说明了在解的位置,对偶变量与限制的乘积必须等于零,形式为
an(ϵ+ξn+yn−tn)=0a^n(ϵ+ξ^n−yn+tn)=0(C−an)ξn=0(C−a^n)ξ^n=0a_n(\epsilon+\xi_n+y_n-t_n)=0\\ \hat{a}_n(\epsilon+\hat{\xi}_n-y_n+t_n)=0\\ (C-a_n)\xi_n=0\\ (C-\hat{a}_n)\hat{\xi}_n=0 an(ϵ+ξn+yn−tn)=0a^n(ϵ+ξ^n−yn+tn)=0(C−an)ξn=0(C−a^n)ξ^n=0
考虑⼀个数据点,满⾜ 0<an<C0 < a_n < C0<an<C 。根据公式,⼀定有ξn=0\xi_n=0ξn=0 ,ϵ+yn−tn=0\epsilon + y_n − t_n = 0ϵ+yn−tn=0 。使⽤公式(7.1),然后求解 bbb ,有
b=tn−ϵ−wTϕ(xn)=tn−ϵ−∑m=1N(am−a^m)k(xn,xm)(7.24)\begin{aligned}b&=t_n-\epsilon-\boldsymbol{w}^{T}\boldsymbol{\phi}(\boldsymbol{x}_n)\\&=t_n-\epsilon-\sum_{m=1}^{N}(a_m-\hat{a}_m)k(\boldsymbol{x}_n,\boldsymbol{x}_m)\end{aligned}\tag{7.24} b=tn−ϵ−wTϕ(xn)=tn−ϵ−m=1∑N(am−a^m)k(xn,xm)(7.24)
与分类问题的情形相同,有另⼀种⽤于回归的 SVM
的形式。这种形式的 SVM
中,控制复杂度的参数有⼀个更加直观的意义(Schölkopf et al.
, 2000)。特别地,我们不固定不敏感区域 ϵ\epsilonϵ 的宽度,⽽是固定位于管道外部的数据点的⽐例 ν\nuν ,涉及到最⼤化
L~(a,a^)=−12∑n=1N∑m=1N(an−a^n)(am−a^m)k(xn,xm)+∑n=1N(an−a^n)tn(7.25)\begin{aligned}\tilde{L}(\boldsymbol{a},\hat{\boldsymbol{a}})&=-\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}(a_n-\hat{a}_n)(a_m-\hat{a}_m)k(\boldsymbol{x}_n,\boldsymbol{x}_m)\\&+\sum_{n=1}^{N}(a_n-\hat{a}_n)t_n\end{aligned}\tag{7.25} L~(a,a^)=−21n=1∑Nm=1∑N(an−a^n)(am−a^m)k(xn,xm)+n=1∑N(an−a^n)tn(7.25)
限制条件为
0≤an≤CN0≤a^n≤CN∑n=1N(an−a^n)=0∑n=1N(an+a^n)≤νC0\le a_n \le \frac{C}{N}\\ 0\le \hat{a}_n \le \frac{C}{N}\\ \sum_{n=1}^{N}(a_n-\hat{a}_n)=0\\ \sum_{n=1}^{N}(a_n+\hat{a}_n)\le\nu C 0≤an≤NC0≤a^n≤NCn=1∑N(an−a^n)=0n=1∑N(an+a^n)≤νC
如图7.9,ν−SVM\nu-SVMν−SVM 回归应⽤到⼈⼯⽣成的正弦数据集上的说明,SVM
使⽤了⾼斯核。预测分布曲线为红⾊曲线,ϵ\epsilonϵ -不敏感管道对应于阴影区域。此外,数据点⽤绿⾊表⽰,⽀持向量⽤蓝⾊圆圈标记。
六,计算学习理论
历史上, ⽀持向量机⼤量地使⽤⼀个被称为计算学习理论(computational learning theory
)的理论框架进⾏分析。这个框架有时候也被称为统计学习理论(statistical learning theory
)(Anthony and Biggs
, 1992; Kearns and Vazirani
, 1994; Vapnik
, 1995; Vapnik
, 1998)。 这个框架起源于Valiant
(1984),他建⽴了概率近似正确(probably approximately correct
)或者称为 PAC
的学习框架。PAC
学习框架的⽬标是理解为两个给出较好的泛化能⼒,需要多⼤的数据集。
假设从联合概率分布 p(x,t)p(\boldsymbol{x},\boldsymbol{t})p(x,t) 中抽取⼀个⼤⼩为 NNN 的数据集 D\mathcal{D}D ,其中 x\boldsymbol{x}x 是输⼊变量,t\boldsymbol{t}t 表⽰类别标签。我们把注意⼒集中于“⽆噪声”的情况,即类别标签由某个(未知的)判别函数 t=g(x)\boldsymbol{t} = \boldsymbol{g}(\boldsymbol{x})t=g(x) 确定。在PAC
学习中,空间 F\mathcal{F}F 是⼀个以训练集 D\mathcal{D}D 为基础的函数组成的空间,从空间 F\mathcal{F}F 中抽取⼀个函数 f(x;D)\boldsymbol{f}(\boldsymbol{x};\mathcal{D})f(x;D),如果它的期望错误率⼩于某个预先设定的阈值 ϵ\epsilonϵ ,即
Ex,t[I(f(x;D)≠t)]<ϵ(7.26)\mathbb{E}_{\boldsymbol{x},\boldsymbol{t}}[I(\boldsymbol{f}(\boldsymbol{x};\mathcal{D})\ne\boldsymbol{t})]<\epsilon\tag{7.26} Ex,t[I(f(x;D)=t)]<ϵ(7.26)
那么就说函数 f(x;D)\boldsymbol{f}(\boldsymbol{x};\mathcal{D})f(x;D) 具有较好的泛化能⼒。 其中 I(⋅)I(·)I(⋅) 是⽰性函数,期望是关于概率分布 p(x,t)p(\boldsymbol{x},\boldsymbol{t})p(x,t) 的期望。 式⼦左侧的项是⼀个随机变量, 因为它依赖于训练数据集 D\mathcal{D}D 。PAC
框架要求,对于从概率分布 p(x,t)p(\boldsymbol{x},\boldsymbol{t})p(x,t) 中随机抽取的数据集 D\mathcal{D}D ,公式(7.26)成⽴的概率要⼤于 1−δ1−\delta1−δ 。 这 ⾥ δ\deltaδ 是另⼀个预先设定的参数,术语“概率近似正确”来⾃于下⾯的要求:以⼀个较⾼的概 率(⼤于 1−δ1−\delta1−δ ), 使得错误率较⼩(⼩于 ϵ\epsilonϵ )。 对于⼀个给定的模型空间 F\mathcal{F}F , 以及给定的参数 ϵ\epsilonϵ 和 δ\deltaδ , PAC
学习的⽬标是提供满⾜这个准则所需的最⼩数据集规模 NNN 的界限。在 PAC
学习中, ⼀个关键的量是 Vapnik-Chervonenkis
维度 (Vapnik-Chervonenkis dimension
),或者被称为 VC
维度 ,它提供了函数空间复杂度的⼀个度量,使得 PAC
框架能够扩展到包含⽆穷多个函数的空间。
⼀种提升 PAC
界限的紧致程度的⽅法是 PAC
-贝叶斯框架(PAC-Bayesian framework
)(McAllester
, 2003), 它考虑了空间 F\mathcal{F}F 上的函数的概率分布情况, 有些类似于贝叶斯⽅法中的先验概率。
【机器学习基础】最大边缘分类器相关推荐
- python分类器鸢尾花怎么写_python机器学习基础教程-鸢尾花分类
一: 环境准备: 1.导入的库: importnumpy as npimportmatplotlib.pyplot as pltimportpandas as pdimport mglearn 2.导 ...
- 计算机视觉面试宝典--深度学习机器学习基础篇(四)
计算机视觉面试宝典–深度学习机器学习基础篇(四) 本篇主要包含SVM支持向量机.K-Means均值以及机器学习相关常考内容等相关面试经验. SVM-支持向量机 支持向量机(support vector ...
- review2:机器学习基础
review2:机器学习基础 第二章 机器学习基础 2.1 大话理解机器学习本质 2.2 各种常见算法图示 2.3 监督学习.非监督学习.半监督学习.弱监督学习? 2.4 监督学习有哪些步骤 2.5 ...
- Python机器学习基础教程-第2章-监督学习之K近邻
前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...
- python基础教程免费下载-《Python机器学习基础教程》高清版免费PDF下载
Python机器学习基础教程-[德] 安德里亚斯·穆勒(Andreas C.Müller)[美]莎拉·吉多(Sarah Guido) 著,张亮(hysic) 译 下载地址1:网盘下载 下载地址2:网盘 ...
- 水很深的深度学习-Task02机器学习基础
机器学习基础 目录 机器学习基础 一.什么是机器学习? 如何寻找这个函数? 机器学习三板斧 学习路线 二.机器学习算法的类型 1. 有监督学习 2. 无监督学习 3. 强化学习 4.机器学习算法的系统 ...
- 最新版学习笔记---Python机器学习基础教程(1)Irises(鸢尾花)分类---附完整代码
开始学习机器学习基础,在此留下学习心得与自己的理解. 啥也不说,先看一下鸢尾花啥样 好看吧~~~~ Iris 1.环境搭建 2.了解数据 2.1读取数据 2.2查看数据 3.分离数据 4.构建模型(k ...
- 2.机器学习基础(一)
文章目录 第二章 机器学习基础 2.1 基本概念 2.1.1 什么是神经网络 2.1.2 各种常见算法图示 2.1.3 计算图的导数计算 2.1.4 理解局部最优与全局最优 2.1.5 大数据与深度学 ...
- 【机器学习系列】之机器学习基础
作者:張張張張 github地址:https://github.com/zhanghekai [转载请注明出处,谢谢!] 文章目录 一.机器学习概述 二.研究内容 三.研究意义及现状 四.机器学习组成 ...
最新文章
- JAVA基础15-Java内部类
- [安卓基础] 006.打开另一个Activity
- JavaScript 实现数据结构中的所有算法---通俗易懂
- 使用randomaccessfile类将一个文本文件中的内容逆序输出_Java IO2:RandomAccessFile
- mysql 清理relay日志_Mysql 删除从数据库的relay logs最佳方式、最安全方式
- shell 学习之if语句
- python银行排队系统仿真_单片机实现银行排队叫号系统Proteus仿真
- Unity3d笔记——制作简单动画
- sakai mysql_sakai 开发环境搭建(一)
- 32位计算机怎么安装ps,Ps安装包怎么安装到电脑上,Ps安装本地安装技巧
- codeblock配置opengl
- 机器人肖恩百度云网盘_《探险活宝遥远国度》百度云(全4集完结版)网盘资源【1080p】完整无删减资源共享...
- Unity 之 贝塞尔曲线介绍和实际使用
- git中提交显示!rejected,如何解决?
- 最新冰盾DDoS防火墙V9.1 新增防护功能更强大
- 动态规划C++实现--换钱的方法数(二)(动态规划及其改进方法)
- 微信小程序接入第三方接口
- happyCode(11start) 权限控制 shiro 密码MD5安全加密,密码盐,系统用户认证
- 从语音角度看湖南泸溪方言的归属
- CF 375C Circling Round Treasures [DP(spfa) 状压 射线法]
热门文章
- oauth2生成jwt令牌
- 已解决ImportError: Pandas requires version ‘2.0.1‘ or newer of ‘xlrd‘ (version ‘1.2.0‘ currently instal
- jpress转换html5,docker-compose安装jpress(这种是war包和生成文件在宿主机,运行在docker上)...
- linux双显卡配置_linux双显卡配置 linux网络配置
- 吵翻了!导师确认录取后却被学生放了鸽子,生气之余导师建了个“失信名单”挂到网上
- 089 定积分之双纽线、心形线、摆线
- dalao的tajan模板
- i2c的IOL及上拉电阻
- php 支付宝实名认证
- (原創) 如何一個字元一個字元的印出字串? (C/C++) (C)