上图为逻辑回归,当,y = 1 由此引入了一种alternative view of logistic regression(不懂怎么翻译)
就是另一种表达方式,也由此引入了SVM。如下图
原本logstic regression的costFunction 化为两部分然后分别作曲线图,然后根据曲线生成一段段直线,作为SVM的新costFunction。
就底下这个,这里后面一项的i=1写错了,应该是j=1 。这里我们去掉λ,改用C代替,(C=1/λ),然后m去掉,(左边哪里的min为我们解释了为什么能去掉m而不影响函数)
Large Margin intuition
如果C很大,我们希望第一项≈0,即 costFunction =
SVM Decision Boundary
如上图,decision boundary有很多种,如何选合适的?这里可以这么想,C大,那么λ自然小,在旧的costfunction中,
正则化的影响自然变小,决策边界受到training set的影响自然会大(这里的costFunction只不过用C代替了原来的λ)
The mathematics behind large margin classification (optional)
这里不多说,上图
向量的内积可以用这玩意表示
p是v在u上的投影,所以
然后这里 再根据第一张图,可以得出
用来替换原本的θ转置乘x
上面一切推倒都是基于large C的情况。然后我们的目标是minθ,根据
我们知道,>=1的情况下,p越大,θ越小,同理<=-1下,p越大,θ越小。SVM就根据这个来决定决策边界的方向,位置。
Kernel Function
我们用f1,f2。。。。来代替多项式里面的项 ,多项式那么多,那么如何找到最合适的多项式呢?这里引入核函数。
先讲原理,假设坐标系里有三个landmark,给定一个x求这个x与这三个L的相似度(就是距离)
,这个也叫高斯核函数(RBF Kernel Function)(更清晰的公式在后面。)
对于 如果x与landmark约近,那么这整个公式约等于1(exp(0)=1),否则约等于0,这里用了一个x得出了f1,f2,f3三个新的feature。
再来看看σ对高斯核函数的影响 ,σ越大越平缓(下降速度越慢),反之则越快
一个例子
好了, 知道了怎么选f,那么接下来就是如何选landmark了。
在这里,我们用training example直接一对一转化为landmark 。
每个x与每个landmark对比,如上图中,碰到sim(x,l)==1,就是与自身作对比了(这个是similarity的简写)
再替代原先的costFunction就等于这货
下面是C和σ对costfunction的影响
SVM咋用
首先咱的目的是用SVM来求得θ。
那么就需要选择C和kernel函数。比方说 linear kernel就是没有用kernel的意思,看上图,对于feature n很大,而样本量m很小的情况下有用。
另一种就是高斯函数,就上面提到的。不过这个需要选择σ。
这里要考虑一个问题,就是范围的问题,如图,第一个feature是尺寸,e.g 1000 feat ,而第二个是房间数,很明显,代表尺寸一项的影响肯定比房间数的影响要大,那么这里就需要feature scaling来平衡。
介绍其他kernel
很多SVM包里都已经建好了multi-class function,当然也可以用one to all来算
啥时选用logstic regression, SVM, neural network
代码:
dataset3param.m
这里只贴这个