笔记是听了b站大神的白板推导机器学习系列课,再结合李航老师的《统计学习方法》、周志华老师的西瓜书以及其他优秀博主的博客而成(浑然天成!!!):
https://space.bilibili.com/97068901?from=search&seid=9183191776664110144(大神的白板推导机器学习系列课传送门)
对于大神的课,我只能说太强了,讲的特别特别好!下面让我们开始吧!
考虑一个二分类问题,给定一些样本点,我们希望将这些样本分为两类。预期设定这些样本是可以分成两类的,或存在特异点(去除特异点后可被线性分为两类),或线性不可分三种情况,我们也将SVM(Support Vector Machines, SVM)分为三种,hard-margin SVM、soft-margin SVM以及kernel SVM。
SVM总结起来有三宝:间隔、对偶、核技巧。
原始的SVM是一个二元线性分类器,如图1所示,红线超平面将样本分为蓝色和红色两部分,三维情况下超平面的表达式为:。
图1:SVM图示
SVM整体我将从六个部分来说明,手推SVM的第1部分主要包含以下几个方面:(第一部分已经基本包含了SVM的全部内容)
- 硬间隔SVM(hard-margin SVM)
- 软间隔SVM(soft-margin SVM)
- 约束优化问题、对偶性、KKT条件
- 核技巧SVM(kernel SVM) 简述
手推SVM的第2部分将详细讲述核技巧、SMO算法及python实现,第2部分侧重于对SVM进行补充。下面就让我们正式进入!
注意,软间隔SVM相比于硬间隔SVM,只是加了一个loss作为罚项(我很喜欢数学里这个叫法),解约束优化问题的过程与硬间隔是一样的。
(下面这张图有笔误,第三行应该为:)
好了,第一部分就到这里,下次再见~