12 支持向量机
12.1 优化目标
支持向量机(SVM),在学习复杂的非线性方程时提供了一种更为清晰,更加强大的方式。也是监督学习算法。他在例如特征向量的难以选择、正则化参数的难以选择方面,提供了较好地解决方案。
回顾知识
回顾逻辑回归里边的知识,,假设函数,sigmoid函数,z……
根据性质,如果想要假设函数趋近于1,那么z>>0;反之想要假设函数趋近于0,那么z<<0 。
然后回顾代价函数,(如果你进一步观察逻辑回归的代价函数,你会发现每个样本 (𝑥,𝑦)都会为总代价函数,增加这里的一项-->每一个训练样本都影响这一项)
一起来考虑𝑦=1 的情况;𝑦 =0 的情况。 可以得到下面的两张图(忽略粉色的线,这是我们后面讲的),
分析
y=1(左侧图):当𝑧 增大时,也就是相当于𝜃𝑇𝑥增大时,𝑧 对应的值会变的非常小。对整个代价函数而言,影响也非常小。所以逻辑回归在观察到正样本𝑦 = 1时,z设置的很大代价函数就会变得很小。
我们可以得到新的代价函数,粉色的线(现在得到粉色的线能做什么我也不是很清楚,不过看起来更加简单一点)用Cost1(z)表示。
y=0(右侧图):同理可得
下面是支持向量机的构建
可以发现有不同之处
1、1/m去掉了(这只是一个常数而已,也并不是把它变成了C)
2、新增了常数C。在逻辑回归中我们通过 𝜆 调节两项之间的关系,对𝐴 + 𝜆 × 𝐵,通过设置不同正则参数𝜆达到优化目的。(AB分别看成被替换的那两项)。那如果这样使用𝐶 × 𝐴 + 𝐵,也能达到一样的效果。概念上虽然可以认为𝐶 = 1/𝜆,,但是也并不全是这样,如果当𝐶 = 1/𝜆时,这两个优化目标应当得到相同的值,相同的最优值 𝜃。事实却不是这样吗?(有待解决)
所以支持向量机最终实现了什么功能?
——当最小化代价函数,获得参数𝜃时,支持向量机所做的是它来直接预测𝑦的值等于 1,还是等于 0