细节内容请关注微信公众号:运筹优化与数据科学
ID: pomelo_tree_opt
Quadratic optimization
之所以讲quadratic optimization,是因为SVM那些经常用到二次函数。尤其是那个norm的东西,ANN中的error/loss function最常用的是mean square error, 表现形式就是个二次的东西
---------------------------------------
两部分内容,quadratic function与quadratic models
Quadratic functions
-
Convex quadratic, nonconvex quadratic functions, 二次函数可以是凸的,也可以是凹的
Quadratic programming models
-
Linearly constrained quadratic program (LCoP) 线性约束的二次规划
-
Quadratically constrained quadratic program (QCQP) 二次约束的二次规划
-------------------------------------
(1) Quadratic functions
再写的稍微特殊一点,上面的M矩阵只是个方阵,这里的Q的一个symmetric matrix. symmetric的东西具有更多的特点。例如,对称矩阵的eigenvalue都是real实数,所以就可以通过eigenvalue来判断Q的性质,psd, pd, nsd, nd,那些,如果Q是半正定的,就意味着f函数是凸函数。
至于怎么把M变成Q,其实很简单,
------------------------------------------
第一条性质是由向量和矩阵的运算性质决定的。
至于一阶信息,每个点x不同,就不同,影响quadratic surface model, 每个地方的gradient也不同,不像linear function那样,一阶信息是个常数。
二阶信息,即“变化的变化”,就是Q,是个对称矩阵,eigenvalue are all real, 然后就可以判断psd, pd, nsd, nd那些,再判断quadratic function是凸的,还是非凸的。
------------------------------------------
(2) Graphs & contours of quadratic functions
第一个图是凸的,看等高线图,从里往外,从小到大。
第二个是个马鞍面,非凸非凹,也可以说是既凸又凹。等高线是个双曲线。
第三个是凹的。
这两个第一个就是非凸的,第二个是凸的。
大体上,直接看函数图像不太好确定是不是凸的,但是看等高线,就比较容易。凸的东西的等高线往往有个椭圆的形状,然后里面有个global optimum.
------------------------------------------
(3) Special symmetric matrices
上面是关于definite矩阵的定义,实际在使用时,都是用特征值来判断。
----------------------------------
(4) How quadratic functions come into picture?
这个两个点之间的距离,应该参考前面的vector norm与matrix norm. 对比起来看,会更直观一些
----------------------------------
(5) Linearly constrained QP (LCQP)
------------------------------------------
QP的primal 与 Dual
这个问题,如果没有Q的部分,就是标准的线性规划问题
Quadratic programming可以看作是linear programming的延伸
原来linear的P的目标函数上是加了一个quadratic term, 右边的D是减去了一个quadratic term. 而且Q会induce出来一些二阶信息,就是z.
D的约束其实是左边<=P的目标函数的梯度信息,分别是二阶信息(Q的部分)+一阶信息(c的部分).
这个认识角度很新颖。
------------------------------------------
Theorem: Strong duality holds for convex (QP).
Implications:
-
No duality gap!
-
Free choice of primal approach, dual approach, or primal-dual approach
对于凸二次规划问题,有强对偶性,也就是没有duality gap.
而且,从问题复杂度上来看,primal和dual的复杂度是一样的,都是quadratic problem.
------------------------------------------
Solution methods
一圈一圈的就是目标函数(二次函数)的等高线,多面体是约束可行域。
两者的交集,从图上看,左边的图是落在可行域的内部,右边的图是落在可行域的边上了。
实际上这个最优点有可能落在可行域内的任何一个点上。
Optimality may happen at any feasible point
Many solution methods
-
Conjugate gradient method
-
Preconditioned conjugate gradient method
-
Active set algorithm
-
Interior-point method (polynomial-time solvable)
-----------------------------------------
(6) Quadratically constrained QP (QCQP)
Convex QCQP (CQCQP)
注意这里是很多Q,不是只有一个矩阵。
When the governing matrices are positive semidefinite,
(QCQP) becomes a convex optimization problem.
大体意思应该是某些主要的matrix是半正定时,整个问题就是个凸优化的问题。
凸的QCQP问题等价于二阶锥问题,而二阶锥问题是线性锥优化问题的特殊形式。
内点法可以解SOCP问题,也就可以解CQCQP问题。
而对于nonconvex QCQP
Solution approaches for nonconvex QCQP
-
Linear conic programming (LCoP)
-
Second-order cone programming (SOCP)
-
Semidefinite programming (SDP) + relaxation
-
General nonlinear programming (NLP)
这部分一般用不到。
=============================
总结:
-
二次的东西,二次规划,可以是凸的,也可以是非凸的。取决于二次项的矩阵的性质。半正定的矩阵就意味着凸优化,而判断是否是半正定什么的,用矩阵的特征值就行。凸的二次规划是可以用求解器求解的,方法就是内点法。内点法是个polynomial time的算法,很厉害的东西。
-
之所以需要学习二次规划或者二次函数,是因为SVM,ANN中都需要用到二次函数的内容。两个超平面之间的距离就是个二次的形式。最主要是那些discrepancy, distance, loss, error等概念的度量方式,往往用2-norm,方便起见,往往再把2-norm的东西平方一下,就得到了二次函数的形式。
-
常提到的二次规划,约束条件是线性的,即LQCP. 如果约束条件中再出现二次的东西,就会变得很复杂,例如QCQP那些,这些往往没有专门好用的算法。