机器学习系列17:支持向量机
支持向量机(Support vector machine)是一种强大的机器学习算法,和神经网络相比,它在学习复杂的非线性方程时,能够提供更清晰和更加强大的方式。为了学习支持向量机,我们可以先从逻辑回归开始,看看如何经过小小的改动能得到支持向量机。
在逻辑回归中,假设函数 h_θ(x) 为:
![a173f9f878489b021819c3a0cc4fa580.png](https://i-blog.csdnimg.cn/blog_migrate/70cbea1b5f88dba3fbeea69b22027f4c.jpeg)
图像为:
![b4842981f5eb071a70c6318ba7afcd02.png](https://i-blog.csdnimg.cn/blog_migrate/afe169c9054a0bd67accef41fefee91d.jpeg)
对于一个样本来说,代价函数为:
![1d9b622ca7ed24c3827128e4de2a8110.png](https://i-blog.csdnimg.cn/blog_migrate/99e2c240d77a6e4b26fed4f77dd3e9aa.jpeg)
当 y =1 时,第二项为 0,只需要考虑第一项,画出第一项的图像:
![5cf7b8760ded8df03ddf70bfab2efb23.png](https://i-blog.csdnimg.cn/blog_migrate/e0167ec983a6775e32a314cb89e4d033.jpeg)
我们把这个图像稍微修改一下,趋势与逻辑回归相似,就变成了支持向量机代价函数一部分的图像 cost_1(z),如下图粉色线:
![a56cecdeba04cd8b62dd9c9ce5fb86a2.png](https://i-blog.csdnimg.cn/blog_migrate/4344d9a88dc3427835ceced47340c36f.jpeg)
第二项同样道理,cost_0(z):
![44ef76ad2d79faea6f3cebdb8de0cd48.png](https://i-blog.csdnimg.cn/blog_migrate/85a13c1a4a65297533f6a5ad44e1fbf5.jpeg)
逻辑回归中正则化代价函数为:
![80fd77bd77f7ac2a59c064ed481ce942.png](https://i-blog.csdnimg.cn/blog_migrate/c6682f3e52794f19c372a5ef779e8936.jpeg)
将其中系数 1/m 去掉,把红色部分换成上面粉色图像的函数:
![dba99643ddcec2415ff235452eec0b89.png](https://i-blog.csdnimg.cn/blog_migrate/eca6e47ec8373dc2de8bef8c1b768cc3.jpeg)
接着将浅蓝色和粉色部分调换一下权重:
![50b467562a064d7cfac34a2827705366.png](https://i-blog.csdnimg.cn/blog_migrate/98b28d76f749d70514dc60659c410b38.jpeg)
这样就得到支持向量机的代价函数:
![a59786f833ece2c651e612286485d7fb.png](https://i-blog.csdnimg.cn/blog_migrate/c4a9f9298c9aa482dd609ec02e676483.jpeg)
只需要将这个函数最小化即可得到参数。以上就是从逻辑回归推出支持向量机的整个过程。