理解SVM模型的目标函数

《Hands-on Machine Learning with Scikit-Learn, Keras and TensorFlow》一书5.4节《Under the Hood》在解释SVM模型的数学模型时,有些地方并不是很详细。这里我把相关的知识补上。关于SVM,这篇文章有比较详细的解释,有兴趣的朋友可以参考。

目标函数

我们假设样本线性可分,一类标记为1,另一类标记为-1。每个样本可用向量x表示。则我们可以找到一个超平面,使得超平面的一侧都是正类样本,另一侧都是负类样本。这个超平面(不妨称为平面0)可以用下面这个方程式表示:

w^Tx+b=0

我们可以把这个超平面向正类样本方向平移,直到碰到第一个正类样本为止。平移完成之后新的超平面我们可以称为平面1,其方程是:

w^Tx+b=\delta_1

同理,我们把平面0向负类样本方向平移,直到碰到第一个负类样本为止。平移完成之后新的超平面我们可以称为平面2,其方程是:

w^Tx+b=-\delta_2

\delta_1 \delta_2 并不一定相等,不过我们可以调整平面0的b,使得\delta_1 =\delta_2 =\delta。也就是说,通过选择适当的b,我们可以使得平面1和平面2的方程可以写成下面的形式:

w^Tx+b=\delta

w^Tx+b=-\delta

事实上,这两个方程还可以进一步化简。我们让两个式子两边都除以\delta ,也就是调整了wb。这样,平面1和平面2的方程可以写成:

w^Tx+b=1

w^Tx+b=-1

这两个平面的距离是\frac{2}{\sqrt{w^Tw} } 。因此,我们优化的目标就是使得\frac{1}{2} w^Tw 最小。

约束条件

当然,我们还有约束条件,就是上面的平面能够使得所有正负样本正好在平面两侧,这就是所谓硬间隔SVM(Hard margin linear SVM)。用数学语言说,对于任意正样本i,我们有:

w^Tx^{(i)} +b\geq 1

对于任意负样本i,我们有:

w^Tx^{(i)} +b\leq -1

我们定义t^{(i)} ,规则是,对于正样本,其值为1;对于负样本,其值为-1。于是,上面两个约束条件可以合并为一个:

t^{(i)} (w^Tx^{(i)} +b)\geq 1

这就是约束条件。于是:

\min_{w,b} \frac{1}{2} w^Tw

s.t.\  \ \  t^{(i)} (w^Tx^{(i)} +b)\geq 1

这就是Hard margin linear SVM模型的优化目标。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容