您的位置:首页 > 其它

Andrew Ng机器学习入门学习笔记(六)之支持向量机(SVM)

2015-12-28 15:20 537 查看

一.支持向量机的引入

支持向量机(SVM)是一种极受欢迎的监督学习算法,为了引入支持向量机,我们首先从另一个角度看逻辑回归。

1.从单个样本代价考虑

假设函数hθ(x)=11+e−θTxh_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}。由于S型函数有如下图的特性,



则,如果y=1y=1,那我们希望hθ(x)≈1h_\theta(x)≈1,即θTx>>0\theta^Tx>>0;如果y=0y=0,那我们希望hθ(x)≈0h_\theta(x)≈0,即θTx<<0\theta^Tx<<0。

对于逻辑回归,对于单个样本(x,y)(x,y),其代价为−(yloghθ(x)+(1−y)log(1−hθ(x)))=−ylog11+e−θTx−(1−y)log(1−11+e−θTx)-(ylog h_\theta(x)+(1-y)log (1-h_\theta(x)))=-ylog \frac{1}{1+e^{-\theta^Tx}}-(1-y)log (1-\frac{1}{1+e^{-\theta^Tx}})

①如果y=1y=1,上述单个样本代价函数中只有第一项起作用,第二项为00。

令z=θTxz=\theta^Tx,此时代价随zz的变化曲线如下图所示



结合此图也可以看出对于正样本(即,y=1y=1),为了使代价−log11+e−θTx-log \frac{1}{1+e^{-\theta^Tx}}最小,我们将设置θTx\theta^Tx比较大,这时代价接近于00。

在支持向量机中这种情况可以用两条线段作为新的代价函数cost1(z)cost_1(z),如下图桃红色部分



②如果y=0y=0,上述单个样本代价函数中只有第二项起作用,第一项为00。

此时代价随zz的变化曲线如下图所示,



结合此图也可以看出对于负样本(即,y=0y=0),为了使代价−log(1−11+e−θTx)-log (1-\frac{1}{1+e^{-\theta^Tx}})最小,我们将设置θTx\theta^Tx比较大,这时代价接近于00。

在支持向量机中可以用两条线段作为新的代价函数cost0(z)cost_0(z),如下图桃红色部分



2.从优化目标考虑

对于逻辑回归,优化目标是minθJ(θ)=minθ[1m∑i=1my(i)(−loghθ(x(i)))+(1−y(i))(−log(1−hθ(x(i))))+λ2m∑j=1nθ2j]\displaystyle\mathop{\mathrm{min}}\limits_{\theta} J(\theta)=\mathop{\mathrm{min}}\limits_{\theta}[\frac{1}{m}\sum_{i=1}^my^{(i)}(-log h_\theta(x^{(i)}))+(1-y^{(i)})(-log (1-h_\theta(x^{(i)})))+\frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2]

支持向量机就是要将其中的(−loghθ(x(i)))(-log h_\theta(x^{(i)}))换成前面y=1y=1时新的单个样本代价cost1(θTx(i))cost_1(\theta^Tx^{(i)}),将(−log(1−hθ(x(i))))(-log (1-h_\theta(x^{(i)})))换成前面y=0y=0时新的单个样本代价cost0(θTx(i))cost_0(\theta^Tx^{(i)}),即minθJ(θ)=minθ[1m∑i=1my(i)cost1(θTx(i))+(1−y(i))cost0(θTx(i))+λ2m∑j=1nθ2j]\displaystyle\mathop{\mathrm{min}}\limits_{\theta} J(\theta)=\mathop{\mathrm{min}}\limits_{\theta}[\frac{1}{m}\sum_{i=1}^my^{(i)}cost_1(\theta^Tx^{(i)})+(1-y^{(i)})cost_0(\theta^Tx^{(i)})+\frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2]

又由于无论是否有1m\frac{1}{m}都不会影响最小化的结果,故可以忽略1m\frac{1}{m};

同时正则化逻辑回归总的代价函数包括两项,即A+λBA+\lambda B(通过λ\lambda控制A,BA,B间的平衡),SVM则通过另一种方式控制A,BA,B间的平衡,即CA+BCA+B。

综上,SVM的优化目标为minθ[C∑i=1my(i)cost1(θTx(i))+(1−y(i))cost0(θTx(i))+12∑j=1nθ2j]\displaystyle\mathop{\mathrm{min}}\limits_{\theta}[C\sum_{i=1}^my^{(i)}cost_1(\theta^Tx^{(i)})+(1-y^{(i)})cost_0(\theta^Tx^{(i)})+\frac{1}{2}\sum_{j=1}^n\theta_j^2]

二.SVM的决策边界

1.SVM优化目标进一步研究

为了最小化代价函数,y=1y=1时,我们希望θTx⩾1\theta^Tx\geqslant1,而不仅仅像逻辑回归那样只要θTx⩾0\theta^Tx\geqslant0,就可以预测hθ(x)=1h_\theta(x)=1;

同理,y=0y=0时,我们希望θTx⩽−1\theta^Tx\leqslant-1,而不仅仅像逻辑回归那样只要θTx<0\theta^Tx<0,就可以预测hθ(x)=0h_\theta(x)=0。

可以看出SVM相比逻辑回归而言要求更高,相当于多了一个安全的间距因子。故人们也会将SVM看作是大间距分类器。

当CC为一个很大的值时,为了minθ[C∑i=1my(i)cost1(θTx(i))+(1−y(i))cost0(θTx(i))+12∑j=1nθ2j]\displaystyle\mathop{\mathrm{min}}\limits_{\theta}[C\sum_{i=1}^my^{(i)}cost_1(\theta^Tx^{(i)})+(1-y^{(i)})cost_0(\theta^Tx^{(i)})+\frac{1}{2}\sum_{j=1}^n\theta_j^2]

y(i)=1y^{(i)}=1时,希望cost1(θTx(i))=0cost_1(\theta^Tx^{(i)})=0,即θTx(i)⩾1\theta^Tx^{(i)}\geqslant1;

y(i)=0y^{(i)}=0时,希望cost0(θTx(i))=0cost_0(\theta^Tx^{(i)})=0,即θTx(i)⩽−1\theta^Tx^{(i)}\leqslant-1。

综上,SVM的优化目标为minθ12∑j=1nθ2j\displaystyle\mathop{\mathrm{min}}\limits_{\theta}\frac{1}{2}\sum_{j=1}^n\theta_j^2且θTx(i)⩾1,如果y(i)=1且\theta^Tx^{(i)}\geqslant1,如果y^{(i)}=1θTx(i)⩽−1,如果y(i)=0\theta^Tx^{(i)}\leqslant-1,如果y^{(i)}=0

2.SVM的决策边界

SVM的这个要求会对决策边界有什么影响呢?

以一个线性可分数据集为例,有多条直线可以把正样本与负样本分开,如下图:



SVM会趋于以黑色线来分离正、负样本,因为黑色线和训练样本间有更大的最短距离,而粉色线和绿色线在分离样本时表现就较差。SVM总是努力用最大间距(margin)来分离样本,这也是它为什么被称为大间距分类器,同时这也是SVM具有鲁棒性的原因。

事实上,SVM比大间距分类器表现得更成熟,比如异常点的影响,如图:



参数CC控制着对误分类的训练样本的惩罚,故参数CC较大时会努力使所有训练数据被正确分类,这会导致仅仅因为一个异常点决策边界就能从黑色线变成粉色线,这是不明智的。SVM可以通过将参数CC设置得不太大而忽略掉一些异常的影响,CC的作用类似于1λ\frac{1}{\lambda},对于这个例子仍然会得到黑线线代表的决策边界。

3.大间距分类背后的数学

前面说到SVM的优化目标是minθ12∑j=1nθ2j\displaystyle\mathop{\mathrm{min}}\limits_{\theta}\frac{1}{2}\sum_{j=1}^n\theta_j^2且θTx(i)⩾1,如果y(i)=1且\theta^Tx^{(i)}\geqslant1,如果y^{(i)}=1θTx(i)⩽−1,如果y(i)=0\theta^Tx^{(i)}\leqslant-1,如果y^{(i)}=0为了简化,令θ0=0\theta_0=0,特征数n=2n=2,则12∑nj=1θ2j=12(θ21+θ22)=12(θ21+θ22−−−−−−√)2=12||θ||2\frac{1}{2}\sum_{j=1}^n\theta_j^2=\frac{1}{2}(\theta_1^2+\theta_2^2)=\frac{1}{2}(\sqrt{\theta_1^2+\theta_2^2})^2=\frac{1}{2}||\theta||^2

其中,||θ||||\theta||为向量θ\theta的长度或称为θ\theta的范数。

如果将θTx(i)\theta^Tx^{(i)}看成是经过原点的两个向量相乘,如下图:



则θTx(i)\theta^Tx^{(i)}等价于向量x(i)x^{(i)}在向量θ\theta上的投影p(i)p^{(i)}与θ\theta的范数||θ||||\theta||相乘,即θTx(i)=p(i)||θ||=θ1x(i)1+θ2x(i)2\theta^Tx^{(i)}=p^{(i)}||\theta||=\theta_1x_1^{(i)}+\theta_2x_2^{(i)}

故SVM的优化目标就变为:minθ12∑j=1nθ2j\displaystyle\mathop{\mathrm{min}}\limits_{\theta}\frac{1}{2}\sum_{j=1}^n\theta_j^2且p(i)||θ||⩾1,如果y(i)=1且p^{(i)}||\theta||\geqslant1,如果y^{(i)}=1p(i)||θ||⩽−1,如果y(i)=0p^{(i)}||\theta||\leqslant-1,如果y^{(i)}=0其中p(i)p^{(i)}是x(i)x^{(i)}在向量θ\theta上的投影。

①小间距决策边界

假设θ0=0\theta_0=0,下图展示了一个小间距决策边界的例子。(绿色线为决策边界)



向量θ\theta的斜率为θ2θ1\frac{\theta_2}{\theta_1},决策边界为θTx=0\theta^Tx=0,即θ1x+θ2y=0\theta_1x+\theta_2y=0,斜率为−θ1θ2-\frac{\theta_1}{\theta_2},也就是说决策边界也过原点且与向量θ\theta垂直。

取上图中最贴近决策边界的一个正样本(红叉)点x(1)x^{(1)},因为正样本点y(1)=1y^{(1)}=1,故要求p(1)||θ||⩾1p^{(1)}||\theta||\geqslant1。但事实是这种小间距决策边界,x(1)x^{(1)}在向量θ\theta上的投影p(1)p^{(1)}非常小,这就要求||θ||||\theta||很大,显然这与优化目标minθ12∑j=1nθ2j=minθ12||θ||2\displaystyle\mathop{\mathrm{min}}\limits_{\theta}\frac{1}{2}\sum_{j=1}^n\theta_j^2=\mathop{\mathrm{min}}\limits_{\theta}\frac{1}{2}||\theta||^2不符。

同理,上图中最贴近决策边界的一个负样本(蓝圈)点x(2)x^{(2)},因为负样本点y(2)=0y^{(2)}=0,故要求p(2)||θ||⩽−1p^{(2)}||\theta||\leqslant-1。x(2)x^{(2)}在向量θ\theta上的投影p(2)<0且|p(2)|也非常小p^{(2)}<0且|p^{(2)}|也非常小,这也要求||θ||||\theta||很大。

由于这种小间距决策边界的选择与SVM的优化目标不符,故SVM不会选择这种决策边界。

②大间距决策边界

假设θ0=0\theta_0=0,下图展示了一个大间距决策边界的例子。(绿色线为决策边界)



同样的,决策边界也是和向量θ\theta垂直的。不同的是,对于正样本点x(1)x^{(1)},它在θ\theta上的投影p(1)p^{(1)}比小间距分类那里的要长多了;对于负样本点x(2)x^{(2)},它在θ\theta上的投影p(2)p^{(2)}的长度比小间距分类那里也要长很多。在满足SVM优化目标的要求时,||θ||||\theta||可以变小而不必很大。

反过来看,通过在优化目标里让||θ||||\theta||不断变小,SVM就可以选择出上图所示的大间距决策边界。这也是SVM可以产生大间距分类器的原因。

以上我们都是假设θ0=0\theta_0=0,这会让决策边界通过原点,幸运的是即使θ0≠0\theta_0\neq0,SVM会产生大间距分类仍然是成立的。

三.核函数(Kernels)

SVM利用核函数可以构造出复杂的非线性分类器。如下图



1.SVM的假设函数

hθ(x)={1,0,θTx⩾0θTx<0\begin{eqnarray}h_\theta(x)=
\begin{cases}
1, &\theta^Tx\geqslant0\cr 0,&\theta^Tx<0 \end{cases}
\end{eqnarray}

2.非线性决策边界特征变量的定义

例如假设函数hθ(x)={1,0,θ0+θ1x1+θ2x2+θ3x1x2+θ4x21+⋯⩾0θ0+θ1x1+θ2x2+θ3x1x2+θ4x21+⋯<0\begin{eqnarray}h_\theta(x)=
\begin{cases}
1, &\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1x_2+\theta_4x_1^2+\cdots\geqslant0\cr 0,&\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1x_2+\theta_4x_1^2+\cdots<0\end{cases}
\end{eqnarray}

我们可以定义特征项f1=x1,f2=x2,f3=x1x2,f4=x21,⋯f_1=x_1,f_2=x_2,f_3=x_1x_2,f_4=x_1^2,\cdots,

则θ0+θ1x1+θ2x2+θ3x1x2+θ4x21+⋯=θ0+θ1f1+θ2f2+θ3f3+θ4f4+⋯\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1x_2+\theta_4x_1^2+\cdots=\theta_0+\theta_1f_1+\theta_2f_2+\theta_3f_3+\theta_4f_4+\cdots

对于SVM,有没有比这些高阶项更好的特征项?

给定xx,根可以据与标记点的接近程度来计算新的特征项。如下图手动选择了3个标记点l(1),l(2),l(3)l^{(1)},l^{(2)},l^{(3)}。



则,f1=similarity(x,l(1))=exp(−||x−l(1)||22σ2)f_1=similarity(x,l^{(1)})=exp(-\frac{||x-l^{(1)}||^2}{2\sigma^2})f2=similarity(x,l(2))=exp(−||x−l(2)||22σ2)f_2=similarity(x,l^{(2)})=exp(-\frac{||x-l^{(2)}||^2}{2\sigma^2})f3=similarity(x,l(3))=exp(−||x−l(3)||22σ2)f_3=similarity(x,l^{(3)})=exp(-\frac{||x-l^{(3)}||^2}{2\sigma^2})这种相似度,用数学术语来说,就是核函数。核函数有不同的种类,其中常用的就是我们上述这种高斯核函数。

更具体点,忽略x0x_0,则上述f1=similarity(x,l(1))=exp(−||x−l(1)||22σ2)=exp(−∑nj=1(xj−l(1)j)22σ2)f_1=similarity(x,l^{(1)})=exp(-\frac{||x-l^{(1)}||^2}{2\sigma^2})=exp(-\frac{\sum_{j=1}^n(x_j-l_j^{(1)})^2}{2\sigma^2})

如果xx的位置接近于l(1)l^{(1)},即x≈l(1)x≈l^{(1)},则f1≈exp(−022σ2)≈1f_1≈exp(-\frac{0^2}{2\sigma^2})≈1

相反,如果xx的位置远离于l(1)l^{(1)},则f1≈exp(−(largenumber)22σ2)≈0f_1≈exp(-\frac{(large number)^2}{2\sigma^2})≈0

故,有三个标记点时,给定一个xx,就可以计算出3个新的特征。

例如:l(1)=[35],σ2=1,n=2l^{(1)}=\begin{bmatrix} 3 \\ 5 \end{bmatrix},\sigma^2=1,n=2时

x=[35]x=\begin{bmatrix} 3 \\ 5 \end{bmatrix}时,f1=1f_1=1;而xx在离[35]\begin{bmatrix} 3 \\ 5 \end{bmatrix}较远时,如下图的边缘位置,则f1≈0f_1≈0。



ff的值在0与1之间,具体取决于xx与标记点ll的接近程度。

改变核函数中σ2\sigma^2的大小,如减小到σ2=0.5\sigma^2=0.5,可看到突起变窄了,从1降到低处的速度会变得更快,如下图



若增大σ\sigma到σ2=3\sigma^2=3,则突起会变宽,新的特征值从大减小的速度会变慢,如下图



3.通过核函数和标记点构造复杂的非线性边界

假设只考虑3个标记点,根据SVM假设函数的定义,若θ0+θ1f1+θ2f2+θ3f3⩾0\theta_0+\theta_1f_1+\theta_2f_2+\theta_3f_3\geqslant0,则预测y=1y=1。

假设θ0=−0.5,θ1=1,θ2=1,θ3=0\theta_0=-0.5,\theta_1=1,\theta_2=1,\theta_3=0,标记点和训练样本的位置如下图:



则,对于桃红色的那个训练样本,根据前面SVM新特征项的定义,f1≈1,f2≈0,f3≈0f_1≈1,f_2≈0,f_3≈0,因为θ0+θ1f1+θ2f2+θ3f3=0.5⩾0\theta_0+\theta_1f_1+\theta_2f_2+\theta_3f_3=0.5\geqslant0,故预测y=1y=1。

对于蓝绿色的那个训练样本,f1≈0,f2≈0,f3≈0f_1≈0,f_2≈0,f_3≈0,因为θ0+θ1f1+θ2f2+θ3f3=−0.5<0\theta_0+\theta_1f_1+\theta_2f_2+\theta_3f_3=-0.5<0,故预测y=0y=0。

综上可以发现,对于接近标记点l(1)l^{(1)}或l(2)的点,预测结果为l^{(2)}的点,预测结果为y=1,而对于那些远离标记点,而对于那些远离标记点l^{(1)}和和l^{(2)}的点,预测结果为y=0y=0。

故,最终的决策边界会是非线性的,在边界内部预测y=1y=1,在边界外部预测y=0y=0,如下图



这就是通过核函数和标记点来训练出复杂的非线性决策边界的方法。

4.标记点的选择及特征向量的构造

在实际应用中,如何选择这些标记点l(1),l(2),l(3),⋯l^{(1)},l^{(2)},l^{(3)},\cdots是机器学习必须解决的问题。

给定mm个训练样本(x(1),y(1)),(x(2),y(2)),⋯,(x(m),y(m))(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),\cdots,(x^{(m)},y^{(m)}),可以选择l(1)=x(1),l(2)=x(2),⋯,l(m)=x(m)l^{(1)}=x^{(1)},l^{(2)}=x^{(2)},\cdots,l^{(m)}=x^{(m)},即选择与样本点重合的位置作为标记点。

给定一个样本xx(可属于训练集,交叉验证集或测试集),则f1=similarity(x,l(1))=similarity(x,x(1))f_1=similarity(x,l^{(1)})=similarity(x,x^{(1)})f2=similarity(x,l(2))=similarity(x,x(2))f_2=similarity(x,l^{(2)})=similarity(x,x^{(2)})⋮\vdotsfm=similarity(x,l(m))=similarity(x,x(m))f_m=similarity(x,l^{(m)})=similarity(x,x^{(m)})可得到一个特征向量f=⎡⎣⎢⎢⎢⎢⎢f1f2⋮fm⎤⎦⎥⎥⎥⎥⎥f=\begin{bmatrix} f_1 \\ f_2\\ \vdots \\f_m \end{bmatrix}还可添加一个额外的特征f0=1f_0=1,则f=⎡⎣⎢⎢⎢⎢⎢f0f1⋮fm⎤⎦⎥⎥⎥⎥⎥f=\begin{bmatrix} f_0 \\ f_1\\ \vdots \\f_m \end{bmatrix}具体的,假设有一个训练样本(x(i),y(i))(x^{(i)},y^{(i)}),则

f(i)0=1f_0^{(i)}=1

f(i)1=similarity(x(i),l(1))f_1^{(i)}=similarity(x^{(i)},l^{(1)})

⋮\vdots

f(i)i=similarity(x(i),l(i))=similarity(x(i),x(i))=1f_i^{(i)}=similarity(x^{(i)},l^{(i)})=similarity(x^{(i)},x^{(i)})=1

⋮\vdots

f(i)m=similarity(x(i),l(m))f_m^{(i)}=similarity(x^{(i)},l^{(m)})

合成一个可以用来描述样本x(i)x^{(i)}的特征向量f(i)=⎡⎣⎢⎢⎢⎢⎢⎢f(i)0f(i)1⋮f(i)m⎤⎦⎥⎥⎥⎥⎥⎥f^{(i)}=\begin{bmatrix} f_0^{(i)} \\ f_1^{(i)}\\ \vdots \\f_m^{(i)} \end{bmatrix}

四.SVM实现

1.假设函数

假设已经有了参数θ\theta,给定一个xx,可以计算出特征向量f∈Rm+1f\in\mathbb{R}^{m+1}(标记点个数等于训练样本数)。则SVM假设函数的定义变为,若θTf=θ0f0+θ1f1+⋯+θmfm⩾0\theta^Tf=\theta_0f_0+\theta_1f_1+\cdots+\theta_mf_m\geqslant0,则hθ(x)=1h_\theta(x)=1,其他情况则hθ(x)=0h_\theta(x)=0。

2.优化目标

有了核函数之后,SVM的优化目标如下:minθ[C∑i=1my(i)cost1(θTf(i))+(1−y(i))cost0(θTf(i))+12∑j=1nθ2j]\displaystyle\mathop{\mathrm{min}}\limits_{\theta}[C\sum_{i=1}^my^{(i)}cost_1(\theta^Tf^{(i)})+(1-y^{(i)})cost_0(\theta^Tf^{(i)})+\frac{1}{2}\sum_{j=1}^n\theta_j^2]其中最后一项中特征数n=mn=m。

另外,在SVM的实现中,最后一项略有差别,∑nj=1θ2j\sum_{j=1}^n\theta_j^2本应等于θTθ\theta^T\theta,也就是||θ||||\theta||,但是在SVM的实现中使用θTmθ\theta^Tm\theta却比直接优化||θ||||\theta||更高效,更能适应超大的训练集。

需要注意,上述那些SVM的计算技巧应用到别的算法,如逻辑回归中,会变得非常慢,所以一般不将核函数以及标记点等方法用在逻辑回归中。

3.SVM的参数

前面提到参数CC相当于逻辑回归中的1λ\frac{1}{\lambda},那么参数CC对方差和偏差的影响如下:

CC太大,相当于λ\lambda太小,会产生高方差,低偏差;

CC太小,相当于λ\lambda太大,会产生高偏差,低方差。

同时,参数σ2\sigma^2也会对方差和偏差产生影响:

σ2\sigma^2大,则特征fif_i变化较缓慢,可能会产生高偏差,低方差;

σ2\sigma^2小,则特征fif_i变化不平滑,可能会产生高方差,低偏差。

4.使用SVM及核函数的选择

在具体实现时,我们不需要自己编写代码来最优化参数θ\theta,而是使用SVM软件包(如:liblinear,libsvm等)来最优化参数θ\theta。

当然了,在使用这些软件包时,我们需要自己选择参数CC以及选择使用哪种核函数。

例如:选用线性核函数(即,没有使用核函数),若θTx=θ0+θ1x1+⋯+θnxn>0,则hθ(x)=1\theta^Tx=\theta_0+\theta_1x_1+\cdots+\theta_nx_n>0,则h_\theta(x)=1。最终这会产生一个线性分类器。liblinear就是使用线性核函数。

如特征数nn很大,而训练样本数mm很小,使用线性核函数产生一个线性分类器就较为适合,不容易过拟合。

如果特征数nn很小,而训练样本数mm很大,就适合用一个核函数去实现一个非线性分类器,高斯核函数是个不错的选择。

如果使用的是高斯核函数:fi=exp(−||x−l(i)||22σ2)f_i=exp(-\frac{||x-l^{(i)}||^2}{2\sigma^2}),其中l(i)=x(i)l^{(i)}=x^{(i)},则还需要选择参数σ2\sigma^2。

核函数还有一些其他选择,需要注意的是,不是所有的相似度函数都是有效的核函数,要成为有效的核函数,需要满足默塞尔定理这个技术条件。

还有一些其他核函数如:多项式核函数,字符串核函数等等,但大多数时候我们用的还是高斯核函数。

5.多类别分类问题

对于KK类分类问题,可以使用已经内置了多类别分类函数的SVM软件包,也可以用一对多(one-vs-all)的方法训练KK个SVM分类器,把y=iy=i(i=1,2,⋯,Ki=1,2,\cdots,K)的类同其他类区别开来,得到KK个参数向量θ(1),θ(2),⋯,θ(K)\theta^{(1)},\theta^{(2)},\cdots,\theta^{(K)}。

对于输入的xx,选择(θ(i))Tx(\theta^{(i)})^Tx最大的那个类别ii作为识别结果。

6.SVM和逻辑回归的选择问题

什么时候该用逻辑回归?什么时候该用SVM?

①如果nn相对于mm来说很大,则应该使用逻辑回归或者线性核函数(无核)的SVM。

mm较小时,使用线性分类器效果就挺不错了,并且也没有足够的数据去拟合出复杂的非线性分类器。

②如果nn很小,mm中等大小,则应该使用高斯核函数SVM。

③如果nn很小,mm很大,则高斯核函数的SVM运行会很慢。这时候应该创建更多的特征变量,然后再使用逻辑回归或者线性核函数(无核)的SVM。

对于以上这些情况,神经网络很可能做得很好,但是训练会比较慢。实际上SVM的优化问题是一种凸优化问题,好的SVM优化软件包总是能找到全局最小值或者是接近全局最小的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: