Generative Adversarial Networks

GAN(생성적 적대 신경망)은 머신 러닝 분야에서 학문적으로 매우 중요한 의미를 지닌다. 2014년 Ian Goodfellow와 그의 동료들에 의해 소개된 이래로 많은 연구자들의 관심을 받았고, 다양한 세부 분야로 퍼져 발전 적용되는 주요 기술이 되었다. GAN은 주어진 학습 Dataset과 매우 유사한 새로운 데이터를 생성하기 위한 강력한 프레임워크를 제공하는 생성 모델이다. GAN을 통해서 사실적이고 다양한 샘플을 생성할 수 있고, 이는 이미지 합성, 텍스트 생성, 심지어 신약 개발 등 다양한 적용 분야에서 활용된다.

판별자, 생성자

GAN에서 두 가지 주요 구성 요소는 판별자(Discriminator)와 생성자(Generator)이다. 판별자와 생성자는 신경망이며, 서로 경쟁 관계에 있다. 판별자는 실제 데이터와 생성된 데이터를 구분하는 이진 분류기이다. 그리고 생성자는 판별자를 속일 수 있는 합성 데이터를 생성하는 역할을 한다. 판별자는 실제 데이터 샘플과 생성자에서 생성된 샘플을 학습하여 정확하게 분류하는 것을 목표로 한다. 동시에 생성자는 실제 데이터와 구별할 수 없는 샘플을 생성하도록 훈련받는다. 이러한 판별자와 생성자 간의 적대적 관계가 GAN의 학습 과정을 주도한다.

손실 함수

생성자와 판별자 두 모델은 각자의 손실 함수를 가지고 있다.

$$ \min_G\max_DV(D,G) = E_{x~p_{data}(x)}[logD(x)] + E_{x~p_{z}(x)}[log(1-D(G(z)))] $$

판별자 손실은 판별자가 실제 샘플과 생성된 샘플을 얼마나 잘 구별할 수 있는지를 측정한다. 일반적으로 이진 교차 엔트로피 손실로, 이 손실 함수로 학습하여 판별자가 데이터를 정확하게 분류하도록 한다. 반면 생성자 손실 함수는 생성자가 판별자를 얼마나 잘 속일 수 있는지를 정량화한다. 생성자는 판별자가 실제 데이터와 구분할 수 없는 샘플을 생성하기 때문에 이 손실을 최소화하는 것을 목표로 한다.

각각의 손실 함수에 따라 판별자와 생성자의 가중치를 반복적으로 업데이트함으로써 GAN은 생성자가 실제 샘플을 생성하는 능력을 향상시키고 판별자는 이를 더 잘 구별할 수 있는 동적 균형을 이룬다.

활용 분야

GAN은 다양한 영역에서 활용되고 있으며, 그 다양성과 영향력을 입증하고 있다.

이미지 합성

GAN은 얼굴, 풍경, 사물과 같은 사실적인 이미지를 생성하는 데 사용되어 왔다. 실제 이미지의 Dataset로 생성기를 학습시킴으로써 GAN은 유사한 특성과 시각적 일관성을 나타내는 새로운 이미지를 생성할 수 있다.

데이터 증강

GAN은 새로운 샘플을 생성하여 훈련 데이터를 보강할 수 있다. 이는 사용 가능한 Dataset가 제한되어 있을 때 특히 유용하며, GAN은 모델의 일반화 및 성능을 향상시킬 수 있는 추가 데이터 포인트를 생성할 수 있다.

Style Transfer

GAN은 한 이미지의 스타일을 다른 이미지로 전송하는 데 사용할 수 있다. 학습된 GAN을 사용하면 한 이미지의 콘텐츠는 유지하면서 다른 이미지의 예술적 스타일을 채택한 이미지를 생성할 수 있다.

텍스트-이미지 합성

GAN은 텍스트 입력에 따라 생성기를 조절하여 주어진 텍스트 입력에 해당하는 시각적 표현을 생성할 수 있다.