생성적 적대 신경망 (Generative Adversarial Network)

컴퓨터과학·AI
한 줄 정의: 가짜 데이터를 만드는 생성자와 진짜·가짜를 구별하는 판별자가 서로 경쟁하며 학습해, 실제와 매우 흡사한 데이터를 만들어내는 신경망 구조입니다.

쉽게 풀면

위조지폐범과 위조지폐를 감별하는 감별사가 있다고 상상해 봅시다. 위조범(생성자)은 감별사를 속일 수 있는 더 정교한 가짜 지폐를 만들려고 애쓰고, 감별사(판별자)는 그 가짜를 더 잘 구별해내려고 애씁니다. 둘이 서로 경쟁하며 실력을 키우다 보면, 위조범은 결국 진짜와 거의 구별되지 않는 지폐를 만들어내게 됩니다. GAN(생성적 적대 신경망)은 바로 이 구도를 신경망 두 개로 구현한 것입니다. 생성자는 그럴듯한 가짜 이미지나 데이터를 만들고, 판별자는 그것이 진짜인지 가짜인지 판정하며, 이 둘을 함께 학습시켜 매우 사실적인 데이터를 생성해냅니다.

왜 중요한가

GAN은 라벨이 달린 실제 데이터를 대량으로 모으기 어려운 분야에서, 학습에 필요한 데이터를 인공적으로 만들어내는 대표적인 방법으로 자리 잡았습니다. 의료 영상처럼 희귀하거나 민감한 데이터를 다루는 연구, 얼굴이나 사물을 사실적으로 그려내는 이미지 생성 연구, 저해상도 이미지를 고해상도로 복원하는 연구 등 폭넓은 분야에서 GAN의 적대적 학습 아이디어가 응용됩니다. 또한 생성자와 판별자가 경쟁하며 서로를 발전시킨다는 구조 자체가, 이후 다양한 생성모형 연구의 이론적 출발점이 되었습니다.

논문에서는 이렇게 쓰입니다

"희귀 질환 데이터의 부족을 보완하기 위해 GAN을 이용해 실제 환자 영상과 유사한 합성 의료 영상을 생성하였다."

이 문장은 "실제 데이터가 적은 문제를 해결하려고, GAN의 생성자가 진짜처럼 보이는 새로운 데이터를 인공적으로 만들어냈다"는 뜻입니다.

"저해상도 위성영상을 고해상도로 복원하기 위해 초해상도(super-resolution) GAN 구조를 적용하였다."

원격탐사 분야에서는 GAN을 이용해 화질이 낮은 이미지를 세밀하게 복원함으로써, 관측 장비의 물리적 한계를 소프트웨어적으로 보완하는 데 활용합니다.

"실제 얼굴 이미지와 구별하기 어려운 합성 얼굴을 생성한 뒤, 이를 얼굴 인식 모델의 강건성 평가에 활용하였다."

컴퓨터비전 분야에서는 GAN이 만든 정교한 가짜 이미지를 오히려 다른 인식 모델이 이를 얼마나 잘 구별하는지 시험하는 용도로도 사용합니다.

조금 더 깊게 보면

GAN의 학습은 생성자가 판별자를 최대한 속이려 하고 판별자는 이를 최대한 잘 구별하려 하는 미니맥스(minimax) 게임으로 정식화되며, 이 과정에서 두 신경망의 손실함수가 서로 반대 방향으로 움직입니다. 실제 학습에서는 이 균형이 잘 잡히지 않아 학습이 불안정해지거나 특정 패턴만 반복 생성하는 모드 붕괴가 자주 발생하기 때문에, 이를 완화하기 위한 다양한 변형 구조(조건부 GAN, Wasserstein GAN 등)가 후속 연구로 제안되어 왔습니다.

주의할 점

GAN은 생성자와 판별자의 균형이 깨지면 학습이 불안정해지거나, 생성자가 몇 가지 비슷한 패턴만 반복해서 만들어내는 "모드 붕괴" 문제를 겪기 쉽습니다. 단순히 기존 데이터를 변형·복제하는 데이터증강과 달리, GAN은 아예 존재하지 않던 새로운 데이터를 처음부터 생성한다는 점에서 차이가 있습니다.

관련 용어