ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • GAN - 02 ( 논문 중후반)
    AI/논문 리뷰 2024. 4. 7. 22:13

    이 이미지에 있는 알고리즘은 GAN(Generative Adversarial Networks)의 훈련 절차를 나타내는 의사코드(pseudocode)입니다.
    이 과정은 미니배치(minibatch) 확률적 경사 하강법(stochastic gradient descent, SGD)을 사용하여
    감별자(Discriminator)와 생성자(Generator)를 번갈아 가며 업데이트하는 방식을 기술하고 있습니다.

    여기서 각 단계를 설명드리면 다음과 같습니다:

    1. 감별자 업데이트(훈련)
        - 감별자를 훈련시키기 위해, 먼저 노이즈 분포 pg(z)로부터 m개의 노이즈 샘플 z(1),...,z(m)을 뽑습니다. 
    이 노이즈는 생성자가 새로운 데이터를 생성하는 데 사용됩니다.
        - 다음으로 실제 데이터 분포 pdata(x)로부터 m개의 실제 데이터 샘플 x(1),...,x(m)을 뽑습니다.
        - 이 두 종류의 샘플을 사용하여 감별자를 업데이트합니다. 이 때, 감별자는 실제 데이터를 진짜라고 판별하고 생성된 가짜 데이터를 가짜라고 판별할 확률을 높이는 방향으로 경사를 올라갑니다(ascending its gradient).

    2. 생성자 업데이트(훈련)
        - 생성자를 훈련시키기 위해, 다시 노이즈 분포 pg(z)로부터 m개의 노이즈 샘플을 뽑습니다.
        - 이 노이즈 샘플을 생성자에 입력하여 가짜 데이터를 생성하고, 이 데이터를 감별자에게 평가받습니다.
        - 생성자는 감별자가 생성된 데이터를 진짜로 판별할 확률을 높이는 방향으로 자신의 경사를 내려가며(gradient descent) 파라미터를 업데이트합니다. 

    3. 반복 과정
        - 위의 두 단계를 여러 훈련 반복(iterations)에 걸쳐 실행합니다. 감별자는 각 반복마다 k번 업데이트되며, 생성자는 한 번씩 업데이트됩니다. 이 과정에서 k는 하이퍼파라미터로, 감별자의 업데이트 횟수를 결정합니다. 여기서는 가장 간단한 경우인 k=1을 사용했습니다.

    4. 학습 규칙
        - 경사 기반 업데이트는 모멘텀이나 다른 표준 경사 기반 학습 규칙을 사용할 수 있습니다. 모멘텀은 경사 하강법에 이전의 업데이트를 일정 비율로 반영하여, 경사가 일관된 방향으로 강하게 유지되도록 도와줍니다.

    이 알고리즘은 GAN의 학습 과정을 자동화하기 위한 지침을 제공하며, 실제로 이러한 절차를 따르면 생성자는 실제 데이터와 구별하기 어려운 가짜 데이터를 생성할 수 있도록 점점 더 개선됩니다. 반면에 감별자는 진짜와 가짜를 더 잘 구별하도록 훈련됩니다.




    Global Optimality of pg=pdata (@3.1)

    이 섹션은 생성자가 실제 데이터 분포 pdata와 같을 때 전역 최소값(global minimum)에 도달한다는 것을 말하고 있습니다.

    - **최적의 감별자 D**: 어떤 고정된 생성자 G에 대해, 최적의 감별자 D는 실제 데이터 x를 실제로(1에 가깝게) 판별하고, 생성된 데이터 G(z)를 가짜로(0에 가깝게) 판별할 확률을 최대화합니다.
    - **yalog(y)+blog(1y)의 최대값**: 이 함수는 y가 [0,1] 범위 안에서 y=aa+b일 때 최대가 됩니다. 이는 감별자가 실제 데이터와 생성된 데이터를 판별할 때 사용하는 로그 확률의 공식입니다.
    - **감별자의 업무**: 감별자는 조건부 확률 P(Y=y|x)을 학습하는 것으로 볼 수 있습니다. 여기서 Y는 데이터가 실제 분포로부터 왔는지(1), 아니면 생성된 분포로부터 왔는지(0)를 나타냅니다.

     Theorem 1

    - 이 정리는 pg=pdata일 때, 즉 생성자가 실제 데이터 분포를 완벽하게 모방할 때, 전역 최소값에 도달한다고 말합니다.
    - 이 때의 C(G) 값은 log(4)이 됩니다. 왜냐하면 D(G(x))=12이 되어서, 감별자는 실제 데이터와 생성된 데이터를 구분할 수 없게 되기 때문입니다.

    Jensen-Shannon Divergence

    - 이론적 논의에서 KL(Kullback–Leibler) 발산과 JS(Jensen-Shannon) 발산이 언급됩니다. 이들은 두 확률 분포 간의 차이를 측정하는 방법입니다.
    - JS 발산은 두 분포가 같을 때 0이 되며, 항상 음수가 아닌 값을 가집니다. 이 성질 때문에, C(G)의 전역 최소값은 pg=pdata일 때만 나타납니다.

    Convergence of Algorithm 1 (@3.2)

    - 이 부분은 만약 생성자 G와 감별자 D가 충분한 '능력'(capacity)을 가질 때, 알고리즘 1(이전에 설명한 훈련 절차)을 사용하여 감별자가 주어진 G에 대해 최적화(optimum) 상태에 도달할 수 있고, 생성자 G는 실제 데이터 분포 pdata에 점점 더 가까워질 것이라고 설명합니다.

    즉, GAN이 이론적으로 어떻게 최적의 상태에 도달할 수 있는지, 그리고 생성자와 감별자의 학습이 어떻게 진행되어야 하는지에 대한 수학적 설명으로 GAN이 실제 데이터 분포를 성공적으로 학습하고 재현할 수 있다는 중요한 증거입니다.







    이어서  GAN의 수학적 기반 중 하나인, 생성자 G와 감별자 D의 최적화 문제가 어떻게 수렴에 이르게 되는지에 대한 증명입니다. 
    여기서는 복잡한 최적화 이론을 다루고 있는데, 이를 단순화하여 설명해 보겠습니다.

    Convexity and Supremum

    먼저, 함수의 집합에 대한 상한(supremum)이란, 그 집합에 포함된 모든 함수의 값을 넘지 않는 최대값을 의미합니다. 이 문맥에서 'convex'란, 어떤 함수가 직선의 양 끝점을 잇는 선분 아래에 있음을 의미합니다. 함수가 볼록(convex)하다면, 지역 최소값이 곧 전역 최소값이 됩니다.

    증명에서 사용되는 중요한 개념은 **'supremum of convex functions'** 입니다. 이는 많은 볼록 함수들 중 최댓값을 찾는 것과 관련이 있습니다. 즉, 볼록 함수들의 집합에서 최댓값을 찾는 문제를 풀 때, 최댓값을 주는 지점에서의 편미분(subderivative)은 원래 함수의 편미분에 포함된다는 것입니다.

    Gradient Descent with pg

    V(G,D)를 pg에 대한 함수로 생각할 때, U(pg,D)는 pg에 대해 볼록(convex)하다고 가정합니다. 그리고 최적의 D가 주어졌을 때 pg로 경사 하강법을 계산하는 것은, 이 최적화 문제에서 pg의 최소값을 찾는 것과 동일합니다.

    Thm1에 의해 pg에 대한 유일한 전역 최소점(global optima)이 존재하므로, pg에 대한 작은 업데이트는 px (실제 데이터 분포)에 수렴할 것입니다.

    실제로는, pg 자체를 직접 조정하는 대신, 생성자의 파라미터 θg를 최적화하여 G(z;θg)를 조정합니다. 이론적인 보장은 없지만, 실제로는 이 방법이 잘 작동한다고 알려져 있습니다.

    Convergence of GANs

    이론적으로, 감별자와 생성자는 충분한 업데이트를 통해 서로에 대한 최적의 대응 상태에 이를 수 있습니다. 이 상태가 되면, 생성자는 실제 데이터 분포를 모방하는 데이터를 만들어내고, 감별자는 더 이상 가짜 데이터와 실제 데이터를 구별하지 못하게 됩니다.

    이 증명은 GAN이 어떤 조건에서 이론적으로는 잘 수렴할 수 있다는 것을 보여주고 있습니다. 실험 부분은 이러한 이론이 실제로 데이터를 사용하여 GAN을 훈련시킬 때 어떻게 적용되는지 보여주는 내용일 것입니다.

Designed by Tistory.