软间隔支持向量机
SVM可能会造成overfit,因为kernel可能很复杂,而且必须将所有的样本都分类正确,造成模型过于复杂
那么如何避免过拟合?
方法是允许有分类错误的点,即把某些点当做是noise,但是尽量让这些noise个数越少越好
hard-margin SVM:
min(b,w)12wTws.t. yn(wTzn+b)≥1 for all nmin_{(b,w)} \frac{1}{2}w^Tw \\ s.t. \ y_n(w^Tz_n+b) \geq1 \ for \ all \ n min(b,w)21wTws.t. yn(wTzn+b)≥1 for all n
为了引入允许犯错误的点,做一些修改:
min(b,w)12wTw+C∑n=1N[yn≠sign(wTzn+b)]s.t. yn(wTzn+b)≥1for correct nyn(wTzn+b)≥−∞min_{(b,w)} \frac{1}{2}w^Tw + C\sum_{n=1}^{N}[y_n\ne sign(w^Tz_n+b)]\\s.t. \ y_n(w^Tz_n+b)\geq 1 for \ correct\ n\\ y_n(w^Tz_n+b)\geq-\inftymin(b,w)21wTw+Cn=1∑N[yn̸=sign(wTzn+b)]s.t. yn(wTzn+b)≥1for correct nyn(wTzn+b)≥−∞
对于分类错误的条件是没有限制,修正后的目标除了12wTw\frac{1}{2}w^Tw21wTw,还多了yn(wTzn+b)≥1y_n(w^Tz_n+b)\geq1yn(wTzn+b)≥1,即noise点的个数,参数C的引入是为了平衡第一项和第二项的关系
再对上述条件做修正,将两个条件合并:
min(b,w)12wTw+C∑n=1N[yn≠sign(wTzn+b)]s.t. yn(wTzn+b)≥1−∞[yn≠sign(wTzn+b)]min_{(b,w)} \frac{1}{2}w^Tw + C\sum_{n=1}^{N}[y_n\ne sign(w^Tz_n+b)]\\s.t. \ y_n(w^Tz_n+b)\geq 1 - \infty[y_n\ne sign(w^Tz_n+b)]min(b,w)21wTw+Cn=1∑N[yn̸=sign(wTzn+b)]s.t. yn(w