原始问题对偶化

Posted demonhunter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原始问题对偶化相关的知识,希望对你有一定的参考价值。

本篇假设已经了解Lagrange函数,对偶的基本原理,针对的问题是对没有约束的函数(f(w))如何变换为对偶,以及对参考资料[1][2]一些推到的补充。

问题

一般的统计机器学习目标函数可以通常为

[min_w f(Xw) + r(w)label{eq:basic_form} ag{1} ]

其中(X)代表数据,(w)代表要学习的参数,(f(Xw))表示某种误差度量,(r(w))表示对(w)的正则项。

现在要对这个问题做对偶,为什么要做对偶在参考资料里也给出了几种情况,这里罗列如下:

  • 参数(w)的维度小于数据维度,求解方便
  • 可以分布式

公式(~ ef{eq:basic_form})没有约束信息,通过引入

[lambda=Xw ]

来制造约束。引入约束后,更新如下

[egin{align*}&minlimits_{w, lambda} &f(lambda)+r(w)& s.t. & lambda=Xwend{align*} ]

这样就可以构造Lagrange函数,

[min_{w,lambda} f(lambda) + r(w)+alpha(Xw-lambda)label{eq:lagrange} ag{2} ]

利用共轭函数,上式整理为

[egin{align*}&min_{lambda} -alphalambda + f(lambda)+min_{w} alpha Xw+r(w)& -sup_{lambda} (alpha lambda - f(lambda)) -sup_{w}(-alpha Xw-r(w))& -f^*(alpha) -r^*(-alpha W)end{align*} ]

最后的目标是要极大化Lagrange函数,即公式(~ ef{eq:lagrange}),也就是最小化dual gap。

[egin{align*} &max - f^*(alpha) - r^*(-alpha W)&min f^*(alpha)+r^*(-alpha W)end{align*} ]

根据(-alpha X= abla r^(w))原始变量(w)和对偶变量间的关系如下

[w = - abla r^*(-alpha X) ]

对于参考资料[1]中共轭函数的例子,

技术图片

对Hinge和Square loss给出具体的推到

  • Hinge loss

    [suplimits_z uz-max{0, 1-y_iz} ]

    分析(max{0, 1-y_iz})的取值情况(需要注意这时候的(vert y_ivert=1)),当(y_iz>1)时,即(vert zvert>frac{1}{vert yvert})时,上式变成(sup_z uz)而且此时(z)还是一个无界的,因此极限不存在。当(y_i zleq1)时,即(vert z vert leq frac{1}{vert yvert})时,上式变为(sup_z uz-1+y_iz),此时为了取极大值(y_iz=1),因此变成(sup_z uz),因为(z)的取值范围,最后变成(ufrac{1}{vert yvert}),注意(y=pm1),因此最终的结果是(u),这个和图片中的结果有点不符,我也不太确信。

  • Square loss

    [sup_z uz-Vert y_i - zVert_2^2 ]

    对于Square loss直接展开,然后求极值就可以得到(y_i u+frac{u^2}{4})的结果。

例子

例子来源于[2],primal问题是

[min_{{ m w}in R^d} left[frac{lambda}{2}Vert { m w}Vert_2^2 + frac{1}{n}sum_{i=1}^n l_i({ m w^T}x_i) ight] ]

根据公式(~ ef{eq:lagrange})的变换,得到

[egin{align*}min_{{ m w},u_i}left[frac{lambda}{2}Vert { m w}Vert_2^2 + frac{1}{n}sum_{i=1}^n l_i(u_i) ight]-underbrace{frac{1}{n}}sum_i^nalpha_i(u_i-{ m}w^Tx_i)end{align*} ]

上式中的花括号的地方添加的(frac{1}{n})是为了更方便合并(l_i(u_i),,alpha_iu_i)。对于正则项部分

[egin{align*}&-max_{ m w} -{ m w}^Tegin{bmatrix}frac{1}{n}x_i end{bmatrix}alpha-frac{2}{lambda} Vert { m w}Vert_2^2 ag{3}&-frac{1}{2lambda}Vert egin{bmatrix}frac{1}{n}x_i end{bmatrix}alphaVert_2^2 ag{4}end{align*} ]

从而(3)到(4)的变换使用的就是square loss的共轭函数,为了简便,可以令(A=frac{1}{lambda n}egin{bmatrix}frac{1}{n}x_iend{bmatrix}),最终化简为

[-frac{lambda}{2}Vert A alphaVert_2^2 ]

关于(l_i)的部分就不进一步说明了。参数( m w)(alpha)的关系,通过(3)到(4)中对( m w)求极值可以得到

[{ m w}=Aalpha ]

参考资料

  1. 知乎:淋蒙, 凸优化中的对偶问题与共轭函数
  1. 知乎:淋蒙, 从单机优化到分布式优化:从Coordiante Ascent到MOCHA

以上是关于原始问题对偶化的主要内容,如果未能解决你的问题,请参考以下文章

拉格朗日对偶性

拉格朗日对偶性

求解原始问题和对偶问题常用的优化算法都有哪些

原始对偶算法

拉格朗日对偶性

拉格朗日对偶性(KKT)