20 Dual Methods
본 장에서는 dual 을 이용하여 문제를 해결하는 방법으로서, dual subgradient method, dual decomposition method, augmented Lagrangian method에 대해 알아보고, Alternating Direction Method of Multipliers (ADMM)의 개념을 간단히 알아본다.
우선 앞에서 배운 내용 중 Proximal Newton method 와 Conjugate function 내용을 간단히 복습한다.
Review: proximal Newton method
다음의 문제가 있다.
\begin{equation} \min_x g(x) + h(x) \end{equation}
여기서, 함수 \(g\)와 \(h\)는 convex 함수이며, \(g\)는 두번 미분 가능하고, \(h\)는 simple 하다고 가정한다.
Proximal Newton method는 최초 \(x^{(0)} \in \mathbb{R}^n\)에서 시작되며, 먼저 함수 \(g\)와 \(h\)에게 모두 좋은 최적의 벡터 방향을 아래와 같이 찾는다
\begin{alignat}{1} v^{(k)} & = \arg \min_v g({x^{(k-1)}})^T v + \frac{1}{2} v^T \nabla^2 g(x^{(k-1)}) v + h(x^{(k-1)} + v) \end{alignat}
위에서 찾아진 방향으로 아래와 같이 다음 \(x^{(k)}\)를 업데이트한다.
\begin{equation} x^{(k)} = x^{(k-1)} + t_k v^{(k)}, k=1,2,3,\dots \end{equation}
여기서, \(t_k\)는 step size로서 backtracking으로 결정된다.
위 두 과정을 반복적으로 실행한다.
- 위 반복(iteration)은 매우 비용이 많이 든다 (\(v^{(k)}\)를 계산하는 것이 일반적으로 매우 어렵다)
- 그러나, 적당한 조건하에서는 converge하기까지 매우 적은 iteration이 요구되고, local quadratic convergence의 수렴 속도를 갖는다
Review: conjugate function
\(f: \mathbb{R}^n \to \mathbb{R}\)에 대해, conjugate 함수는 아래와 같이 정의된다.
\begin{equation} f^*(y) = \max_x y^Tx - f(x) \end{equation}
(1) Conjugate 함수는 아래와 같이 쓸 수 있으며, 이는 dual 문제에서 자주 나타나는 형태이다.
\begin{equation} -f^{\ast}(y) = \min_x f(x) - y^Tx \end{equation}
(2) 만약 \(f\)가 closed하고 convex이면, \(f^{**} = f\) 이다. 또한,
\begin{equation} x \in \partial f^{\ast}(y) \Longleftrightarrow y \in \partial f(x) \Longleftrightarrow x \in \arg\min_z f(z) - y^Tz \end{equation}
Proof
먼저, \(x \in \partial f^{\ast}(y) \Longleftrightarrow y \in \partial f(x)\)을 증명한다.
1단계 : \(x \in \partial f^{\ast}(y) \Longleftarrow y \in \partial f(x)\)
\(y \in \partial f(x)\)를 가정하자. 그러면, \(x\)는 \(y^Tz - f(z)\)를 최대로 하게 하는 \(z\)들의 집합 \(M_y\) 에 속하게 된다, 즉 \(x \in M_y\).
그러나, \(f^{\ast}(y)= \max_z y^Tz - f(z)\) 이고, \(\partial f^{\ast}(y)=\text{cl} \left( \text{conv} \left( \bigcup_{z \in M_y} \left\{ z \right\} \right) \right)\). 따라서, \(x \in \partial f^{\ast}(y)\)
2단계 : \(x \in \partial f^{\ast}(y) \Longrightarrow y \in \partial f(x)\)
위에서 보인것과 같이, 만약, \(x \in \partial f^{\ast}(y)\) 이면, \(y \in \partial f^{\ast\ast}(x)\). 여기서, \(f^{\ast\ast}(x)=f\) 이므로 \(y \in \partial f(x)\).
위 1, 2 단계를 통해, \(x \in \partial f^{\ast}(y) \Longleftrightarrow y \in \partial f(x)\)이 증명되었다.
3단계 : \(x \in \partial f^{\ast}(y) \Longleftrightarrow y \in \partial f(x) \Longleftrightarrow x \in \arg\min_z f(z) - y^Tz\)
한편, \(y \in \partial f(x) \Longleftrightarrow x \in \arg\min_z f(z) - y^Tz\)은 subgradient의 정의로부터 자명한 사실이다.
따라서, 위 두 증명을 통해, \(x \in \partial f^{\ast}(y) \Longleftrightarrow y \in \partial f(x) \Longleftrightarrow x \in \arg\min_z f(z) - y^Tz\)임이 증명되었다.
(3) 만약 \(f\)가 strictly convex이면,
\[\begin{equation} \nabla f^{\ast}(y) = \arg\min_z f(z) - y^T z \end{equation}\]
Proof
\(f\)가 strictly convex이면, \(f(z)-y^Tz\)는 최소값을 갖는 유일한 \(z\)가 존재하며, 이것은 위 (2)에 대한 증명으로부터 \(\nabla f^{\ast}(y)\)이어야 한다.
다시 말하면 \(f\)가 strictly convex이면 \(f^{\ast}\)의 subgradient는 1개이며 gradient가 된다. 따라서, \(f^{\ast}\)는 differentiable한 함수이다.