Primal-dual的观点
《红楼梦》第三一回云:天地间都赋阴阳二气所生。世间有阴便有阳,在优化界也是如此。我们将需要最小化的目标函数称之为primal problem. 其对应就有dual problem. 例如常见的Lagrange Duality . 如果primal是凸的,那么dual便是凹的。且在常见情况下,最小化primal等价于最大化dual. 有时候直接求解primal problem很麻烦,但dual却方便很多。或是通过考察dual problem的性质能得到最优解的一些性质 。一个经典的案例就是SVM .
上节我们通过子空间投影 来处理罚,这里我们直接考虑最小化损失+罚的形式,既 (罚前的参数 在这里写进了 里了)。注意到罚 的存在,使得目标函数不能如前面那样自然的分成 块,从而不能直接对每块做梯度下降得到online gradient descent. 于是我们转向dual problem.
Shai Shalev-Shwartz 提出可以用Fenchel Duality 来 研究其对偶式。Shai最近在online/stochastic界相当活跃。虽然和他不熟,不过因为他姓比较长,所以下面亲切的用Shai来称呼他。 Shai 毕业于耶路撒冷希伯来大学,PHD论文便是online learning. 然后他去了online learning重地TTIC, 更是习得满身武艺,现在又回了耶路撒冷希伯来大学任教。他的数学直觉敏锐,善于将一些工具巧妙的应用到一些问题上。
两个概念
对一个凸函数,如下图所示,我们可以用两种不同的描述方式。一种就是函数上的所有点,函数曲线变由这些点构成;另外一种是每一个点所对应的切线,此时函数由所有切线形成的区域的上边缘确定。
函数上每一个点可由 表示,每一条切线可由斜率 及与y轴交点,记为 ,来确定。前一种表示是函数的primal form, 而后者则被称之为Fenchel conjudate , 是一种dual form, 其定义为
既然我们称它们为primal-dual, 当然意味着可以相互转换。实际上,对于一个闭凸函数,有 .
另外一个概念是关于函数凸的程度的。一个函数被称为 -强凸(strongly convex ),那意味着对任意的 和 , 有
示意图如下。直观上来说就是这个凸函数要凸得足够弯。这个定义可以拓展到一般的范数和次导数上来处理诸如稀疏罚 之类,此乃后话了。
Regret Bound分析
使用这两个概念可以得到一个重要定理。假设 是 -强凸的,且 . 对任意的向量序列 , 记 。那么对任意的向量 , 有
此定理可以为Boosting, learning theory里的Rademecher Bound提供简单的证明,不过我们先关注它在online上的应用。不等式两边左右移项得 . 注意到 只和比 小 相关,所以我们可以取 ,立即由 是凸函数有 . 同前记 是离线最优解,且假设 , 联立上面两不等式有, .
如果我们用 罚,那么 , 且 . 如果 ,则有 , 这里 是对子空间 直径的一个估计。与上节Online Gradient Descent的regret bound比较,他们一样!
一般化的online算法
不小心先把理论讲完了,下面来解释下算法。接回一开始我们谈到的要考虑dual problem. 先观察到primal problem可以写成
引入 个拉格朗日乘子 , 那么拉格朗日形式就是
这样dual problem就是最大化函数 ,记为 . 套进Fenchel conjugate的定义,就有
注意到与primal problem不同,这时罚里面的变量也被拆成了 份,所以在 时刻我们可以假设比 大的 都是0, 从而只更新 来增大 .
总结下算法。在 时刻,我们先计算 ,在收到数据的label后,选择 来保证足够大的增加dual:
下面是一个示意图。在每个时间里我们根据新来的数据不断的增大dual, 同时使得primal变小。
一个值得讨论的是,在这里我们可以控制算法的aggressive的程度。例如,如果我们每次只取 ,就是意味着维持最小但使得理论分析成立的步伐长度。我们也可以使用更加激进的步伐, ,来最大限度的增加dual以期望收敛更快。不过这样通常使得每一步的计算开销更大。所以是仁者见仁智者见智了。
这个算法框架可以解释一系列算法,例如前面提到的Halving, 它使用激进步伐,或是WM, 使用平缓的步伐,以及Adaboost . 当然,我们可以从这个算法框架里推出新的有no-regret保证的新的online算法。
到这里,我们介绍的三个算法(前面是Online Gradient Descent, Weighted Majority)的regret bound都是 。事实上,对于强凸的目标函数,目前已知最优的regret bound是 。记得在OGD中我们使用固定的 的学习率,如果我们将其改成变长的 ,那么变可以达到这个最优上界。对于这节介绍的方法,我们可以通常将罚 里面的 分成 份给每个loss , 这样前 个loss的和就是 -强凸,从而达到使用变长学习率的效果。具体可见Shai的NIPS ’08 .