今天要介绍的是支援向量机(Support Vector Machine, SVM),它有两个特色,而这两个特色加起来,也就是Hinge Loss加上Kernel Trick就是SVM。
首先我们透过这张图来复习一下Binary Classification,而步骤二一开始列出的loss function是不可微分的,导致要在步骤三做optimization找到一个最好的function是有困难的,所以我们就把 用另一个approximate的loss来表示。
Hinge Loss是一个很特别的式子,写成 ,如果 ,就代表只要 ,Loss就会等於0,而 ,就代表 ,Loss就会等於0。
Hinge Loss跟Cross Entropy最大的不同来自於他们对待已经做得好的example的态度,如果我们把 的值从1挪到2,对於Cross Entropy来说,你可以得到Loss的下降,所以Cross Entropy会想要好还要更好,它就有动机让 的值更大来让Loss减少。但是对Hinge Loss来说,它就只需要及格就好,也就是只需要你的值大过margin就可以了。
Linear SVM就代表我们的funciton是linear的,式子如下图所示,而Loss function在SVM里面的特色就是它采用了Hinge Loss,通常我们还会再加上Regularization的term,这两个都是convex的function,所以这个Loss function就是一个convex的function。
而Logistic Regressino跟Linear SVM的差别只在於Loss function的不同,用Hinge Loss就是Linear SVM,用Cross Entropy就是Logistic Regression,
有一个用Gradient Descent来训练SVM的方法叫做Picasso,那就是跟之前一样做Gradient Descent,经过计算得到下图的式子,就可以更新参数了。
我们现在把Hinge Loss换成是 ,而我们是要minimize这个Loss function,也就是要选择一个最小的 ,这样子下图两个红色框框中的式子就会是相等的。也就是说,SVM告诉我们 和 要同号的,它们相乘以後要大於等於一个margin 1,但是这个margin是soft的,有时候没办法满足这个margin,所以可以把你的margin稍微放宽,把它减掉一个 ,这个 会放宽你的margin,所以我们称之为slack variable,要注意的是 不能是负的,它必须要大於等於0。
这个formulation是一个Quadratic Programming(QP)的problem,所以你就可以带一个Quadratic Programming的solver把它解出来,当然前面我们也有讲到可以用Gradient Descent来解它。
<<: 自动化测试,让你上班拥有一杯咖啡的时间 | Day 27 - 学习 cypress window 的用法
来规划游戏蓝图吧。 视窗规划 基本上和小恐龙单元一样。 视窗主体 负责提供脚位资料、设定栏位。 游戏...
写在前面 有点混阿~ 连假整个松掉 晚点补齐 有点混阿~ 连假整个松掉 晚点补齐 有点混阿~ 连假整...
来到了中秋连假的第一天,买不到云上的月亮,我们就到云上买台机器来玩玩吧 1. 使用EC2好处? EC...
终於到了尾声,本书的最後 80 页我看了 2 次,不太确定自己到底有没有读错,总之就来努力摘要一下。...
目标: 根据前一页的网址,来决定目前所处的页面,显示哪个按钮。假如已经收藏某个东西的话,就不用再显示...