[최적화] Quadratic program

이우준·2021년 10월 17일
3

Optimization

목록 보기
2/6

저번 최적화 포스팅에 이어 이번에는 quadratic program을 정리해보려고 한다.

최적화의 모든 부분을 정리하고 싶지만 현실적으로 시간이 부족할 것 같아 앞으로도 지금처럼 주제별로 포스팅을 할 예정이고, 본 내용이 이 글을 읽는 분들에게 도움이 되었으면 좋겠다.

본문에서 다룰 내용은 다음의 세 가지 이다.

1. QP는 무엇이고, LP와 LS가 QP의 special case 인지

2. QP가 closed-form solution을 가지는 special case: constrained LS에 대하여

3. General QP는 어떤 식으로 다룰 것인지

Quadratic program

QP in standard form

먼저 QP의 standard form은 다음과 같다.

minxRd wx+xQx:Axb0Cxe=0\begin{aligned} \min_{x \in \mathbf{R}^d}& \textrm{ } w^{\intercal}x + x^{\intercal}Qx: \\ &\quad Ax-b \leq 0 \\ &\quad Cx-e = 0 \end{aligned}

이때, Q=QRd×d0Q = Q^{\intercal} \in \mathbf{R}^{d \times d} \succeq 0positive semi-definite (PSD) matrix 이다.

Square & symmetric matrix (i.e., Q=QRd×d)\left( \textrm{i.e., }Q = Q^{\intercal} \in \mathbf{R}^{d \times d} \right) is positive semi-definite, if vQv0,vRd.(i.e., all the eigenvalues of Q are non-negative)v^{\intercal} Q v \geq 0, \forall v \in \mathbf{R}^d. \left( \textrm{i.e., all the eigenvalues of } Q \textrm{ are non-negative} \right)
\Rightarrow Simply denoted by Q0Q \succeq 0. (: curly inequality, which means that all the eigenvalues are non-negative.)\left( \succeq: \textrm{ curly inequality, which means that all the eigenvalues are non-negative.} \right)
\rightarrow 부등호와는 다른 개념인데, 다음의 링크를 참고하자.

참고로 matrix의 부호가 positive 하다는 것은 eigenvalue 가 positive 하다는 것과 동일하다.

이제 이 problem이 convex가 맞는지 알아보자. 먼저 inequality 및 equality constraint에 의해 유도되는 set은 convex 임이 자명하다. 이제 objective function에 대해 생각해보자.

첫 번째 항 wxw^{\intercal}x 은 affine 이므로 convex 이다. 또한 convexity는 additivity에 대해 유지된다. 따라서 우리는 두 번째 항 xQxx^{\intercal} Q x 에 대해서만 판단해주면 된다.

Second order condition of convexity 에 의해, 우리는 objective function의 Hessian 즉, second derivative가 PSD 라면 이는 convex 임을 알 수 있다.

2(xQx)=((Q+Q)x)=(2Qx)=2Q0\begin{aligned} \nabla^2( x^{\intercal}Qx) &= \nabla\left((Q+Q^{\intercal})x\right) \\ &= \nabla (2Qx) \\ &= 2Q \succeq 0 \end{aligned}

이제 QP가 LP와 LS를 포함하는 관계인지 알아보자.

Subsumes LP

Q=0Q=0 인 상황을 생각해보자.

minxRd wx:Axb0Cxe=0\begin{aligned} \min_{x \in \mathbf{R}^d}& \textrm{ } w^{\intercal}x: \\ &\quad Ax-b \leq 0 \\ &\quad Cx-e = 0 \end{aligned}

이는 LP와 같다.

Subsumes LS

minxRd wx+xQx:Axb0Cxe=0\begin{aligned} \min_{x \in \mathbf{R}^d}& \textrm{ } w^{\intercal}x + x^{\intercal}Qx: \\ &\quad Ax-b \leq 0 \\ &\quad Cx-e = 0 \end{aligned}

LS의 standard form을 생각해보면 다음과 같다.

minxRd Axb2\begin{aligned} \min_{x \in \mathbf{R}^d}& \textrm{ } \vert \vert Ax-b \vert \vert^2 \end{aligned}

이때 objective function을 변형하여 (massage), QP form으로 만들어보자.

Axb2=(Axb)(Axb)=xAAx2bAx+bb\begin{aligned} \vert \vert Ax-b \vert \vert^2 &= (Ax-b)^{\intercal}(Ax-b) \\ &= x^{\intercal}A^{\intercal}Ax - 2b^{\intercal}Ax + b^{\intercal}b \end{aligned}

먼저 bbb^{\intercal}b 은 optimization variable xx에 영향을 받지 않는 constant이기 때문에 중요하지 않다. 두 번째 term 2bAx- 2b^{\intercal}Ax 은 x에 대해 affine 이므로, QP의 wxw^{\intercal}x 에 대응된다. 마지막으로 첫 번째 term은 xQxx^{\intercal}Qx 와 대응하는 것을 알 수 있는데, 이때 AAA^{\intercal}AQQ 와 대응하므로 우리는 AAA^{\intercal}A가 PSD 임을 보이면 된다.

AA0A^{\intercal}A \succeq 0 의 증명:
vRdv \in \mathbf{R}^d 인 어떤 vector vv 를 생각해보자.
이때, vAAv=(Av)Avv^{\intercal}A^{\intercal} A v = (Av)^{\intercal} Av 이다.
(Av)Av(Av)^{\intercal} AvAvAv의 inner product 이므로, (Av)Av=Av2(Av)^{\intercal} Av = \vert \vert Av\vert \vert^2. 이는 Euclidean distance 이므로 non-negative 하다. (PSD 임을 만족)
위의 관계는 vRd\forall v \in \mathbf{R}^d 에 대해 성립한다.

Equality-constrained LS

이제 closed-form solution이 존재하는 QP에 대해 알아보자: Equality-constrained LS
(기존의 LS와 다른 점은 equality constraint 가 추가되었다는 점)

minxRd Axb2:Cxe=0(where ARm×d,CRp×d)\begin{aligned} \min_{x \in \mathbf{R}^d} & \textrm{ } \vert\vert Ax - b \vert\vert^2: \\ &\quad Cx-e = 0 \\ &\quad (\textrm{where } A \in \mathbf{R}^{m \times d}, C \in \mathbf{R}^{p \times d}) \end{aligned}

여기서 AA의 dimension을 생각해보자. 우리는 mdm \geq d 인 상황에만 관심이 있다.
(만약 m<dm < d 이면 under-determined system 이므로 in general, infinite solution 존재 \rightarrow Objective function을 0으로 만들기 쉽다.)

이제 CC를 보자. 이는 ppdd의 관계에 따라 두 가지 case로 나눠진다.

  1. pdp \geq d
    이는 interesting case가 아니다. 이 경우에는 equality constraint에 의해 xx^*쉽게 결정 되거나 근이 없게 된다.
    p=dp=d 인 경우를 생각해보면, 미지수와 식의 개수가 같은 경우이므로 이때의 근은 하나로 결정된다. 따라서 objective function의 값도 결정되기 때문에 이 case 에서는 특별히 얻을 수 있는 것이 없다.
    p>dp > d 인 경우, 주어진 변수에 대한 constraint가 매우 많다는 것이다. 이때는 가지고 있는 변수가 더 적기 때문에 no solution case가 된다.

  2. p<dp < d
    앞서 설명했던 이유로 인해, 본 case가 interesting 하다.

참고로 bRmb \in \mathbf{R}^m, eRpe \in \mathbf{R}^p 이다. 이를 정리해보면 다음과 같다.

minxRd Axb2:ARm×d (md)Cxe=0CRp×d  (p<d)\begin{aligned} \min_{x \in \mathbf{R}^d} \textrm{ } \vert\vert Ax - b \vert\vert^2: \quad &A \in \mathbf{R}^{m \times d} \textrm{ } (m \geq d)\\ \quad Cx-e = 0 \quad &C \in \mathbf{R}^{p \times d} \textrm{ } \textrm{ } (p < d)\\ \end{aligned}

이제 두 가지 가정 을 할 것이다.
(wide matrix: 행보다 열이 더 많은 가로로 큰 행렬, tall은 세로로 긴 행렬)

  • rank(C)=p\textrm{rank}(C) = p \rightarrow fat matrix, row 끼리 linearly independent, full rank.

  • rank([AC])=d\textrm{rank} \left( \begin{bmatrix} A\\ C\\ \end{bmatrix} \right) = d \rightarrow tall matrix, column 끼리 linearly independent, full rank.

이 조건들은 보통 실제로 성립하기도 한다.

Closed-form solution

이제, 위에서 정리한 조건들을 다 적어 새로 식을 작성해보자.

minxRd Axb2:ARm×d (md)Cxe=0  CRp×d  (p<d)(where  rank(C)=p, rank([AC])=d)\begin{aligned} \min_{x \in \mathbf{R}^d} \textrm{ } &\vert\vert Ax - b \vert\vert^2: \quad A \in \mathbf{R}^{m \times d} \textrm{ } (m \geq d)\\ \quad &Cx-e = 0 \quad \textrm{ } \textrm{ } C \in \mathbf{R}^{p \times d} \textrm{ } \textrm{ } (p < d)\\ &(\textrm{where } \textrm{ rank}(C) = p, \textrm{ rank} \left( \begin{bmatrix} A\\ C\\ \end{bmatrix} \right) = d) \end{aligned}

이때의 closed-form solution을 먼저 표현해 볼 것인데, 이에 앞서 일반적인 LS problem에서의 closed-form solution을 다시 복습해보자.

x=(AA)1Abx^{*} = (A^{\intercal} A)^{-1} A^{\intercal}b

이를 다음과 같이 변형해볼 수 있다.

(AA)x=Ab2(AA)x=2Ab\begin{aligned} (A^{\intercal} A) x^{*} &= A^{\intercal}b \\ \Rightarrow 2(A^{\intercal} A) x^{*} &= 2A^{\intercal}b \end{aligned}

행렬 곱으로 정리하면 다음과 같다.

[2AACC0][xz]=[2Abe]\begin{bmatrix} 2A^{\intercal}A&C^{\intercal}\\ C&0\\ \end{bmatrix} \begin{bmatrix} x^*\\ z\\ \end{bmatrix} = \begin{bmatrix} 2A^{\intercal}b \\ e \\ \end{bmatrix}

(아마 맨 왼쪽 행렬 중 첫 열에 대해서는 이해했을 것이다. CC^{\intercal} 와 0으로 구성되어 있는 두 번째 열은 non-trivial 하기 때문에 일단 받아들이고 넘어가자. zz는 어떠한 vector 이다.)

여기서 xx^* 는 다음과 같이 구할 수 있다. 참고로, 'd - Components()d\textrm{ - Components}(\cdot): takes the first dd components of ()(\cdot)' 이다. 즉 여기서는 (d+p)(d+p) 차원 vector 에서 처음 dd 개의 성분만 얻는 것을 뜻한다.

x=d - Components{[2AACC0]1[2Abe]}x^* = d\textrm{ - Components} \left\{ \begin{bmatrix} 2A^{\intercal}A&C^{\intercal}\\ C&0\\ \end{bmatrix}^{-1} \begin{bmatrix} 2A^{\intercal}b\\ e\\ \end{bmatrix} \right\}

Closed-form을 조건 식에서 바로 유도하는 것은 어려우니, xx^* 가 위의 조건을 만족하면 optimal 함을 보이는 방식으로 증명을 진행할 것이다.

한편, 증명에 앞서서 정리하고 넘어가야 할 식이 있다.

[2AACC0][xz]=[2Abe] ()\begin{bmatrix} 2A^{\intercal}A&C^{\intercal}\\ C&0\\ \end{bmatrix} \begin{bmatrix} x^*\\ z\\ \end{bmatrix} = \begin{bmatrix} 2A^{\intercal}b \\ e \\ \end{bmatrix} \quad \quad \cdots \textrm{ } (*)

위의 equation을 KKT equation 이라고 한다. 그리고 가장 왼쪽의 matrix를 KKT (Karush-Kuhn-Tucker) matrix 라고 한다. (이후 다룰 KKT conditions 와 관련있다.)

다시 증명으로 돌아오면 우리에게 필요한 증명은 두 가지 이다. 각각을 증명해보자.

  1. If  (x,z)Rd+p\textrm{ } \exist (x^*,z) \in \mathbf{R}^{d+p} s.t. ()(*), then xx^* must be the optimal solution.
    i.e., Axb2Axb2\vert\vert Ax-b \vert\vert^2 \geq \vert\vert Ax^*-b \vert\vert^2, x\forall x subject to Cxe=0.Cx-e = 0.
Axb2=(AxAx)+(Axb)2=AxAx2+Axb22(AxAx)(Axb)=AxAx2+Axb20 ()Axb2\begin{aligned} \vert\vert Ax-b \vert\vert^2 &= \vert\vert (Ax - Ax^*) + (Ax^*-b) \vert\vert^2 \\ &= \vert\vert Ax - Ax^* \vert\vert^2 + \vert\vert Ax^*-b \vert\vert^2 - 2(Ax - Ax^*)^{\intercal}(Ax^*-b)\\ &= \vert\vert Ax - Ax^* \vert\vert^2 + \vert\vert Ax^*-b \vert\vert^2 -0 \quad \cdots \textrm{ }(**) \\ &\geq \vert\vert Ax^*-b \vert\vert^2 \end{aligned}

이제 ()(**) 를 증명하자.

2(AxAx)(Axb)=2(xx)A(Axb)=(xx)Cz ()=(CxCx)z=(ee)z=0.\begin{aligned} 2(Ax - Ax^*)^{\intercal}(Ax^*-b) &= 2(x - x^*)^{\intercal}A^{\intercal}(Ax^*-b) \\ &= -(x-x^*)^{\intercal} C^{\intercal} z \quad \cdots \textrm{ }(***)\\ &= -(Cx-Cx^*)^{\intercal}z\\ &= -(e-e)^{\intercal} z\\ &= 0. \end{aligned}

()(***)이 성립하는 이유는 ()(*) 에서 2AAx2Ab=Cz2A^{\intercal}Ax^{*} - 2A^{\intercal}b = -C^{\intercal}z 가 성립하기 때문이다.

  1. [2AACC0]\begin{bmatrix} 2A^{\intercal}A&C^{\intercal}\\ C&0\\ \end{bmatrix} is invertible

이는 귀류법을 통해 증명할 것이다: 만약 invertible 하지 않다고 가정해보자.

Not invertible 이라는 말은 곧 full-rank가 아니라는 것과 같다. 또한 주어진 행렬의 차원은 (d+p)×(d+p)(d+p) \times (d+p) 이다. 여기서는 invertible 하지 않음을 가정했으므로 어떠한 column은 다른 column들을 통해 표현될 수 있다. (linearly dependent)

따라서 다음의 식이 성립한다.

[xˉ;zˉ]0:[2AACC0][xˉzˉ]=0\begin{aligned} \exist [\bar{x}; \bar{z}] \neq 0: \begin{bmatrix} 2A^{\intercal}A&C^{\intercal}\\ C&0\\ \end{bmatrix} \begin{bmatrix} \bar{x} \\ \bar{z}\\ \end{bmatrix} = 0 \end{aligned}

이를 풀어보면,

2AAxˉ+Czˉ=02xˉAAxˉ+xˉCzˉ=02Axˉ2=0(Cxˉ=0)Axˉ=0[AC]xˉ=0.\begin{aligned} &2A^{\intercal}A \bar{x} + C^{\intercal}\bar{z} = 0 \\ \Rightarrow \quad &2\bar{x}^{\intercal}A^{\intercal}A \bar{x} + \bar{x}^{\intercal}C^{\intercal}\bar{z} = 0 \\ \Rightarrow \quad &2\vert\vert A\bar{x}\vert\vert^2 = 0 \quad (\because C\bar{x} = 0)\\ \Rightarrow \quad &A\bar{x} = 0 \\ \Rightarrow \quad &\begin{bmatrix} A \\ C \end{bmatrix}\bar{x} = 0. \\ \end{aligned}

앞서 우리는 [AC]\begin{bmatrix} A \\ C \end{bmatrix}가 full-rank 임을 가정했다. 따라서 xˉ=0\bar{x}=0 이다.

이를 앞선 관계식에 적용해보면, Czˉ=0C^{\intercal}\bar{z} = 0 이다. 그런데 이 역시 앞선 가정에 의해 CC^{\intercal}의 column들이 linearly independent 하므로, zˉ=0\bar{z} = 0 이다.

정리하면 xˉ=zˉ=0\bar{x}=\bar{z}=0, 이는 처음 가정에 모순된다.

General QP

초반에 언급했던 바와 같이, 일반적으로 QP는 다음과 같은 standard form을 가진다.

minxRd wx+xQx:Axb0Cxe=0where  Q=Q0.\begin{aligned} \min_{x \in \mathbf{R}^d}& \textrm{ } w^{\intercal}x + x^{\intercal}Qx: \\ &\quad Ax-b \leq 0 \\ &\quad Cx-e = 0 \quad \textrm{where } \textrm{ }Q=Q^{\intercal} \succeq 0. \end{aligned}

그렇다면 QP의 general solution은 무엇일까? 아쉽게도 QP의 general solution은 존재하지 않는다. 이는 추후 strong duality 를 다룰 때, 더 논의해보도록 하자.

Reference

카이스트 서창호 교수님 강의 - EE424: 최적화개론 lecture 10.

KKT condition을 잘 정리한 한글 블로그

0개의 댓글