생성적 적대 신경망(GAN)은 2014년에 Ian Goodfellow와 동료들이 처음 소개한 강력한 머신러닝(ML) 프레임워크입니다. 생성적 AI 분야에 속하며, 주어진 학습 데이터 세트와 유사한 새로운 데이터를 생성하는 데 중점을 둡니다. GAN의 핵심 아이디어는 두 개의 신경망(NN)인 생성자(Generator)와 판별자(Discriminator)가 경쟁 게임에 참여하는 것입니다. 이 적대적인 프로세스를 통해 시스템은 이미지, 음악 또는 텍스트와 같은 매우 사실적인 합성 결과물을 생성합니다.
GANS 작동 방식
GAN 아키텍처는 동시에 학습되는 두 가지 주요 구성 요소로 이루어져 있습니다:
- 생성기: 이 네트워크는 무작위 노이즈(가우스 분포에서 샘플링된 난수 벡터)를 입력으로 받아 실제 데이터 분포를 모방하는 데이터로 변환하려고 시도합니다. 예를 들어, 훈련 데이터 세트의 이미지처럼 보이는 고양이의 합성 이미지를 생성할 수 있습니다. 실제 데이터와 구별할 수 없는 결과물을 생성하여 판별자를 효과적으로 속이는 것이 목표입니다.
- 판별자: 이 네트워크는 이진 분류기 역할을 합니다. 실제 데이터 세트에서 실제 데이터 샘플과 생성기에서 생성한 가짜 데이터 샘플을 모두 수신합니다. 이 네트워크의 임무는 각 입력 샘플이 진짜인지 가짜인지 판단하는 것입니다. 표준 지도 학습 기법을 통해 이를 학습하며, 실제 샘플과 생성된 샘플을 정확하게 분류하는 것을 목표로 합니다.
적대적 훈련 프로세스
GAN의 훈련은 생성자와 판별자가 함께 경쟁하고 개선하는 역동적인 과정입니다:
- 생성기는 합성 데이터 배치를 생성합니다.
- 판별기는 실제 데이터와 생성기의 합성 데이터가 모두 포함된 배치에 대해 학습하여 구분하는 방법을 학습합니다. 분류 정확도에 따라 가중치를 업데이트하기 위해 역전파가 사용됩니다.
- 그런 다음 판별기의 출력을 기반으로 생성기를 학습시킵니다. 판별기가 실제 데이터로 잘못 분류한 데이터를 생성하는 것이 목표입니다. 그라디언트는 (일시적으로 고정된) 판별기를 통해 다시 흐르면서 생성기의 가중치를 업데이트합니다.
이 주기가 계속되면 이상적으로는 생성기가 매우 사실적인 데이터를 생성하여 판별기가 샘플이 진짜인지 가짜인지 무작위로(정확도 50%) 추측할 수 있는 균형점에 도달하게 됩니다. 이 시점에서 생성기는 훈련 세트의 기본 데이터 분포를 대략적으로 추정하는 방법을 학습하게 됩니다.
주요 애플리케이션
GAN은 다양한 영역에서 상당한 발전을 가능하게 했습니다:
- 이미지 생성: 사람의 얼굴( NVIDIA Research의StyleGAN ), 동물 또는 존재하지 않는 사물과 같은 사실적인 이미지를 생성합니다. 이는 예술, 디자인, 엔터테인먼트 분야에 적용되지만 딥페이크와 관련된 윤리적 문제도 제기되고 있습니다.
- 합성 데이터 증강: 실제 데이터 세트를 보완하기 위해 사실적인 합성 데이터를 생성합니다. 이는 실제 데이터가 부족하거나 개인정보 보호 제약이 있을 수 있는 의료 이미지 분석과 같은 분야에서 특히 유용합니다. 예를 들어, GAN은 드문 상태를 보여주는 합성 X-레이 이미지를 생성하여 물체 감지나 분할과 같은 작업에 사용되는 진단 컴퓨터 비전(CV) 모델의 견고성을 향상시킬 수 있습니다. 이러한 증강은 다음과 같은 모델의 학습을 향상시킬 수 있습니다. Ultralytics YOLO11.
- 이미지 간 번역: 한 도메인에서 다른 도메인으로 이미지 변환(예: 스케치를 사진으로 변환하거나 풍경의 계절을 바꾸거나 신경 스타일 변환 수행).
- 슈퍼 레졸루션: 저화질 이미지의 해상도를 향상시킵니다.
- 텍스트-이미지 합성: 텍스트 설명을 기반으로 이미지를 생성합니다( 확산 모델과 같은 최신 아키텍처가 이를 능가하는 경우가 많지만).
GANS와 다른 모델 비교
GAN을 다른 유형의 모델과 구별하는 것이 중요합니다:
- 판별 모델: 대부분의 표준 분류 및 회귀 모델( 이미지 분류 또는 표준 객체 감지에 사용되는 모델 등)은 판별 모델입니다. 이러한 모델은 결정 경계를 학습하여 서로 다른 클래스를 구분하거나 입력된 특징을 기반으로 값을 예측합니다. 이와 대조적으로, GAN은 생성형 모델로서 데이터 자체의 기본 확률 분포를 학습하여 새로운 샘플을 생성합니다.
- 확산 모델: 확산 모델: 확산 모델은 최근 각광받고 있는 또 다른 강력한 생성 모델로, 이미지 생성에서 최첨단 결과를 얻을 수 있는 경우가 많습니다. 확산 모델은 데이터에 노이즈를 점진적으로 추가한 다음 이 과정을 역으로 학습하는 방식으로 작동합니다. 때때로 충실도가 높은 이미지를 생성하고 GAN보다 더 안정적인 학습을 제공하지만, 추론 과정에서 계산 집약도가 더 높을 수 있습니다.
도전과 발전
GAN을 교육하는 것은 다음과 같은 문제로 인해 매우 어려울 수 있습니다:
연구자들은 이러한 문제를 해결하기 위해 안정성 향상을 위한 Wasserstein GAN(WGAN), 특정 속성에 따라 데이터를 생성할 수 있는 조건부 GAN(cGAN)(예: 특정 숫자의 이미지 생성) 등 다양한 GAN 변형을 개발해 왔습니다. 다음과 같은 프레임워크 PyTorch 및 TensorFlow 와 같은 프레임워크는 GAN의 구현과 교육을 용이하게 하는 도구와 라이브러리를 제공합니다.