[机器学习笔记#1]从 Logistic Regression 讲讲分类器和机器学习
[机器学习笔记#2] 一步步用 softmax Regression 实现手写字符识别
[资源分享]机器学习资料和常用工具汇总
(这次的笔记是为了以后的内容做准备,提前介绍一些基础数学知识,以便日后引用)
在机器学习中经常会遇到一类受限优化问题,要求某目标函数在限制条件下的最优值点。
最基本的一类问题可简述为:
问题1:给定目标函数 (假设convex),求当x取值满足的条件下,x的最优值使得的值最小/最大。
例如:
由于这里我们预先假设是一个凸函数(convex function),当不存在限制条件时,其最大值当取在使得处。而存在限制条件时,表示x在定义域中的位置必须落在曲面上,可想象为x在该曲面表面滑动,直到找到使得最大的位置时停止。
我们可以非常自然的得到一个结论:满足此条件的位置上,必然有,其中是非零实变量,被称为拉格朗日乘数(Lagrange multiplier)。如下图所示(图片出自PRML P. 708)。
因为如果在此处和不共线,将在该点有一个切向分量,x可沿该分量方向运动,到达一个使 更大的点(参考gradient ascend),最终会稳定在一个使得 和 共线的位置。
所以可知求解问题1中的受限优化问题,等同于求解:
其中被称为拉格朗日方程。
以下借用PRML中的一个例子,令:
即如下图示:
所以:
求导得:
解得
问题2:给定目标函数 (假设convex),求当x取值满足的条件下,x的最优值使得的值最小/最大。
例如:
问题1中的等式变成了不等式,x的可能取值空间从曲面 ,变成了 所表示的内部空间j及表面,如下图:
所以分两种情况考虑:
- x 取在 的腔体内,此时问题跟无限制条件时无区别,所以是求解,等同于将拉格朗日方程中的设为0的情况;
- x 取在 的曲面上,此时优化跟问题1无区别,使用拉格朗日方程求解。
整合起来就是求:
其中:
上述条件被称为 Karush-Kuhn-Tucker 条件,简称 KKT 条件。注意这里是针对 maximization的情况,如果是 minimization, 则拉格朗日方程变为 (原因自己想,提示:当最优解在曲线表面时,即情况2, 应该朝着哪个方向?)。
KKT条件在SVM 的数学模型中有重要体现。