ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Inception Score이란? Improved Techniques for Traning GANs 논문 리뷰
    논문 리뷰/Generative Model 2024. 8. 5. 17:02

    Inception Score에 대한 정리를 한 번은 하는게 좋을 것 같아 Inception Score(이하 IS)를 소개한 논문 "Improved Techniques for Training GANS"를 정리해보고자 한다. 이 논문은 How to train GAN? 이라는 포스팅에서 이미 간단히 다룬 적이 있으므로 다음 포스팅을 참고하면 된다. Inception Score에 대해서만 자세히 리뷰하고, 나머지 부분은 훑어보고자 한다. (그런데 Inception Score 설명 파트가 매우 짧아서 당황...!)

     

    이 논문이 나온 배경은 GAN이 학습이 어려운 생성형 모델이기 때문인데, GAN을 학습한다는 것은 파라미터가 연속이고 고차원인 non-convex game에서의 내쉬 균형을 찾는 것과 마찬가지로 많은 경우에서 균형을 찾는데 실패하고 있다. GAN학습의 어려움을 조금이나마 줄이고자 경험적인 non-convergence problem의 이해를 바탕으로 여러가지 GAN 학습에 용이한 테크닉을 이 논문에서는 소개한다. 

     

    Toward Convergent GAN Training

    1. Feature matching

    Feature matching은 생성자 $G$에게 새로운 목표를 지정하여 현재의 판별자 $D$에 과적합되는 것을 막는 방법으로, 새로운 목표는 판별자 $D$의 the expected value of intermediate layer와 일치하게끔 한다. (이 부분이 이해가 잘 안되었는데, 판별자의 중간 레이어의 output이 샘플과 동일하게끔 모델을 학습시킨다고 이해했다.) feature matching을 하는 이유는 판별자 $D$가 $G$의 샘플들을 판별하는 과정에서 실제 데이터와 생성된 데이터를 가장 잘 구분하는 특징을 배우게끔 학습되기 때문이다.

     

    $f(x)$ 판별자의 intermediate layer에서의 활성도(activations)를 측정한다고 할 때, 생성자 $G$의 새로운 목적 함수는 다음과 같다.

    다음과 같은 목적함수를 가지고 있을 때, $G$가 실제 데이터 분포를 완벽히 재현한다는 보장은 없지만, 실험적으로 더 나은 성능을 보여준다.

     

    2. Minibatch discrimination

    GAN에서 Mode Collapse는 자주 발생하는 실패의 한 형태로 판별자 $D$를 잘 속이는 샘플만을 생성하는 방향으로 생성자 $G$가 학습하는 것을 의미한다. Mode Collapse가 발생하는 이유는 (1) 판별자각 입력 예시를 독립적으로 처리하여 다양한 샘플을 만들도록 강제하는 것이 어렵고 (2) 생성자가 동일한 출력을 내놓으면 판별자의 gradient가 그 출력을 다른 방향으로 향하게끔 강제하지 못한다는 점이다. 

     

    Minibatch discrimination에서는 판별자가 독립적인 예시를 처리하는 것이 아닌, 여러 예시를 조합해서 판단하게끔 하여 Mode Collapse를 피하고자 한다. 또한 이 논문에서는 샘플들간의 유사성을 다음과 같이 측정하여 유사성이 낮은 샘플들이 생성될 수 있도록 강제한다.

     

    다음과 같이 $o(x_i)$와 $f(x_i)$를 함께 입력받은 판별자는 과거와 같이 데이터 샘플과 모델 샘플을 구분하는 역할을 하는 동시에, 다른 샘플들과의 유사성을 비교하여 더 우수한 샘플을 빠르게 생성할 수 있게 한다.

     

    3. Historical averaging

    Historical averaging에서는 비용함수에 파라미터의 과거 평균값과 현재 값을 비교하는 항을 추가해 생성자 또는 판별자가 자신의 과거 결정과 비교하여 새로운 결정을 내릴 수 있도록 도와준다. 여기서 과거 평균값은 online 방식으로 계속 업데이트 된다.

     

    4. One-sided label smoothing

    0 또는 1, 이 두가지 타겟만을 놓고 구분하는 판별자에게 좀 더 smooth value(예를 들어 1대신 0.9와 1 사이의 실수)를 전달하도록 하는 과거 연구에서와 같이 GAN을 학습할 때로 0 또는 1을 smooth value로 변환해 생각해 볼 수 있다.

     

    positive classification target를 $\alpha$로, negative classification target을 $\beta$로 대체하면 optimal discriminator $D$는 다음과 같이 주어진다.

     

    여기서 $p_{model}$이 상당히 크고, $p_{data}$가 거의 0에 가까운경우, $p_{model}$로부터 잘못된 샘플이 추출되더라도 아무런 signal을 줄 수 없다. 따라서 우리는 positive label에 대해서만 label smoothing을 진행하고, negative labels set은 0으로 둔다. 즉, 실제 데이터에 대해서만 label smoothing을 진행하고 생성된 데이터에 대해서는 label smoothing을 진행하지 않는다.

     

    5. Virtual batch normalization

    batch normalization(BN)이 DCGAN에서 신경망의 성능을 크게 개선하였지만, 입력 $x$에 대한 출력이 같은 미니배치에 있는 다른 여러 입력 $x'$에 크게 의존한다는 단점이 있다. 이 논문에서는 이러한 문제를 피하기 위해 Virtual batch normalization(VBN)을 제시한다. VBN에서는 reference batch를 훈련이 시작될 때 고정(훈련 중 변경 X)하여 이 배치의 통계 데이터를 기반으로 각 샘플을 정규화한다. VBN에서는 두 개의 미니배치에 대한 forward propagation을 실행해야 하기 때문에, 계산비용이 높아 생성자에만 사용한다.

     

    Assessment of image quality

    GAN은 명확한 목적 함수가 없어 서로 다른 모델의 성능을 비교하는 것이 어렵다. 다음은 이 논문에서 GAN을 평가하는데 필요한 여러 평가지표들이다.

    1. Human annotators

    가장 먼저 생각해볼 수 있는건 사람이 직접 GAN이 생성한 이미지 등을 평가하는 것이다. 하지만 사람이 직접 평가한다는 것은 평가자에 따라 평가 결과가 크게 달라지기 때문에 평가 기준을 유지하는데 어려움이 있다.

     

    2. Inception Score

    Inception Score는 사람의 판단과 상당히 유사한 결과를 보이는 GAN 평가 지표로 (1) 좋은 퀄리티의 이미지를 생성하는지 (2) 다양한 이미지를 생성하는지를 아래와 같은 방법으로 측정한다.

     

    Semi-supervised learning

    data point $x$를 K개의 클래스 중 하나로 분류하는 classifier를 생각해보자. softmax 함수를 이용해 다음과 같이 나타낼 수 있다.

     

    여기서 우리는 GAN의 생성자 $G$가 만든 샘플을 추가하고, 이를 K+1번째 클래스로 부여하여 학습할 수 있다. 그런 다음 $p_{model}(y = K+1 | x)$을 $x$가 가짜일 확률로 제공하면 이는 기존 GAN의 $1-D(x)$에 해당한다. 이제는 레이블이 없는 데이터 역시 $\log_{p_{model}}(y \in 1, ..., K|x)$를 최대화하여 학습할 수 있다. 데이터 세트의 절반이 실제, 절반이 생성된 데이터라고 가정하면 손실함수는 다음과 같다.

     

    위 식에서 $D(x) = 1 - p_{model}(y = K+1|x)$임을 이용하면 다음과 같이 식을 변경할 수 있다.

     

    댓글

Designed by Tistory.