-
GAN - 02 ( 논문 중후반)AI/논문 리뷰 2024. 4. 7. 22:13
이 이미지에 있는 알고리즘은 GAN(Generative Adversarial Networks)의 훈련 절차를 나타내는 의사코드(pseudocode)입니다.
이 과정은 미니배치(minibatch) 확률적 경사 하강법(stochastic gradient descent, SGD)을 사용하여
감별자(Discriminator)와 생성자(Generator)를 번갈아 가며 업데이트하는 방식을 기술하고 있습니다.
여기서 각 단계를 설명드리면 다음과 같습니다:
1. 감별자 업데이트(훈련)
- 감별자를 훈련시키기 위해, 먼저 노이즈 분포 로부터 개의 노이즈 샘플 을 뽑습니다.
이 노이즈는 생성자가 새로운 데이터를 생성하는 데 사용됩니다.
- 다음으로 실제 데이터 분포 로부터 개의 실제 데이터 샘플 을 뽑습니다.
- 이 두 종류의 샘플을 사용하여 감별자를 업데이트합니다. 이 때, 감별자는 실제 데이터를 진짜라고 판별하고 생성된 가짜 데이터를 가짜라고 판별할 확률을 높이는 방향으로 경사를 올라갑니다(ascending its gradient).
2. 생성자 업데이트(훈련)
- 생성자를 훈련시키기 위해, 다시 노이즈 분포 로부터 개의 노이즈 샘플을 뽑습니다.
- 이 노이즈 샘플을 생성자에 입력하여 가짜 데이터를 생성하고, 이 데이터를 감별자에게 평가받습니다.
- 생성자는 감별자가 생성된 데이터를 진짜로 판별할 확률을 높이는 방향으로 자신의 경사를 내려가며(gradient descent) 파라미터를 업데이트합니다.
3. 반복 과정
- 위의 두 단계를 여러 훈련 반복(iterations)에 걸쳐 실행합니다. 감별자는 각 반복마다 번 업데이트되며, 생성자는 한 번씩 업데이트됩니다. 이 과정에서 는 하이퍼파라미터로, 감별자의 업데이트 횟수를 결정합니다. 여기서는 가장 간단한 경우인 을 사용했습니다.
4. 학습 규칙
- 경사 기반 업데이트는 모멘텀이나 다른 표준 경사 기반 학습 규칙을 사용할 수 있습니다. 모멘텀은 경사 하강법에 이전의 업데이트를 일정 비율로 반영하여, 경사가 일관된 방향으로 강하게 유지되도록 도와줍니다.
이 알고리즘은 GAN의 학습 과정을 자동화하기 위한 지침을 제공하며, 실제로 이러한 절차를 따르면 생성자는 실제 데이터와 구별하기 어려운 가짜 데이터를 생성할 수 있도록 점점 더 개선됩니다. 반면에 감별자는 진짜와 가짜를 더 잘 구별하도록 훈련됩니다.
Global Optimality of (@3.1)
이 섹션은 생성자가 실제 데이터 분포 와 같을 때 전역 최소값(global minimum)에 도달한다는 것을 말하고 있습니다.
- **최적의 감별자 **: 어떤 고정된 생성자 에 대해, 최적의 감별자 는 실제 데이터 를 실제로(1에 가깝게) 판별하고, 생성된 데이터 를 가짜로(0에 가깝게) 판별할 확률을 최대화합니다.
- ** 의 최대값**: 이 함수는 가 범위 안에서 일 때 최대가 됩니다. 이는 감별자가 실제 데이터와 생성된 데이터를 판별할 때 사용하는 로그 확률의 공식입니다.
- **감별자의 업무**: 감별자는 조건부 확률 을 학습하는 것으로 볼 수 있습니다. 여기서 는 데이터가 실제 분포로부터 왔는지(1), 아니면 생성된 분포로부터 왔는지(0)를 나타냅니다.
Theorem 1
- 이 정리는 일 때, 즉 생성자가 실제 데이터 분포를 완벽하게 모방할 때, 전역 최소값에 도달한다고 말합니다.
- 이 때의 값은 이 됩니다. 왜냐하면 이 되어서, 감별자는 실제 데이터와 생성된 데이터를 구분할 수 없게 되기 때문입니다.
Jensen-Shannon Divergence
- 이론적 논의에서 KL(Kullback–Leibler) 발산과 JS(Jensen-Shannon) 발산이 언급됩니다. 이들은 두 확률 분포 간의 차이를 측정하는 방법입니다.
- JS 발산은 두 분포가 같을 때 0이 되며, 항상 음수가 아닌 값을 가집니다. 이 성질 때문에, 의 전역 최소값은 일 때만 나타납니다.
Convergence of Algorithm 1 (@3.2)
- 이 부분은 만약 생성자 와 감별자 가 충분한 '능력'(capacity)을 가질 때, 알고리즘 1(이전에 설명한 훈련 절차)을 사용하여 감별자가 주어진 에 대해 최적화(optimum) 상태에 도달할 수 있고, 생성자 는 실제 데이터 분포 에 점점 더 가까워질 것이라고 설명합니다.
즉, GAN이 이론적으로 어떻게 최적의 상태에 도달할 수 있는지, 그리고 생성자와 감별자의 학습이 어떻게 진행되어야 하는지에 대한 수학적 설명으로 GAN이 실제 데이터 분포를 성공적으로 학습하고 재현할 수 있다는 중요한 증거입니다.
이어서 GAN의 수학적 기반 중 하나인, 생성자 와 감별자 의 최적화 문제가 어떻게 수렴에 이르게 되는지에 대한 증명입니다.
여기서는 복잡한 최적화 이론을 다루고 있는데, 이를 단순화하여 설명해 보겠습니다.
Convexity and Supremum
먼저, 함수의 집합에 대한 상한(supremum)이란, 그 집합에 포함된 모든 함수의 값을 넘지 않는 최대값을 의미합니다. 이 문맥에서 'convex'란, 어떤 함수가 직선의 양 끝점을 잇는 선분 아래에 있음을 의미합니다. 함수가 볼록(convex)하다면, 지역 최소값이 곧 전역 최소값이 됩니다.
증명에서 사용되는 중요한 개념은 **'supremum of convex functions'** 입니다. 이는 많은 볼록 함수들 중 최댓값을 찾는 것과 관련이 있습니다. 즉, 볼록 함수들의 집합에서 최댓값을 찾는 문제를 풀 때, 최댓값을 주는 지점에서의 편미분(subderivative)은 원래 함수의 편미분에 포함된다는 것입니다.
Gradient Descent with 를 에 대한 함수로 생각할 때, 는 에 대해 볼록(convex)하다고 가정합니다. 그리고 최적의 가 주어졌을 때 로 경사 하강법을 계산하는 것은, 이 최적화 문제에서 의 최소값을 찾는 것과 동일합니다.
Thm1에 의해 에 대한 유일한 전역 최소점(global optima)이 존재하므로, 에 대한 작은 업데이트는 (실제 데이터 분포)에 수렴할 것입니다.
실제로는, 자체를 직접 조정하는 대신, 생성자의 파라미터 를 최적화하여 를 조정합니다. 이론적인 보장은 없지만, 실제로는 이 방법이 잘 작동한다고 알려져 있습니다.
Convergence of GANs
이론적으로, 감별자와 생성자는 충분한 업데이트를 통해 서로에 대한 최적의 대응 상태에 이를 수 있습니다. 이 상태가 되면, 생성자는 실제 데이터 분포를 모방하는 데이터를 만들어내고, 감별자는 더 이상 가짜 데이터와 실제 데이터를 구별하지 못하게 됩니다.
이 증명은 GAN이 어떤 조건에서 이론적으로는 잘 수렴할 수 있다는 것을 보여주고 있습니다. 실험 부분은 이러한 이론이 실제로 데이터를 사용하여 GAN을 훈련시킬 때 어떻게 적용되는지 보여주는 내용일 것입니다.'AI > 논문 리뷰' 카테고리의 다른 글