机器学习:支持向量机(SVM)简介与其大间距分类性的推导

从逻辑回归到SVM

总所周知,逻辑回归的代价函数(不加正则项)为
J ( θ ) = − 1 m ∑ i = 1 m [ y log ⁡ ( h θ ( x ⃗ ) ) + ( 1 − y ) log ⁡ ( 1 − h θ ( x ⃗ ) ) ] J(\theta)=-\frac{1}{m}\sum_{i=1}^m\left[y\log(h_\theta(\vec{x}))+(1-y)\log(1-h_\theta(\vec{x}))\right] J(θ)=m1i=1m[ylog(hθ(x ))+(1y)log(1hθ(x ))]
y = 0  or  1 y=0\ \text{or}\ 1 y=0 or 1时函数图像如下:
在这里插入图片描述
可以看到,因为 log ⁡ \log log的存在,函数为一条曲线,我们尝试用直线段结合去代替该曲线。令 y = 1 y=1 y=1时的直线替代为 cost 1 \text{cost}_1 cost1,反之为 cost 0 \text{cost}_0 cost0

同时,我们不再除 m m m,这仅仅是行业默认的习惯,对求解问题本身没有影响。另外,对于正则项,我们不再用正则参数 λ \lambda λ调节其与模型拟合程度的关系,而是用另一个参数 C C C乘在模型拟合程度前面。当 C = 1 λ C=\frac{1}{\lambda} C=λ1时,两者求解出的参数是相等的。

综上,代价函数 J ( θ ) J(\theta) J(θ)可写为
J ( θ ) = C ∑ i = 1 m [ y ( i ) cost 1 ( θ T x ( i ) ) + ( 1 − y ( i ) ) cost 0 ( θ T x ( i ) ) ] + 1 2 ∑ i = 1 n θ j 2 J(\theta)=C\sum_{i=1}^m[y^{(i)}\text{cost}_1(\theta^Tx^{(i)})+(1-y^{(i)})\text{cost}_0(\theta^Tx^{(i)})]+\frac{1}{2}\sum_{i=1}^n\theta_j^2 J(θ)=Ci=1m[y(i)cost1(θTx(i))+(1y(i))cost0(θTx(i))]+21i=1nθj2

cost \text{cost} cost函数图像如图所示:
在这里插入图片描述
不难发现,欲使代价函数最小,只需要在 y = 1 y=1 y=1时使 θ T x ≥ 1 \theta^Tx\ge 1 θTx1,在 y = 0 y=0 y=0时使 θ T x ≤ − 1 \theta^Tx\le -1 θTx1即可(此时 cost \text{cost} cost部分等于0)。

这样的代价函数使得算法在分类时要求更高,逻辑回归在 θ T x = 0 \theta^Tx=0 θTx=0处划分两类,而SVM则使 θ T x \theta^Tx θTx的绝对值尽量超过1。

大间距分类性

大间距分类指我们的分类器构造出的边界总是使决策边界到两类样本点的距离较大。例如下图中,粉色线和绿色线距离两侧的样本距离较近,而黑色线距离较远,SVM更倾向于黑色线这样的分类边界。在这里插入图片描述

会产生这样的结果是因为我们的正则项
1 2 ∑ j = 1 n θ j 2 = 1 2 ∣ ∣ θ ⃗ ∣ ∣ 2 \frac{1}{2}\sum_{j=1}^n\theta_j^2=\frac{1}{2}||\vec{\theta}||^2 21j=1nθj2=21θ 2
即我们在代价函数中,会尽可能去缩短参数向量 θ ⃗ \vec{\theta} θ 的长度。同时,SVM也会尽量让 y = 1 y=1 y=1 θ T x ≥ 1 \theta^Tx\ge 1 θTx1,在 y = 0 y=0 y=0 θ T x ≤ − 1 \theta^Tx\le -1 θTx1。由这两个条件就可推导出SVM的大间距性:

首先, θ T x \theta^Tx θTx可写为为向量点乘形式
θ T x = θ ⃗ ⋅ x ⃗ = ∣ ∣ θ ⃗ ∣ ∣ ( ∣ ∣ x ⃗ ∣ ∣ cos ⁡ < θ ⃗ , x ⃗ > ) \theta^Tx=\vec{\theta}\cdot \vec{x}=||\vec{\theta}||(||\vec{x}||\cos<\vec{\theta},\vec{x}>) θTx=θ x =θ (x cos<θ ,x >)
θ T x \theta^Tx θTx的值取决于 θ ⃗ \vec{\theta} θ 的长度和 x ⃗ \vec{x} x θ ⃗ \vec{\theta} θ 方向上投影长度的乘积。

而决策边界为满足 θ T x = 0 \theta^Tx=0 θTx=0面,则参数向量 θ ⃗ \vec{\theta} θ 是垂直于该面的(法向量)。所以 x ⃗ \vec{x} x θ ⃗ \vec{\theta} θ 方向上的投影其实就是该样本点到决策边界的距离。

所以,SVM运行时,会尽量缩短 θ ⃗ \vec{\theta} θ ,又要满足 ∣ θ T x ∣ ≥ 1 |\theta^Tx|\ge1 θTx1,那么只能让 x ⃗ \vec{x} x θ ⃗ \vec{\theta} θ 方向上的投影长度尽可能长,等价于样本点距离决策边界的距离尽可能长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ShadyPi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值