for textmining

Duality

|

이번 글에서는 Duality와 관련된 개념들을 살펴보도록 하겠습니다. 이 글은 미국 카네기멜런대학 강의를 기본으로 하되 영문 위키피디아 또한 참고하였습니다. 그럼 시작하겠습니다.

concept

최적화 이론에서 쌍대성(雙對性; duality)이란 어떤 최적화 문제가 원초문제(the primal problem)쌍대문제(the dual problem)의 두 가지 관점에서 볼 수 있다는 원칙입니다. 쌍대문제의 상한은 primal problem의 하한(a lower bound)이 됩니다. 선형계획법(linear programming)를 예로 들어보겠습니다. 다음과 같이 주어진 선형 조건을 만족시키면서 선형인 목적함수 $c^Tx$를 최소화하는 문제입니다. ($c$는 $n$차원. $b$는 $m$차원, $h$는 $r$차원 벡터, $A$는 $m×n$, $G$는 $r×n$ 행렬)

[\begin{align} &\min_{ x }&&{ { c }^{ T }x } \ &subject\quad to\quad &&Ax=b\ &&&Gx\le h \end{align}]

위 식은 행렬-벡터 형식인데요. 이를 스칼라 형태의 식으로 살펴보면 등식 형태의 제약식이 $m$개, 부등식 형태의 제약식이 $r$개가 있고, 이를 만족하면서 목적함수를 최대화시키는 $n$개의 미지수를 찾는 문제라고도 이해할 수 있습니다. 제약식 양변에 $u$, $v$라는 벡터를 곱해 봅시다. 여기에서 $v≥0$, 즉 벡터 $v$의 모든 요소는 0 이상의 값을 지닙니다. 따라서 위 식에서 부등식 형태의 제약식은 부등호 방향이 바뀌지 않습니다.

[{ u }^{ T }Ax={ u }^{ T }b\ { v }^{ T }Gx\le { v }^{ T }h]

위 두 개 식을 더하고, 정리해 주면 다음과 같은 형태가 됩니다.

[\begin{align} { u }^{ T }Ax+{ v }^{ T }Gx&\le { u }^{ T }b+{ v }^{ T }h\ \left( { u }^{ T }A+{ v }^{ T }G \right) x&\le { u }^{ T }b+{ v }^{ T }h\ { \left( { A }^{ T }u+{ G }^{ T }v \right) }^{ T }x&\le { u }^{ T }b+{ v }^{ T }h\ { \left( -{ A }^{ T }u-{ G }^{ T }v \right) }^{ T }x&\ge -{ u }^{ T }b-{ v }^{ T }h\ \therefore \quad { c }^{ T }x&\ge -{ u }^{ T }b-{ v }^{ T }h \end{align}]

위 식에서 볼 수 있듯 $-A^Tu-G^Tv$가 $c$가 되도록 하면, primal problem의 목적함수 $c^Tx$의 하한(a lower bound)은 $-u^Tb-v^Th$가 됩니다. 따라서 $-A^Tu-G^Tv=c$, $v≥0$이라는 제약식을 만족시키면서, $-u^Tb-v^Th$를 최대화하는 문제가 primal problem과 동일해질 겁니다. 결론적으로 말해 아래와 같은 형태가 primal problem와 쌍을 이루는 dual problem이 됩니다. primal problem에서는 주어진 식을 만족하는 벡터 $x$를 찾는 것이었으나 dual problem에서는 벡터 $u, v$를 찾는 문제가 됩니다.

[\begin{align} &\max_{ u,v }&&{ -{ b }^{ T }{ u }-{ h }^{ T }{ v } } \ &subject\quad to\quad && -{ A }^{ T }{ u }-{ G }^{ T }{ v } = c\ &&&v\ge 0 \end{align}]

라그랑지안적 접근

primal problemdual problem라그랑주 승수법(Lagrange multiplier method)과 연관지어 살펴볼 수도 있습니다. 라그랑주 승수법이란 최적화하려는 값에 형식적인 라그랑주 승수(multiplier) 항을 더하여, 제약된 문제를 제약이 없는 문제로 바꾸는 방법입니다. 라그랑주 승수법 관련 자세한 내용은 이곳이나 이곳을 참고하시면 좋을 것 같습니다. 전 챕터에 이어 선형계획법 예시를 가지고 primaldual 문제를 살펴보겠습니다. primal problem을 다시 살펴보겠습니다.

[\begin{align} &\min_{ x }&&{ { c }^{ T }x } \ &subject\quad to\quad &&Ax=b\ &&&Gx\le h \end{align}]

primal problem을 라그랑주 승수 벡터 $u$와 $v$를 도입해 라그랑주 함수 $L$을 만들면 다음과 같은 형태가 됩니다. 단 여기에서 $v≥0$, 즉 벡터 $v$의 모든 요소는 0 이상의 값을 지닙니다.

[L\left( x,u,v \right) ={ c }^{ T }x+{ u }^{ T }\left( Ax-b \right) +{ v }^{ T }\left( Gx-h \right)\le{c}^{T}x]

그런데 위 식 우변의 두번째 항은 항상 0입니다($∵ Ax=b$). 세번째 항은 항상 0 이하의 값을 갖습니다($∵Gx≤h, v≥0$) 따라서 $L$은 목적함수 $c^Tx$보다 항상 작거나 같습니다. 여기에서 $C$를 원초문제의 제약식을 만족하는 $x$의 집합, $f^*$를 우리가 찾으려는 최적값이라고 할 때 다음 식이 성립합니다.

[{ f }^{ * }\ge \min _{ x\in C }{ L\left( x,u,v \right) } \ge \min _{ x }{ L\left( x,u,v \right) }]

위 부등식의 의미는 이렇습니다. 제약조건이 있는 것보다는, 없는 환경에서 해당 식의 값을 더 작게 만들 수 있을 겁니다. 위 부등식 가운데 오른쪽 마지막 항을 $g(u,v)$라 두겠습니다. $g(u,v)$를 라그랑지 듀얼 함수(Lagrange dual function)이라고도 부릅니다. 그러면 $g(u,v)$는 어떤 값을 지닐까요? 차근차근 구해보겠습니다.

우선 $g(u,v)$는 그 정의상 $L$의 최소값 즉, $min_x{L(x,u,v)}$입니다. $L$은 우리가 알고 싶은 미지수로 편미분한 결과가 0이 되는 지점에서 최소값을 갖습니다. $L$을 $x$로 편미분한 결과는 다음과 같습니다.

[\frac { \partial L }{ \partial x } ={ c }^{ T }+{ u }^{ T }A+v^{ T }G=0\ \therefore \quad c=-{ A }^{ T }u-{ G }^{ T }v]

따라서 위 식을 $L$에 대입해 풀면 $g(u,v)$를 구할 수 있습니다.

[\begin{align} L\left( x,u,v \right)&= { c }^{ T }x+{ u }^{ T }\left( Ax-b \right) +{ v }^{ T }\left( Gx-h \right)\&\Rightarrow { \left( -{ A }^{ T }u-{ G }^{ T }v \right) }^{ T }x+{ u }^{ T }\left( Ax-b \right) +{ v }^{ T }\left( Gx-h \right) \ &=-u^{ T }Ax-v^{ T }Gx+u^{ T }Ax-u^{ T }b+v^{ T }Gx-{ v }^{ T }h\ &=-u^{ T }b-{ v }^{ T }h\&=g(u,v) \end{align}]

우리는 이미 $f^*≥g(u,v)$라는 관계를 확인했으므로, primal problem의 최소값을 찾는 것은 $g(u,v)$를 최대화하는 문제와 동일하다는 걸 확인할 수 있습니다. 단 라그랑주 승수법을 적용하는 과정에서 가정한 두 가지 조건, 즉 $-A^Tu-G^Tv=c$, $v≥0$을 만족해야 합니다.

따라서 우리는 다음과 같이 dual problem으로 다시 쓸 수 있습니다. 이는 당초 primal problem과 쌍을 이룹니다.

[\begin{align} &\max_{ u,v }&&{ -{ b }^{ T }{ u }-{ h }^{ T }{ v } } \ &subject\quad to\quad && -{ A }^{ T }{ u }-{ G }^{ T }{ v } = c\ &&&v\ge 0 \end{align}]

라그랑지안적 접근의 장점은 지금까지 설명해드렸던 선형계획법 이외에도 임의의 최적화 문제에 대해 모두 적용할 수가 있다는 점입니다. 다시 말해 라그랑주 승수법을 적용해 다양한 유형의 primal problemdual problem으로 바꿔풀 수가 있습니다. 이제 최적화 문제를 일반적인 케이스에 적용해 봅시다. 다음과 같은 primal problem이 주어졌다고 칩시다.

[\begin{align} &\min _{ x }&&{ f\left( x \right) } \ &subject\quad to\quad &&{ h }_{ i }\left( x \right) \le 0,\quad i=1,…,m\ &&&{ l }_{ j }\left( x \right) =0,\quad j=1,…,r \end{align}]

라그랑지안 함수 $L$과 라그랑지 듀얼함수 $g$를 각각 정의합니다. 이미 살펴봤듯이 부등식 형태의 제약식에 붙는 라그랑주 승수(multiplier) $u_i$는 모두 0 이상의 값을 지녀야 합니다.

[\begin{align} L\left( x,u,v \right) =&f\left( x \right) +\sum _{ i=1 }^{ m }{ { u_{ i }h }_{ i }\left( x \right) } +\sum _{ j=1 }^{ r }{ { v_{ i }l }_{ j }\left( x \right) } \ g\left( u,v \right) =&\min _{ x }{ L\left( x,u,v \right) } \end{align}]

$f^*≥g(u,v)$이므로 dual problem은 다음과 같이 쓸 수 있습니다. primal problem에서는 주어진 식을 만족하는 벡터 $x$를 찾는 것이었으나 dual problem에서는 벡터 $u, v$를 찾는 문제가 됩니다. 아울러 최소 문제가 최대 문제로 바뀌었습니다.

[\begin{align} &\max_{ u,v }&&{ { g }(u,v) } \ &subject\quad to\quad &&u\ge 0 \end{align}]

한편 dual problem은 항상 convex 문제가 됩니다. $g(u,v)$를 아래와 같이 자세히 뜯어보면 convexity를 보존하는 연산만 수행이 되기 때문입니다. convexity를 보존하는 연산에 대해서는 이곳을 참고하면 좋을 것 같습니다.

duality gap

$g(u,v)$는 $f$-star의 하한(a lower bound)입니다. 이를 바꾸어 말하면 dual problem의 목적함수 $g(u,v)$를 최대화하는 것은 primal problem의 목적함수를 최소화하는 문제가 됩니다. 그런데 primal problem의 해와 dual problem의 해가 반드시 같지는 않습니다. 아래 부등식에서 $f$의 최적값과 $g(u,v)$ 사이에 차이가 존재할 수 있음을 확인할 수 있습니다. 이를 duality gap이라고 합니다.

[{ f }^{ * }\ge \min _{ x }{ L\left( x,u,v \right) }=g(u,v)]

$f$의 최적값과 $g(u,v)$ 사이에 위와 같은 관계를 지니면 weak dual이라고 합니다. 그런데 아래와 같은 관계를 지니면 strong dual이라고 합니다. duality gap이 없음을 확인할 수 있습니다.

[{ f }^{ * }=g(u,v)]

primal problem의 목적함수와 제약식이 특정 조건을 만족하면 strong duality 속성을 지니게 된다고 합니다. 이것이 Slater’s condition입니다. 다음과 같습니다.

Comment  Read more

Convex Functions

|

이번 글에서는 Convex Function(볼록함수)와 관련된 개념들을 살펴보도록 하겠습니다. 이 글은 미국 카네기멜런대학 강의를 기본으로 하되 저희 연구실의 김해동 석사과정이 만든 자료를 정리했음을 먼저 밝힙니다. 영문 위키피디아 또한 참고하였습니다. 그럼 시작하겠습니다.

convex function

convex function이란 임의의 두 점 $x$, $y$와 $[0,1]$ 사이의 값 $t$에 대해 다음이 항상 성립하는 함수 $f$를 가리킵니다.

[f\left( tx+\left( 1-t \right) y \right) \le tf\left( x \right)+\left( 1-t \right) f\left( y \right)]

이를 그림으로 도시하면 다음과 같습니다.

convex function 유형

strict convex란 임의의 두 점 $x$, $y$와 $[0,1]$ 사이의 값 $t$에 대해 다음이 항상 성립하는 함수 $f$를 가리킵니다. 다시 말해 $f$는 convex function이면서, 선형함수(linear function)보다 큰 곡률을 가집니다. (등호는 $f$가 선형함수일 때 성립하므로)

[f\left( tx+\left( 1-t \right) y \right) < tf\left( x \right)+\left( 1-t \right) f\left( y \right)]

strong convexconvex function 가운데 0이 아닌 양수 $m$에 대해 다음이 항상 성립하는 함수 $f$를 가리킵니다. 다시 말해 $f$는 적어도 quadratic function만큼 convex하다는 걸 뜻합니다.

[f-\frac { m }{ 2 } { \left| x \right| }_{ 2 }^{ 2 }\quad is\quad convex]

따라서 다음과 같은 포함관계가 성립합니다.

  • strong convexstrict convexconvex

concave function(오목함수)convex function에 음수를 취한 함수를 가리킵니다. 따라서 우리는 convex function에 집중해서 분석합니다.

convex function의 예시

convex function의 대표적 예시는 다음과 같습니다.

convexity를 보존하는 연산

convex function에 대해 다음 연산은 convexity를 보존합니다.

convex function의 특성

convex function은 다음 세 가지 중요한 특성이 있습니다. 다음과 같습니다.

이 가운데 second-order characterization을 활용해 소프트맥스 함수가 convex function임을 증명해 보겠습니다. 다음과 같습니다.

Comment  Read more

Convex Sets

|

이번 글에서는 Convex Set(볼록집합)과 관련된 개념들을 살펴보도록 하겠습니다. 이 글은 미국 카네기멜런대학 강의를 기본으로 하되 저희 연구실의 김해동 석사과정이 만든 자료를 정리했음을 먼저 밝힙니다. 영문 위키피디아 또한 참고하였습니다. 그럼 시작하겠습니다.

벡터 결합하기

벡터 $x_1$, $x_2$, …, $x_n$이 주어졌을 때 이들을 결합하는 것은 다음 세 가지 방식이 있습니다.

  • Linear combination : $α_1x_1+…+α_nx_n$ ($α_i$는 실수)
  • Affine combination : $α_1x_1+…+α_nx_n$ ($Σ_iα_i=1$)
  • Convex combination : $α_1x_1+…+α_nx_n$ ($Σ_iα_i=1$이고, $0≤α_i≤1$)

affine combination에 대해 닫힌(closed) 집합을 Affine set이라고 합니다. 예컨대 벡터 $x_1$, $x_2$가 집합 $A$에 속해 있고, 이들의 affine combination 또한 $A$에 속할 때 $A$는 affine set이 됩니다. 마찬가지로 convex combination에 대해 닫힌 집합을 convex set이라고 합니다.

2차원 벡터 두 개(즉 $x_1$, $x_2$)를 세 가지 방식으로 결합해 각각 나타내면 다음 그림과 같습니다.

  • linear combination 결과 $x_1$과 $x_2$를 포함하는 $R^2$의 평면이 생성(span)된다.
  • 2차원 공간의 affine set은 $x_1$과 $x_2$를 지나는 직선이다.
  • 2차원 공간의 convex set은 $x_1$과 $x_2$를 연결하는 선분이다.

벡터 $x_1$과 $x_2$의 affine set이 직선, convex set이 선분이 되는 것과 관련해서는 고1 수학 과정의 내분과 외분과 연관성이 있을 거란 생각이 듭니다. 다시 말해 벡터 앞에 붙는 계수의 부호가 중요하다는 이야기이죠.

Convex Set

convex set $C$는 다음과 같이 정의됩니다.

  • $x$와 $y$가 $C$에 속한다면, $tx+(1-t)y$ 또한 $C$에 포함된다. ($0≤t≤1$)

직관적으로 따져보겠습니다. 어떤 집합 $C$에 속한 임의의 두 점을 골랐을 때 둘을 연결하는 선분 또한 $C$에 포함될 경우 $C$를 convex set이라고 합니다. 따라서 다음 도형은 convex set입니다.

다음은 convex set이 아닙니다. 아래 두 점을 잇는 선분의 일부가 해당 집합 바깥에 있기 때문입니다.

마찬가지로 다음은 convex set이 아닙니다. 임의의 두 점이 경계에 있을 경우 해당 점을 잇는 선분의 일부가 집합에 포함되어 있지 않습니다.

Convex set의 종류

convex set의 예는 다음과 같습니다.

Norm ball의 예시는 다음과 같습니다. ($x_1, x_2$의 L2 norm, radius $y$에 대한 집합) $y$축을 기준으로 잘라보면 그 모양이 원 모양이고 볼록해 convex set을 만족하리라고 직관적으로 추론해볼 수 있습니다.

Hyperplane $a^Tx=b$ 위의 임의의 두 점 $x_1$, $x_2$ 사이를 잇는 선분은 다시 $a^Tx=b$에 포함됩니다. 따라서 Hyperplaneconvex set입니다. 마찬가지 이유로 Halfspace, Affine space 또한 convex set이 됩니다.

Polyhedron은 다음과 같이 정의되며 그 예시는 다음 그림과 같습니다.

  • {$x$|$Ax≤b$}

행렬 $A$에 벡터 $x$를 내적한 결과인 $b$는 벡터일 것입니다. 이를 잠시 다시 생각해보면 선형부등식 여러 개가 한꺼번에 적용된 거라고 보아도 될 것 같습니다. 예를 들어 ‘행렬 $A$의 첫번째 벡터와 $x$를 내적한 결과는 벡터 $b$의 첫번째 스칼라값보다 작거나 같다’는 식으로 말이죠.

Polyhedron선형계획법(linear)에서 중요하게 다뤄진다고 하는데요. 각각의 선형부등식이 제약식 역할을 수행하며 결과적으로 Polyhedron은 해당 제약 조건 하의 가능해(possible solutions) 영역이 된다는 것입니다. 어쨌거나 Polyhedron 또한 convex set입니다.

simplex는 삼각형 또는 사면체(tetrahedron)의 일반화 버전이라고 합니다. simplex 역시 convex set입니다.

convex set의 성질

convex set과 관련해 두 가지 중요한 정리가 있습니다. 첫번째는 sepaating hyperplane theorem입니다. 두 개의 겹치지 않는(disjoint) convex set을 분리해주는 하이퍼플레인(hyperplane)이 존재한다는 것입니다. 아래 그림에서 $D$와 $C$를 가르는 벡터 $a$가 바로 그러한 역할을 하는 하이퍼플레인입니다.

단 여기에서 $D$와 $C$는 닫힌집합(closed set, 스스로의 경계를 모두 포함하는 위상공간의 부분집합)이어야 하며, 둘 중 하나가 유계집합(bounded set, 유한한 영역을 가지는 집합)이어야 합니다.

두번째는 supporting hyperplane theorem입니다. convex set의 경계 점을 지나는 접선이 항상 존재한다는 것입니다. 다음 그림과 같습니다.

convexity를 보존하는 연산

convex set $C$와 $D$에 대해 다음 연산(operation)은 convexity를 보존합니다. 다시 말해 $C$와 $D$가 convex set이라는 사실이 증명돼 있고, 다음 연산을 수행한다면 연산 수행 결과로 나타난 새로운 집합은 별도의 증명 없이도 convex set이라는 겁니다.

  • intersection(교집합)
  • scaling and translation(스칼라곱, bias 더하기) : $C$가 convex set이라면 $aC+b$ 또한 convex set ($a,b$는 스칼라)
  • affine images and preimages : $f(x)=Ax+b$이고 $C$가 convex set이라면 $f(C)$ 또한 convex set, $f(x)=Ax+b$이고 $D$가 convex set이라면 $f^{-1}(D)$ 또한 convex set

이밖에 다음 연산도 convexity를 보존합니다.

Comment  Read more

일본이 근대화에 성공한 이유

|

여러 지인이 추천한 올해의 책 가운데 하나가 바로 학교에서 가르쳐주지 않는 일본사였다. 요지는 이렇다.

‘일본은 1868년 메이지유신이 선포된 지 40여 년만에 세계 질서를 주도하는 열강의 대열에 오르는 기염을 토했다. 하지만 일본이 순식간에 그런 기적을 일궈냈다고 보는 건 오해다. 17세기 초반 에도 막부 성립에서 19세기 중반 메이지유신 이전까지 에도시대 260여년동안 권위와 시장 간의 긴장, 경제의 분화와 전문화, 인적/물적 이동성의 확대 등 드라마틱하고 익사이팅한 축적을 거쳐 포텐이 터진 결과다.’

저자는 20여 년 간 외교관 생활을 하다가 한일관계에 기여할 수 있는 자신만의 영역을 개척해보고 싶다는 생각으로 외교부를 그만두고 최근 서울에서 우동집을 하고 있다. 독특한 저자 이력만큼이나 책 제목도, 논지도 눈길을 끌기에 충분했다. 다소 일본 중심적인 시각인 것 같다, 그래서 ‘우리나라 학교에서 가르쳐 주지 않는 일본 역사’라는 느낌도 들지만.. 인상적인 구절 몇 개 정리해본다. (2017. 12. 24. 전주)


  • 한국의 역사 교과서에 등장하는 에도시대의 일본은 임진왜란 때 납치한 도공이나 조선통신사에게 한 수 배우며 선진 문물을 습득한 문명의 변방국이다. 고대 중화문명 확산 경로의 선후관계에서 비롯된 한국인들의 일본에 대한 문화적 우월감은 에도시대로까지 자연스럽게 연장되고 고정관념화되어 있다. 단언컨대, 일본의 근세 260여 년을 그런 식으로 바라보는 나라는 한국뿐이다.

  • 천하보청의 묘미는 국가에서 거두는 국부(國富)가 고스란히 인프라로 전환되었다는 것이다. 만약 쇼군이 중앙의 군주로서 징세, 즉 화폐나 현물의 형태로 생산량의 일정 부분을 거두어 갔다면 그 과정에서 많은 비효율과 왜곡된 자본 축적/잉여가 발생하였을 것이다. 일본은 천하보청에 따라 세금 징수가 아니라 ‘결과물’ 형태로 의무를 부과했기 대문에 관리비용 등의 매몰비용(sunk cost)이나 착복으로 인한 증발 없이 모든 투입이 실물 인프라로 이어졌다. (중략) 현대 경제학으로 말하면 승수효과가 매우 높은 재정정책이 절묘한 타이밍에 시행된 것이다. (중략) 말단에서 세금의 형태로 걷히는 생산물은 천하보청을 거치면서 노임, 자재 대금 형태로 재분배되었다. 이러한 직접적인 자원 투입의 결과로 높은 수준의 공공인프라가 창출되자 한층 더 경제활동이 촉진되고, 이는 다시 말단 세금 납부자의 생활 개선으로 이어졌다.

    * 천하보청(天下普請) : 쇼군이 다이묘들에게 부과하는 공공사업 역무(役務). 에도 막부 초대 쇼군 도쿠가와 이에아스는 에도성, 하천 정비 및 농수로/운하망/상하수도 건설 등 인프라 건설에 다이묘들을 동원했다.

  • 참근교대에는 막대한 비용이 소요된다. 적게는 100명에서 많게는 500명 이상의 대규모 인원이 수백 킬로미터가 넘는 거리를 이동하는데, 소요되는 비용은 전적으로 다이묘가 부담해야 했다. (중략) 가장 큰 혜택을 본 것은 교통, 숙박의 요지와 에도, 오사카 등 대도시의 상공인과 노동자였다. (중략) 많은 천하보청이 참근교대와 연계되어 시행되었다. 참근교대에 수반하여 고카이도(五街道)라 불리는 간선도로가 대대적으로 확충되고, 에도성을 비롯한 도시기반 건설에 필요한 자재의 운송을 위하여 해로와 수로가 정비되었다. 18세기 초엽에 미곡을 비롯한 각종 물자의 집산지인 오사카로부터 에도를 연결하는 복수의 민영 정기항로가 개설되었고, 18세기 말엽에는 전국을 연결하는 상업 해운망이 완성되었다. 해운망의 발달은 미곡, 술, 간장, 각종 생필품, 지역 특산물이 오사카로 집산되었다가 에도에 공급되면서 전국적으로 유통되는 데 기여하였고.. (중략) 다이묘라는 재향 지배층의 의무적 소비 지출 증가가 상인 및 도시노동자 계층의 소득으로 흡수되는 현상은 현대적으로 말하면 일종의 낙수효과(trickle down effect)가 발생했다고 할 수 있다.

    * 참근교대제(參勤交代制) : 쇼군이 모든 번(藩)의 다이묘들로 하여금 1년 단위로 정기적으로 에도와 그들의 영지를 오가게 하는 일종의 ‘인질 제도’.

  • 안게리아겐고와게에는 ‘handkerchief’가 하나후키로 번역되어 있다. 한국말로 하면 ‘코닦기’ 정도의 의미이다. 일본에는 없는 물건이지만 그 용도를 파악하여 적절한 대역어를 조어한 것이다. 이보다 더 관념적인 단어에 대해서는 더 많은 고민이 필요하다. ‘liberty’를 자유(自由)로, ‘economy’를 경제(經濟)로, ‘physics’를 물리(物理)로, ‘chemistry’를 화학(化學)으로 번역한 것에서 볼 수 있듯이 일본에 없는 관념을 번역하기 위해 사전의 편찬자들은 서양의 개념을 수용한 후 그를 자국어로 변용하는 언어의 재창조 작업에 몰두하였다. 최초로 그러한 임무가 맡겨진 사람들 입장에서는 단어 하나하나가 문화의 충돌이었고 문명의 이양이었다. 일본의 근대화 과정에서 번역이 갖는 의미는 각별하다. 일본의 근대화에는 서구의 관념을 일본의 관념으로 변환시키고 내재화하는 과정이라 할 수 있다. 개항 이후 이루어진 일본의 급속한 근대화는 그보다 100년 전 부터 수많은 지식인들의 고뇌가 담긴 ‘언어의 통로’가 있었기에 가능한 것이었다. (최초의 영일사전은 1814년 일본 막부 주도로 만들어졌다는 점 언급) (중략) 참고로, 최초의 영한사전은 (선교사) 언더우드(H. G. Underwood)가 집필한 ‘한영 영한자전’이다. 조선에는 마땅한 인쇄시설이 없어 1890년 요코하마에서 발행되었다. (괄호 안 및 강조표시는 인용자)

    * 안게리아겐고와게(諳厄利亞言語和解) : 1811년 나가사키에서 만들어진 영어의 기본체계와 기초 어휘가 정리된 책자(사전).

  • 중국은 그 부당한 처사(불평등 상호 조약)를 영국에게 당했고, 일본은 미국에게 당했고, 조선은 일본에게 당했다. 한국의 역사 교육은 이러한 불평등의 강요가 얼마나 천인공노할 짓인지를 만천하에 드러내는 데에 초점이 맞춰져 있다. 강요의 주체인 일본의 정의롭지 못함과 무도함을 밝히는 것을 교육의 목표로 삼는다. 그것은 그것대로 각국의 가치관과 교육관에 따라 그럴 수 있다. 일본도 한국과 마찬가지로 구미 열강 세력에 당한 불평등에 대해 분개하고 분노한다. 그러나 일본의 역사 교육은 거기에서 머무르지 않는다. ‘유럽으로부터 불평등한 조항을 강요당한 것은 일본의 사법제도가 그들로부터 인정받지 못한 탓이다. 그들로부터 인정을 받을 수 있는 사법제도를 구축하고 불평등을 해소해야 한다.’ 당시 일본의 위정자들은 그렇게 생각했다. 1854년 개국 이래 불평등조약의 개정은 일본 사회의 지상과제가 되었다. 내로라하는 뜻있는 지식인들이 구미로 건너가 그들의 법제를 습득하고 외국의 전문가를 초빙해 지도를 청하고 국가 지성의 총력을 기울여 법제의 근대화에 매진한다. 이러한 노력의 결과, 1880년 형법과 형사소송법 제정을 필두로 1889년 헌법, 1896년 민법 등 소위 ‘법전’이라 불리는 6법 체계가 완성되었다. 유럽의 법제를 철저히 연구하여 제정한 법률들이다. 유럽국들이 더 이상 법체계의 이질성, 미성숙성을 이유로 불평등을 강요할 수 없도록 준비를 단단히 한 일본은 당당하게 기존의 불평등 조항의 파기와 개정을 요구한다. 일본 정부는 1892년 포르투갈의 영사재판권을 포기시키고, 1894년 청일전쟁의 승리를 기화로 영국을 강하게 몰아붙여 기존의 불평등조약을 개정한 ‘일영통상항해조약’을 체결하고 사법 주권을 회복하였다. 유럽세력의 좌장인 영국과 조약을 개정하면 그다음부터는 일사천리이다. 20세기가 되기 전에 일본은 구미 국가들과의 관계에서 사법 주권을 회복하였다. 불평등조약을 강요당한 분함을 계기로 대등한 관계로 인정받겠다는 집념이 기어코 불평등조약의 폐기를 이끌어냈고, 그러한 굴욕이 오히려 조기 근대화의 자극제로 작용한 것이다. 이러한 집단 지성 축적의 스토리와 그 기틀을 닦은 지식인들의 고뇌와 성취의 에피소드가 후세에 전해져 일본인들의 역사관과 세계관을 형성하였다. 일본인들은 그렇게 역사를 바라보고, 가르치고, 배운다. 그리고 그것이 가장 깨끗한 설욕이라고 생각한다. 스스로 강요당한 불평등을 조선에 다시 강요한 일본을 부도덕하고 악한 나라라고 비판하는 것은 자유이다. 그러나 일본은 스스로 주권을 회복하였고 조선은 회복하지 못하였다. 그 역사로부터 배워야 할 것은 없는가? 이것이 한국의 역사관이 답을 찾아야 할 올바른 질문이라고 생각한다.

Comment  Read more

Advanced GANs

|

이번 글에서는 Generative Adversarial Network(이하 GAN)의 발전된 모델들에 대해 살펴보도록 하겠습니다. GAN은 학습이 어려운 점이 최대 단점으로 꼽히는데, 아키텍처나 목적함수를 바꿔서 성능을 대폭 끌어올린 모델들입니다. 이 글은 전인수 서울대 박사과정이 2017년 12월에 진행한 패스트캠퍼스 강의와 위키피디아 등을 정리했음을 먼저 밝힙니다. 그럼 시작하겠습니다.

vanilla GAN

GAN이란 생성자(generator, $G$)와 구분자(discirimiator, $D$), 두 네트워크를 적대적(adversarial)으로 학습시키는 비지도 학습 기반 생성모델(unsupervised generative model)입니다. $G$는 Zero-Mean Gaussian으로 생성된 노이즈 $z$를 받아서 실제 데이터와 비슷한 데이터를 만들어내도록 학습됩니다. $D$는 실제 데이터와 $G$가 생성한 가짜 데이터를 구별하도록 학습됩니다. GAN의 궁극적인 목적은 실제 데이터의 분포에 가까운 데이터를 생성하는 것입니다. GAN을 도식화한 그림은 다음과 같습니다.

GAN의 목적함수는 다음과 같습니다. 게임이론 타입의 목적함수로 두 명의 플레이어($G$와 $D$)가 싸우면서 서로 균형점(nash equilibrium)을 찾아가도록 하는 방식입니다.

[\min { G }{ \max _{ D }{ V\left( D,G \right) } } ={ E }{ x\sim { p }{ data }\left( x \right) }\left[ \log { D\left( x \right) } \right] +{ E }{ z\sim { p }_{ z }\left( z \right) }\left[ \log { \left{ 1-D\left( G\left( z \right) \right) \right} } \right]]

실제 학습을 진행할 때는 두 네트워크를 동시에 학습시키지 않고 따로따로 업데이트를 합니다. 각각의 목적함수는 다음과 같습니다.

[\begin{align} \max _{ D }{ V\left( D \right) } =&{ E }_{ x\sim { p }_{ data }\left( x \right) }\left[ \log { D\left( x \right) } \right] +{ E }_{ z\sim { p }_{ z }\left( z \right) }\left[ \log { \left{ 1-D\left( z \right) \right} } \right] \ =&\frac { 1 }{ m } \sum _{ i=1 }^{ m }{ \log { D\left( { x }^{ i } \right) } } +\frac { 1 }{ m } \sum _{ i=1 }^{ m }{ \log { \left{ 1-D\left( G\left( { z }^{ i } \right) \right) \right} } } \ \min _{ G }{ V\left( G \right) } =&{ E }_{ z\sim { p }_{ z }\left( z \right) }\left[ \log { \left{ 1-D\left( G\left( z \right) \right) \right} } \right] \ =&\frac { 1 }{ m } \sum _{ j=1 }^{ m }{ \log { \left{ 1-D\left( G\left( { z }^{ j } \right) \right) \right} } } \end{align}]

DCGAN

Deep Convolutional GAN(DCGAN)은 GAN을 개선한 모델입니다. GAN은 학습이 어렵다는 점이 최대 단점인데요. DCGAN은 대부분의 상황에서 안정적으로 학습이 되는 아키텍처로, Deep Generative Model 연구는 DCGAN 등장 이전과 이후로 나뉠 정도로 파급력이 컸습니다. DCGAN 이후 소개된 GAN 논문은 DCGAN 아키텍처에서 크게 벗어나지 않습니다. DCGAN 특징과 아키텍처 개요는 다음과 같습니다.

구분 Generator Discriminator
Pooling Layers Not Used. But use strided convolutions instead. same
Batch Normalization Use except output layer Use except input layer
Fully connected hidden layers Not used Not used
Activation function ReLU for all layers except for the output, which uses Tanh LeakyReLU for all layers

disentangled latent code

DCGAN 논문에서는 $G$의 인풋 역할을 하는 $z$ 벡터를 활용해 semantic 연산이 가능하다는 점을 언급해 주목을 받았습니다. 예컨대 선글라스를 낀 남자들을 발생시키는 $z_1$에 선글라스를 안 낀 남자에 해당하는 $z_2$를 빼고, 여기에 선글라스를 안 낀 여자들을 발생시키는 $z_3$를 더해 선글라스를 낀 여자들과 관련한 사진을 생성한 것입니다. 이밖에 $z$로 rotation 등 다양한 효과를 내어서 이목을 사로 잡았습니다.

하지만 위 그림이 나타내는 바와 같이 $z$가 속한 벡터공간의 각 차원별 특징은 해석하기 어렵습니다(entangled). 위의 DCGAN의 경우 생성된 이미지를 사람이 일일이 확인해 찾은 결과입니다. 이후 해석하기 쉬운(disentangled) 특징량(latent code)에 의존하는 Deep Generative Model이 잇달아 제안됐습니다. 앞으로 설명해 드릴 conditional GAN, InfoGAN, ACGAN 등이 바로 여기에 속합니다.

conditional GAN

conditional GAN에서는 $x$뿐 아니라 데이터의 정답 레이블 정보 $y$를 GAN에 적용한 최초의 시도입니다. 아키텍처는 아래 그림과 같습니다.

conditional GAN의 목적함수를 vanilla GAN과 비교해서 보면 $y$가 $D$와 $G$에 추가된 것 외에 같은 점을 확인할 수 있습니다.

[\min { G }{ \max _{ D }{ V\left( D,G \right) } } ={ E }{ x\sim { p }{ data }\left( x \right) }\left[ \log { D\left( x,y \right) } \right] +{ E }{ z\sim { p }_{ z }\left( z \right) }\left[ \log { \left{ 1-D\left( G\left( z,y \right), y\right) \right} } \right]]

conditional GAN과 같이 아키텍처를 구성할 경우 Zero-Mean Gaussian으로 생성한 $z$와, 우리가 생성하고 싶은 범주의 레이블 정보에 해당하는 벡터 $y$를 함께 넣어 원하는 데이터를 생성할 수 있게 됩니다. $G$는 $z$뿐 아니라 $y$의 정보도 함께 고려하여 데이터를 생성하기 때문에 $z$가 속한 벡터공간을 해석하기 쉬워졌다는 의미로 받아들여도 되지 않을까 싶습니다.

semi-supervised GAN

semi-supervised GAN은 $D$를 multinomial classifier로 구성했습니다. 정답이 있는 실제 데이터는 해당 정답을 맞추도록 $D$가 학습됩니다. 정답이 없는 실제 데이터의 경우 fake를 제외하고, 거기에 제일 비슷한 범주가 예측되도록 합니다(예컨대 $K$개 범주가 있다면 예측된 범주 y-hat은 {$1,2,…K$} 가운데 하나가 됨). $G$가 생성한 가짜 데이터의 경우 $D$는 fake class로 예측하게 됩니다. 이 아키텍처는 레이블 정보가 일부 데이터에 한정된 semi-supervised 환경에서 작동할 수 있고, 범주 정보로 $z$ 공간을 해석할 수 있다는 장점이 있습니다.

ACGAN

Auxiliary Classifier GAN(ACGAN)은 $D$를 두 개의 classifier로 구성했습니다. 하나는 데이터가 실제인지 가짜인지 판별합니다. 나머지 하나는 해당 데이터의 범주를 분류합니다. 이 덕분에 ACGAN로 생성된 데이터는 다른 분류기에 넣어도 범주 분류가 잘 된다고 합니다. 바꿔 말해 이치에 맞는 데이터를 만들어낼 수 있다는 얘기죠. $G$는 conditional GAN처럼 레이블 정보와 $z$를 합쳐 가짜 데이터를 생성합니다. 아키텍처는 다음과 같습니다.

ACGAN의 목적함수는 다음과 같습니다. $L_S$는 기존 GAN의 $D$ 목적함수와 동일합니다. 다시 말해 해당 데이터가 진짜인지 가짜인지 판별해내는 것과 관련이 있습니다. $L_D$는 해당 데이터의 범주를 분류하는 것에 해당합니다. $D$는 $L_S+L_C$를, $G$는 $L_C-L_S$를 최대화하도록 학습됩니다.

[\begin{align} &{ L }_{ S }=E\left[ \log { p\left( S=real|{ X }_{ real } \right) } \right] +E\left[ \log { p\left( S=fake|{ X }_{ fake } \right) } \right] \ &{ L }_{ C }=E\left[ \log { p\left( C=c|{ X }_{ real } \right) } \right] +E\left[ \log { p\left( C=c|{ X }_{ fake } \right) } \right] \end{align}]

catGAN

categorical GAN(catGAN)은 다음과 같은 조건부 엔트로피(conditional entropy)를 목적함수로 활용합니다.

[\begin{align} H\left( X|Y \right) &\equiv \sum _{ x\in \chi }^{ }{ p\left( x \right) H\left( Y|X=x \right) } \ &=-\sum _{ x\in \chi }^{ }{ p\left( x \right) \sum _{ y\in \Psi }^{ }{ p\left( y|x \right) \log { p\left( y|x \right) } } } \end{align}]

catGAN의 학습 목표를 직관적으로 나타낸 그림은 다음과 같습니다. 우선 $D$ 입장에서 살펴보겠습니다. $D$는 다음 세 가지 과업을 잘 수행하도록 학습됩니다.

  • $(i)$ 실제 데이터($x$)의 경우 $D$ 스스로 범주 구분을 확실하게 한다. 즉 조건부 엔트로피(entropy) $H[p(y$|$x,D)$를 최소화한다.
  • $(ii)$ 가짜 데이터($G(z)$)의 경우 $D$ 스스로 범주 구분을 잘 하지 못하게 한다. 즉 조건부 엔트로피 $H[p(y$|$x,G(z))$를 최대화한다.
  • $(iii)$ $D$ 스스로 $N$개 전체 진짜 데이터를 $K$개 범주에 균등하게 할당하도록 한다. 즉 주변확률 엔트로피 $H[p(y$|$D)]$를 최대화한다.

$G$는 다음 두 가지 과업을 잘 수행하도록 학습됩니다.

  • $(ii)$ 가짜 데이터($G(z)$)라도 $D$가 범주 구분을 확실하게 하도록 한다. 즉 조건부 엔트로피 $H[p(y$|$x,G(z))$를 최소화한다.
  • $(iii)$ $D$가 $M$개 전체 가짜 데이터를 $K$개 범주에 균등하게 할당하도록 한다. 즉 주변확률 엔트로피 $H[p(y$|$D)]$를 최대화한다.

catGAN의 목적함수는 다음과 같습니다.

[\begin{align} { L }_{ D }=&\max _{ D }{ { H }_{ \chi }\left[ p\left( y|D \right) \right] -{ E }_{ x\sim \chi }\left[ H\left[ p\left( y|x,D \right) \right] \right] +{ E }_{ z\sim p\left( z \right) }\left[ H\left[ p\left( y|G\left( z \right) ,D \right) \right] \right] } \ { L }_{ G }=&\min _{ G }{ -H_{ G }\left[ p\left( y|D \right) \right] +{ E }_{ z\sim p\left( z \right) }\left[ H\left[ p\left( y|G\left( z \right) ,D \right) \right] \right] } \end{align}]

위 식 가운데 $L_D$의 우변 두번째 항은 실제로 다음과 같이 계산됩니다. 다시 말해 레이블이 없는 실제 데이터 $N$개를 $D$에 넣고 계산한 조건부 엔트로피를 가리킵니다.

[\begin{align} { E }_{ x\sim \chi }\left[ H\left[ p\left( y|x,D \right) \right] \right] =&\frac { 1 }{ N } \sum _{ i=1 }^{ N }{ H\left[ p\left( y|x,D \right) \right] } \ =&\frac { 1 }{ N } \sum _{ i=1 }^{ N }{ -\sum _{ k=1 }^{ K }{ p\left( y=k|{ x }^{ i },D \right) \log { p\left( y=k|{ x }^{ i },D \right) } } } \end{align}]

레이블이 있는 데이터를 보유하고 있을 경우 위 항과 별도로 아래와 같은 크로스엔트로피(cross entropy)를 추가할 수도 있습니다. 다시 말해 catGAN은 (semi)supervised learning 과업 또한 수행할 수 있다는 이야기입니다.

[CE\left[ y,p\left( y x,D \right) \right] =-\sum { i=1 }^{ K }{ { y }{ i }\log { p\left( y={ y }_{ i } x,D \right) } }]

$L_D$ 우변 세번째 항은 실제로 다음과 같이 계산됩니다. 모든 $z$에 대해 조건부 엔트로피를 구할 수 없기 때문에 몬테카를로 방법을 활용합니다. 즉 $p(z)$로부터 $M$개 $z$를 뽑은 뒤 이를 $G$에 넣어 조건부 엔트로피를 구하는 것입니다. 이 다음부터는 위 항 계산 방식과 동일합니다.

[{ E }_{ z\sim p\left( z \right) }\left[ H\left[ p\left( y G\left( z \right) ,D \right) \right] \right] \approx \frac { 1 }{ M } \sum _{ i=1 }^{ M }{ H\left[ p\left( y G\left( { z }^{ i } \right) ,D \right) \right] }]

주변확률 엔트로피는 다음과 같이 계산합니다.

[{ H }_{ \chi }\left[ p\left( y D \right) \right] =H\left[ \frac { 1 }{ N } \sum _{ i=1 }^{ N }{ p\left( y x^{ i },D \right) } \right] \ H_{ G }\left[ p\left( y D \right) \right] \approx H\left[ \frac { 1 }{ M } \sum _{ i=1 }^{ M }{ p\left( y G\left( { z }^{ i } \right) ,D \right) } \right]]

InfoGAN

Information GAN(InfoGAN)은 기존 GAN 목적함수에 상호정보량(mutual information)을 추가한 형태입니다. 상호정보량이란 두 확률변수들이 얼마나 의존적(dependent)인지 측정하는 지표로, 두 확률변수의 독립성을 쿨백-라이블러 발산(KLD)으로 측정합니다. 서로 독립일 경우 그 값이 0이 됩니다.

[I\left( X;Y \right) ={ D }_{ KL }\left( p\left( x,y \right)   p\left( x \right) p\left( y \right) \right)]

기존 GAN 목적함수를 $V(D,G)$라고 했을 때 InforGAN의 목적함수는 다음과 같습니다.

[\min { G }{ \max _{ D }{ { V }{ I }\left( D,G \right) } } =V\left( D,G \right) -\lambda I\left( c;G\left( z,c \right) \right)]

InfoGAN에서는 $G$의 입력 노이즈 $z$를 두 개로 분리했습니다. 노이즈 종류에 대한 설명과 아키텍처를 나타낸 그림은 다음과 같습니다.

  • $c$ : latent code, 즉 설명 가능한 피처(semantic features)
  • $z$ : incompressible noise, 즉 나머지 모든 부분

목적함수에서 확인할 수 있듯 $c$와 $G(z,c)$ 사이의 상호정보량을 최대화한다는 것은, $c$에 의존적인 데이터를 $G$가 생성하도록 한다는 의미입니다. 다시 말해 $c$가 변함에 따라 가짜 데이터 또한 여기에 맞춰 바뀔 수 있도록 학습을 진행한다는 겁니다.

그러나 상호정보량을 단박에 최대화하는 것은 어렵습니다. 이에 변분추론(Variational Inference)을 수행해 $I(c;G(z,c))$의 하한(lower bound)를 구하여 이렇게 구한 하한을 최대화하는 방식으로 학습을 진행하게 됩니다. 구체적인 전개 과정에 대해서는 이곳을 참고하면 좋을 것 같습니다.

Least Squares GAN

vanilla GAN에서는 $p(x)$와 $p(z)$ 간의 거리를 KLD로 측정했습니다. 그런데 Least Squares GAN(LSGAN)은 이름 그대로 거리 측정 지표로 least Square를 씁니다. LSGAN의 목적함수는 다음과 같습니다.

[\begin{align} \min _{ D }{ { V }_{ LSGAN }\left( D \right) } =&\frac { 1 }{ 2 } { E }_{ x\sim { p }_{ data }\left( x \right) }\left[ { \left( D\left( x \right) -b \right) }^{ 2 } \right] +\frac { 1 }{ 2 } { E }_{ z\sim { p }_{ z }\left( z \right) }\left[ { \left( D\left( G\left( z \right) \right) -a \right) }^{ 2 } \right] \ \min _{ G }{ { V }_{ LSGAN }\left( G \right) } =&\frac { 1 }{ 2 } { E }_{ z\sim { p }_{ z }\left( z \right) }\left[ { \left( D\left( G\left( z \right) \right) -c \right) }^{ 2 } \right] \end{align}]

목적함수를 이렇게 만들면 $D$는 진짜 데이터 $x$를 입력받았을 때 $b$를 출력하도록, 가짜 데이터 $G(z)$의 경우 $a$가 되도록 합니다. $G$는 $D$가 가짜 데이터를 받았을 때 $c$를 출력하도록 유도합니다. 이 말은 어떤 의미일까요? 다음 그림을 보면서 생각해 보겠습니다.

위 그림에서 KLD를 거리 함수로 쓰게 되면 진짜 데이터의 분포 중심과 가짜 데이터의 중심이 같아서 더 이상 최적화하기 어렵습니다. 하지만 가짜 데이터들 가운데서도 실제 데이터와 멀리 떨어져 있는 것이 있을 수 있습니다. 예컨대 핑크색 포인트들이 바로 그런 경우입니다. least Square를 쓰게 되면 이러한 데이터들도 실제 데이터의 분포 쪽으로 가깝게 끌어올 수 있게 됩니다. least Square는 $x$가 loss에 대해 strictly convex하기 때문(함수 꼴이 빗살무늬 토기 모양의 그림이 됨)에 유일한 최적해를 가지며 이 점 덕분에 LSGAN이 좀 더 안정적인 학습이 가능하다고 합니다.

Wasserstein GAN

GAN을 학습하면 $G$가 생성하는 분포 $p_g(x)$가 실제 데이터 분포 $p_{data}(x)$에 근사합니다. 그 이유는 최적의 $D$를 가정했을 때 $G$에 대한 GAN의 목적함수는 $p_g(x)$와 $p_{data}(x)$ 사이의 젠슨-섀넌 다이버전스(Jensen Shannon Divergence) 최소화와 동일하기 때문입니다. 이와 관련해서는 이곳을 참고하시면 좋을 것 같습니다.

어쨌거나 젠슨-섀넌 다이버전스는 두 확률 분포 간 차이를 측정하는 함수인데요. 불행하게도 언제나 잘 작동하는 건 아닙니다. 다음 예시를 보겠습니다.

[{ p }{ real }=\left( 0,y \right) ,y\sim U\left[ 0,1 \right] \ { p }{ fake }=\left( \theta ,y \right) ,y\sim U\left[ 0,1 \right]]

다소 극단적인 설정이긴 하지만 위와 같은 상황에서 젠슨-셰넌 다이버전스는 $θ$가 0일 때만 0, $θ$가 0이 아닌 모든 지점에서 $\log2$의 값을 갖습니다. $θ$가 0에 가까울 수록 두 확률 분포 사이의 차이가 줄어드는 건 분명한데 젠슨-섀넌 다이버전스라는 측정 기법은 이러한 변화를 포착해내지 못한다는 뜻이지요. 이것이 GAN 학습이 잘 안되는 한 원인이 될 수 있겠습니다. 그러나 WGAN에서 제시하는 Wasserstein Distance(이하 WDist)는 두 분포 간 차이가 |$θ$| 꼴이 되어서 이러한 변화 캐치에 능동적입니다. 다음 그림과 같습니다.

WDist를 직관적으로 설명하면 이렇습니다. $P_r$과 $P_θ$ 사이의 WDist는 $P_r$을 $P_θ$로 옮길 때 필요한 양과 거리의 곱을 가리킵니다. 산등성이 전체를 옮기는 것 같다고 하여 Earth Mover Distance라고도 불립니다.

하지만 WDist를 바로 계산하는 것은 어렵기 때문에 몇 가지 수학적 증명 과정을 통해 WDist를 근사하게 됩니다. 결과적으로 도출된 목적함수는 다음과 같습니다.

[\begin{align} &\max _{ D }{ { V }_{ WGAN }\left( D \right) } ={ E }_{ x\sim { p }_{ data }\left( x \right) }\left[ D\left( x \right) \right] -{ E }_{ z\sim { p }_{ z }\left( z \right) }\left[ D\left( G\left( z \right) \right) \right] \ &\max _{ G }{ { V }_{ WGAN }\left( G \right) } ={ E }_{ z\sim { p }_{ z }\left( z \right) }\left[ D\left( G\left( z \right) \right) \right] \ &{ \theta }_{ D }\leftarrow clip\left( -0.01,0.01 \right) \end{align}]

위 목적함수가 기존 GAN과의 차이를 보이는 점은 다음과 같습니다.

  • log(sigmoid(logits)) 대신 logits를 그대로 사용한다.
  • $D$는 임의의 $k$-lipschitz function이어야 한다. 이에 $D$의 모든 파라메터들을 임의의 $[-c,c]$로 클리핑한다. 이 때 $c$는 작은 상수값.

WGAN은 거의 모든 GAN 데이터셋에서 학습이 잘 돼 많은 주목을 받았습니다. WGAN은 $D$와 $G$ 사이의 균형 문제를 걱정할 필요 없이 $D$가 수렴할 때까지 학습을 진행해도 될 정도로 안정적이라고 합니다.

Comment  Read more