Recap
지금까지 우리는 convex optimization problem을 위한 여러 방법들에 대해 공부했다: (이전 포스팅에서 전부 다루지는 못했지만) LP, LS, QP, SOCP, SDP.
하지만 이 외에도 convex 문제를 다루기 위해 사용되는, 유명한 방법이 하나 더 존재한다: Cone program (CP)
그러나 CP를 본 강의에서 다루기에는 너무 복잡하고, 이해에 필요한 것에 비해 얻는 것이 적어 이러한 방법론은 더 이상 다루지 않을 것이다.
대신 본 포스팅에서는 일반적인 QP와 SOCP, SDP에 대해 어떠한 algorithm을 적용할 수 있을지 strong duality 와 KKT conditions 을 기반으로 알아보자. (강의 자료의 표현을 빌리면, 이 두 가지 개념은 algorithm의 설계에 insights를 제공한다.)
참고로, 앞으로의 main contents 를 정리하면 다음과 같다.
-
Algorithms for general convex optimization (이번 포스팅)
-
Non-convex optimization
Strong duality
Primal & dual problems
Strong duality는 primal problem과 dual problem을 기반으로 하기 때문에, 먼저 이 둘이 뭔지를 알아봐야 한다.
이에 앞서 convex optimization의 standard form을 생각해보자.
minf(x): fi(x)≤0(i=1,⋯,m)Ax−b=0
이때 f(x) 와 fi(x) 들은 모두 convex function 이고, equality constraint에서 A∈Rp×d 이다. 우리는 그 중 p<d 인 경우에 관심이 있고, rank(A)=p 라고 가정하자. (더 정확히, 우리는 항상 A의 rank가 p인 full-rank 행렬을 만들 수 있으니 그렇다고 가정할 수 있다.)
Primal problem 이란 우리가 시작하는 problem을 지칭한다. 즉, 위의 식 자체가 곧 primal problem 이다.
다음으로 dual problem 을 알기 위해서는 두 가지 function에 대해 알아야 한다: 하나는 Lagrange function 이고, 다른 하나는 dual function 이다.
지금까지의 내용을 정리하면 다음과 같다.
Primal problem:
A problem that we start with
Dual problem:
Another problem which is closely related to the primal problem
Lagrange function
Lagrange function은 L(x,λ,ν) 와 같이 표현된다. 식은 총 세 가지 arguments로 표현되는데, 여기서 x는 interested optimization variable이고 λ는 size m, ν는 size p의 real-valued vector 이다: λ:=[λ1,⋯,λm]⊺, ν:=[ν1,⋯,νp]⊺
참고로 λ 와 ν 의 size는 각각 inequality, equality constraint의 개수와 같다.
이들을 종합한 Lagrange function의 꼴은 다음과 같다.
L(x,λ,ν):=f(x)+i=1∑mλifi(x)+ν⊺(Ax−b)
이때, 각 (i 번째) constraint에 곱해져 있는 상수 λi 와 νi 를 Lagrange multiplier 라고 한다. (νi가 안 보이게 equality constraint와 관련된 식을 왜 vector form으로 쓰는지 궁금할 수 있는데, 그냥 통상적으로 vector form으로 잘 정리되니 그렇다는 것 같다.)
Dual function
Dual function g(λ,ν) 는 다음과 같이 정의된다.
g(λ,ν):=x∈XminL(x,λ,ν)=x∈Xminf(x)+i=1∑mλifi(x)+ν⊺(Ax−b)
여기서 주목할 점은 두 가지 이다.
- x가 entire space X에 속해 있다. Entire space는 곧 (x가 존재할 수 있는) valid space 이다. 이는 정의역 (혹은 domain) 과 같고, problem에서의 optimization variable x를 생각해보면 X:=domf∩domf1∩⋯∩domfm 으로 정의할 수 있다.
⇒ Primal problem에서 inequality, equality constraint들에 의해 결정되었던 feasible set 과는 다르다. Search space가 조금 더 확장됐다고 보면 된다.
- 일반적으로 L(x,λ,ν) 는 x 에 대한 convex가 아닐 수 있다. 만약 모든 i 에 대해 λi≥0 이면, L(x,λ,ν) 는 단순히 convex function과 affine function의 합이므로 이때는 convex function이 맞다. 하지만 λi 에 대한 조건은 없으므로, 이는 negative 일수도 있고 이 경우 g(λ,ν)는 −∞가 될 수 있다.
(e.g., λ1=−1, f1(x)=ex (convex), X∈R. 이때, x=+∞→g(λ,ν)=−∞)
다시 본론으로 돌아가 dual problem 을 마저 정의해보자.
Dual function은 f(x)+∑i=1mλifi(x)+ν⊺(Ax−b) 에 대한 minimization의 solution 이다. 이때 특정 x 를 고정하여 생각해보자. 그렇다면 앞서 언급한 식은 λ 와 ν 에 대한 함수이다. 더 구체적으로 x가 고정되었으니 그에 대한 term은 상수로 볼 수 있고, 이는 λ 와 ν 에 대한 affine function 이다.
⇒ Affine in (λ,ν)
여기서 알아낼 수 있는 중요한 point가 있다. 다음의 질문을 생각해보자. 두 affine function의 minimum은 convex 일까, concave 일까? 답은 concave 이다.
즉, min(L(x1,λ,ν),L(x2,λ,ν)) 은 concave 이다. (두 직선의 minimum을 생각해보면, concave 형태임을 알 수 있다.)
그런데 g(λ,ν)는 두 개의 minimum이 아닌 무수히 많은 모든 x에 대한 minimum 이다. 여기서 우리는 g(λ,ν) 가 concave 라는 것을 알 수 있다. ⇒ Concave in (λ,ν)
Dual problem은 그러한 concave (오목) 함수 g(λ,ν)에서 maximum을 찾는 것으로, 식은 다음과 같다.
(Dual problem): λ,νmaxg(λ,ν):λ≥0
주목할 점은 ν가 아닌 λ 에 대한 constraint 만 존재한다는 것이다. 이유는 추후에 다뤄보도록 하고, 이를 식에 반영하여 아래와 같이 표현할 수 있다.
λ,νmaxx∈Xminf(x)+i=1∑mλifi(x)+ν⊺(Ax−b):λ≥0
Strong duality
Strong duality는 primal problem과 dual problem의 optimal solution 간 관계이다. 각각을 p∗ 와 d∗ 로 두자.
(Primal): p∗(Dual): d∗:=minf(x): fi(x)≤0, i=1,⋯,m, Ax−b=0:=λ,νmaxx∈Xminf(x)+i=1∑mλifi(x)+ν⊺(Ax−b): λ>=0
Strong duality는 p∗ 와 d∗에 대해 다음의 관계식이 성립하는 경우이다.
(Strong duality): p∗=d∗
당연히, 일반적으로 둘은 다르다. 하지만 흥미롭게도 mild condition 하의 convex optimization에 대해서는 strong duality가 성립하고, 우리는 이를 strong duality theorem 이라 한다.
Mild condition? It says that,
There ∃ x such that strict inequality fi(x)<0 holds for all i subject to Ax=b.
그나저나 strong duality theorem이 algorithm 설계에 있어서 왜 중요한 것일까?
이는 strong duality 가 만족할 때 필요충분 조건으로 얻을 수 있는 성질이, algorithm 적 insight를 제공할 수 있기 때문이다. 이번 포스팅에서는 그 필요충분 조건이 무엇인지 까지만 다뤄볼 예정이다.
KKT conditions
이전에 equality-constrained LS problem의 closed form solution을 다루면서 KKT equation에 대해 다룬적이 있다. KKT condition은 그와 관련 있는데, 보다 자세히 설명하면 (convex로 제한되지 않은) 일반적인 optimization problem의 optimality에 대한 필요 조건이다.
그런데 KKT conditions에 대한 자세한 공식들을 다루기에 앞서, 왜 strong duality와 KKT conditions가 algorithm 적 insight를 주는지에 대해 알아보자.
Algorithmic insights
KKT conditions&Strong duality
Convex optimization에 대해 다음의 세 가지 성질이 성립한다.
- Strong duality holds: p∗=d∗
- KKT conditions ⇔ p∗=d∗ (위에서 언급한 필요충분 조건 이다.)
- KKT conditions를 보장하는 natural algorithm이 존재한다.
따라서, general convex optimization에 대한 algorithm을 만들기 위해서는 KKT condition을 만족하는 것으로 충분하다.
Algorithm에 대한 자세한 내용은 다음에 보기로 하고, 이번 포스팅에서는 위의 성질들 중 두 번째에 집중해 볼 것이다.
KKT conditions⇔p∗=d∗
(⇐)
증명에 앞서서 다음을 가정하자.
- Strong duality 만족, p∗=d∗
- x∗는 primal problem의 minimizer 이다. 즉, x∗로 p∗를 얻을 수 있다.
- (λ∗,ν∗)는 dual problem의 maximizer 이다. 똑같이, (λ∗,ν∗)로 d∗를 얻을 수 있다.
즉 가정으로부터 우리는 f(x∗)=p∗=d∗=g(λ∗,ν∗) 임을 알 수 있으므로, 다음을 유도할 수 있다.
f(x∗)=g(λ∗,ν∗)=(a)x∈Xminf(x)+i=1∑mλi∗fi(x)+ν∗⊺(Ax−b)≤(b)f(x∗)+i=1∑mλi∗fi(x∗)+ν∗⊺(Ax∗−b)≤(c)f(x∗)
여기서 (a)는 dual function과 Lagrange function의 정의, (b)는 x∗에 대한 가정으로 인해 성립한다. (x∗는 feasible point 중에서 선택된 primal problem의 minimizer 이므로, entire space에서의 Lagrange function에 대해서는 (b)가 성립하는 것이다.)
마지막으로 (c)는 x∗가 feasible point 임을 가정했기 때문에, constraint 들을 고려하면 성립함을 알 수 있다.
(∵λi∗≥0, fi(x∗)≤0 ∀i, Ax∗−b=0)
참고로 λ∗도 feasible 한데, 이것이 dual problem에서 λ에 대한 constraint가 존재하던 이유이다.
다시 본론으로 돌아가 전체 식을 보면, 왼쪽의 첫 번째 항과 오른쪽 마지막 항은 f(x∗)로 같다. 즉, 이는 두 부등식 (b)와 (c)가 tight 하다는 것을 의미하는데, 그 중에서 (b)에 주목하면 우리는 x∗가 실제로 x에 대해 L(x,λ∗,ν∗)를 최소화 한다는 것을 알 수 있다.
한편 λ가 non-negative 하다는 전제 조건만 있다면, L은 x에 대한 convex 이고, unconstrained 하므로 아래의 식이 성립한다.
∇xL(x∗,λ∗,ν∗)=0
이번에는 (c)에 주목해보자. 여기서는 (어차피 0 값인) equality constraint를 생각하지 않아도 되니, 모든 i 에 대해 λi∗fi(x∗)=0 임을 알 수 있다. 해당 condition에는 흥미로운 점이 있는데, 만약 λi∗>0 라면 fi(x∗)=0 이다. 반대로 fi(x∗)<0 이면 λi∗=0 이다.
fi(x∗)<0λi∗>0⇒λi∗=0⇒fi(x∗)=0
정리하면 둘 중 하나가 부등식을 strict 하게 만족하면 다른 하나는 0 값을 가질 수 밖에 없는데, 이러한 특징으로 인해 λi∗fi(x∗)=0 를 complementary slackness 라고 부른다.
Why?
Slack은 곧 gap을 의미하는데, 이 gap은 (c)를 의미한다.
Complementary 라는 말은 앞서 말한 것처럼 λi∗ 와 fi(x∗) 가 서로의 조건을 상대적으로 결정해 줄 수 있다는 특징에서 나왔다.
정리해보자. 우리는 p∗=d∗라는 가정으로부터 아래의 관계식을 유도할 수 있었다.
∇xL(x∗,λ∗,ν∗)λi∗fi(x∗)=0=0∀i
이 외에도 기존의 primal 및 dual problems에 있는 constraints를 합쳐 보면, 최종적으로 아래의 condition을 얻을 수 있는데 이게 KKT condition 이다.
KKT conditions:
∇xL(x∗,λ∗,ν∗)λi∗fi(x∗)fi(x∗)Ax∗−bλ∗=0=0∀i≤0∀i=0≥0
따라서, KKT condition 은 strong duality를 만족하기 위한 필요 조건 이다.
(⇒)
KKT conditions ⇒p∗=f(x∗)=g(λ∗,ν∗)=d∗
이번에는 다음을 가정하자.
- (x∗,λ∗,ν∗) 가 KKT condition을 만족한다. (=respects the KKT condition)
우리는 여기서 p∗≤d∗ 와 p∗≥d∗ 임을 모두 보일 것이다.
먼저 p∗≤d∗ 이다. 이는 곧 f(x∗)=g(λ∗,ν∗) 임을 보이는 것과 같다. 왜냐하면 p∗≤f(x∗) 이고, g(λ∗,ν∗)≤d∗ 이기 때문이다.
KKT conditions를 이용하면, 우리는 λi∗fi(x∗)=0 과 Ax∗−b=0 임을 알기 때문에 f(x∗)를 다음과 같이 표현할 수 있다.
f(x∗)=f(x∗)+i=1∑mλi∗fi(x∗)+ν∗⊺(Ax∗−b)
그렇다면 f(x∗) 는 L(x∗,λ∗,ν∗) 와 같다. 다음으로는 Lagrange function과 dual function의 관계를 보자.
g(λ∗,ν∗):=x∈XminL(x,λ∗,ν∗)=x∈Xminf(x)+i=1∑mλi∗fi(x)+ν∗⊺(Ax−b)=(a)f(x∗)+i=1∑mλi∗fi(x∗)+ν∗⊺(Ax∗−b)=L(x∗,λ∗,ν∗)
여기서 (a) 가 성립하는 이유는 KKT condition에 의해 x∗가 minimizer 이기 때문이다.
따라서 f(x∗)=g(λ∗,ν∗) 임을 알 수 있다.
이제 p∗≥d∗ 임을 보이겠다.
시작에 앞서 p∗ 값을 얻게 하는 primal optimal point를 x~ 라 두자. 또한 dual optimal point (λ~,ν~) 로 d∗를 얻을 수 있다 가정하자. (이러한 가정을 하는 이유는 x∗, λ∗, ν∗가 primal 및 dual problem에 대한 optimal point라고 할 수 없기 때문이다; 저들은 그저 KKT condition을 만족하고 있을 뿐이다.)
p∗=f(x~)≥(a)f(x~)+i=1∑mλ~ifi(x~)+ν~⊺(Ax~−b)(=L(x~,λ~,ν~))≥x∈Xminf(x)+i=1∑mλ~ifi(x)+ν~⊺(Ax−b)=(b)g(λ~,ν~)=d∗
여기서 (a)가 성립하는 이유는 (λ~,ν~)가 feasible point 라 λ~ifi(x~)≤0, Ax~−b=0 이기 때문이다. (b)는 dual function의 정의에 의해 성립한다.
참고로 p∗≥d∗ 인 관계를 weak duality 라 한다. 이는 non-convex optimization을 포함한 모든 optimization problem 에서 성립하는데, 자세한건 (포스팅 할지는 모르겠으나) 이후의 강의에서 알아보자.
Reference
카이스트 서창호 교수님 강의 - EE424: 최적화개론 lecture 14.
감사합니다 :) dual function pointwise infimum of affine function이라서 concave한 애를 convex하게 만들어주는게 dual feasiblity의 역할이었네요 ..!