二次规划 Quadratic Programming
在人脸表情动画的研究中,大部分工作都是通过采集每一时刻的面部运动数据,并求出该数据在表情基中的线性组合。而这个计算问题是一个典型的二次规划问题
**二次规划 Quadratic programming(QP)**是求解某些涉及二次函数的数学优化问题的过程。具体地说,我们寻求优化(最小化或最大化)受变量线性约束的多元二次函数,二次规划是一种非线性规划。
这里的“Programming”指的是解决数学问题的正式程序。这种用法可以追溯到20世纪40年代,并不特别与最近的“计算机编程”概念相联系。为了避免混淆,一些从业者更喜欢使用“优化”一词,例如“二次优化”(quadratic optimization)。
Problem formulation
具有 n n n 个变量和 m m m 个约束的二次规划问题可以表述如下,给定:
- 一个 n n n 维实向量 c c c
- 一个 n × n n \times n n×n 维实对称矩阵(Hessian矩阵) Q Q Q
- 一个 m × n m \times n m×n 维实矩阵 A A A
- 一个 m m m 维实向量 b b b
二次规划的目标是找到一个 n n n 维向量 x \mathbf{x} x ,使得:
最小化 1 2 x T Q x + c T x \frac{1}{2} \mathbf{x}^{\mathrm{T}} Q \mathbf{x}+\mathbf{c}^{\mathrm{T}} \mathbf{x} 21xTQx+cTx
受制于 A x ⪯ b A \mathbf{x} \preceq \mathbf{b} Ax⪯b
其中 x T \mathbf{x}^{\mathrm{T}} xT 表示 x \mathbf{x} x 的转置,符号 A x ⪯ b A \mathbf{x} \preceq \mathbf{b} Ax⪯b 表示向量 A x A\mathbf{x} Ax 的每个条目小于或等于向量