不忘初心,方得始终。
上一节讲到SVM的优化公式,并提到SVM在强大的数学理论背景之下有着十分高效的训练方法。本节就先讲讲其中的一个关键知识点——拉格朗日乘子法,为之后深入讲解SVM做准备。
在机器学习中,模型的优化目标通常是最小化损失函数的值,即loss最小。从数学角度看,这类优化问题又可以分为以下三种情况:
1. 无约束优化问题:min L(x);
2. 等式约束优化问题:min L(x);s.t. h_i(x) = 0,i =1, …, n;
3. 不等式约束优化问题:min L(x);s.t. g_i(x) <= 0,h_i(x) = 0,i =1, …, n。
如果是凸优化(简单地说就是集合内任意连线均属于该集合,SVM是凸优化问题),对于第一种情况,可以直接求导得出最优解。
对于带等式约束的第二种情况,常用的求解方法就是本文要讲的拉格朗日乘子法。这里不妨借用一个例子来阐明什么是拉格朗日乘子法。
有如下等式约束的凸优化问题,求解f的最小值:
不过,朴素的拉格朗日乘子法只能解决等式约束优化问题。对于第三种情况关于不等式的约束优化问题,需要使用拉格朗日乘子法的加强版——KKT条件。而SVM的优化问题正属于这第三种情况。关于KKT条件我下节再讲,敬请期待。
文中举例来源:http://blog.csdn.net/on2way/article/details/47729419
感谢各位的耐心阅读,后续文章于每周日奉上,敬请期待。欢迎大家关注小斗公众号 对半独白!