Skip to main content

이미지 생성

GAN Generative Adversarial Networks

  • 이미지 생성 기술
  • 2014년 Ian Goodfellow가 처음 제안
  • GAN의 기본 개념은 서로 경쟁하는 두 개의 신경망, 생성자와 구분자를 학습

생성자와 구분자

  • 생성자 (Generator)
    • 생성자는 무작위로 생성된 잡음(Noise) 또는 낮은 차원의 랜덤 벡터를 입력으로 받아, 합성된 이미지를 생성
    • 생성자의 목표는 판별자를 속이기 위해 가능한 한 실제 이미지와 유사한 이미지를 만드는 것
  • 구분자 (Discriminator)
    • 구분자는 이미지가 생성자로부터 생성된 것인지 아니면 실제 데이터셋에서 온 것인지를 판단
    • 구분자의 목표는 생성자가 만든 이미지를 가짜로, 실제 데이터셋의 이미지를 진짜로 정확하게 구별하는 것

GAN의 학습 과정

  • GAN의 학습 과정은 생성자와 구분자가 서로 경쟁하는 방식으로 진행
  • 생성자는 구분자를 속이는 능력을 향상
  • 구분자는 생성된 이미지와 실제 이미지를 더 정확하게 구별하는 능력을 향상
  • 미니맥스(minimax) 게임의 일종: 구분자의 최대 성능이 최소화되도록 생성자를 학습
  • 생성자가 실제와 구분할 수 없는 이미지를 생성하고, 구분자의 정확도가 50%까지 떨어지면 평형(equilibrium)에 도달
  • 실제로 평형에 도달하기는 어려우나 그렇지 못한 경우에도 실용적으로 쓸모 있음

GAN의 발전

  • 2014년 처음 제안 이후 빠르게 발전
  • Yann LeCun: "GAN은 지난 20년 동안 딥 러닝에서 가장 멋진 아이디어"
    • CNN 발명자, 뉴욕대 교수, 튜링상 수상자, Facebook의 수석 AI 과학자
  • 최근에는 이미지 생성에서 확산 모형이 좀 더 각광을 받고 있음

GAN의 활용: 이미지 생성

  • 고품질의 이미지를 생성하는 데 사용
  • 새로운 캐릭터 디자인, 가상의 풍경, 패션 아이템 등 다양한 분야에서 사용
  • https://generated.photos/faces

GAN의 활용: 이미지 변환

  • 사실적인 이미지의 생성
  • 이미지 대 이미지 번역
  • 새로운 디자인
  • 질병 진단의 데이터 증강

GAN의 활용: 텍스트로 이미지 생성

  • 텍스트를 바탕으로 사진과 같은 이미지를 생성
  • 저화질 이미지를 먼저 생성 후, 고화질 이미지로 생성

GAN의 활용: 기타

  • 영상 또는 이미지의 얼굴이나 사물을 다른 사람이나 사물로 변경
  • 데이터 증강 (Data Augmentation): 기존 데이터셋의 다양성을 높이기 위해 새로운 샘플을 생성
  • 이미지 복원 및 보정: 이미지에서 노이즈를 제거하거나, 누락된 부분을 복원하는 데 사용하여 품질을 높이거나 오래된 사진을 복원
  • 음성 합성, 자율 주행 자동차, 의료 이미징 등 다양한 분야에서 활용
  • 이미지 생성에 따른 윤리적, 사회적 이슈 제기

GAN의 평가

  • 사람에 의한 평가: 평가 방식, 평가자에 대한 피드백에 따라 결과가 달라짐
    • Goodfellow et al. (2016) Improved Techniques for Training GANs
  • Inception score
    • ImageNet 등에 사전 학습된 모형에 생성된 이미지를 입력
    • 다음 두 가지 특성을 요구:
      • 각 이미지는 여러 분류 중 특정의 확률이 높음 (실제와 비슷함)
      • 생성된 이미지들이 여러 분류에 고르게 분포될 것임 (다양함)
  • Fréchet Inception Distance
    • 사전 학습된 모형에 실제 이미지를 입력했을 때의 활성화 분포와 생성된 이미지를 입력했을 때의 활성화 분포를 프레셰 거리를 이용해 비교
  • 이외도 영역 특수적인 평가 방법들이 있음

GAN의 단점

  • 모드 붕괴(mode collapse)
    • 한 종류의 생성된 이미지만 실제 이미지와 구분이 어려울 정도로 유사해지면, 구분자는 이를 구분하지 못하게 됨 → 학습이 멈춤
    • 생성자는 비슷한 이미지만 생성하게 됨
  • 사실성(fidelity)을 위해 다양성(diversity)을 희생
    • GAN으로 생성된 이미지는 모두 비슷
    • FID, IS, Precision 등 지표는 다양성을 반영 못함
    • 사실성은 정밀도, 다양성은 재현도와 관련
  • 감소된 경사(diminished gradient): 생성자와 구분자의 학습 속도 불균형
    • 생성자의 성능이 더 빨리 올라가면, 생성자가 어떤 이미지를 생성해도 구분자가 구분을 못함
    • 반대의 경우, 생성자가 어떤 이미지를 생성해도 구분자가 구분함
    • 어느 경우에도 더 이상 학습이 이뤄지지 않게 됨
  • 학습의 불안정: 학습이 잘 되지 않거나 설정에 따라 학습 결과에 차이가 큼

확산 모형

  • 확산 모형(Diffusion Models): 이미지 생성과 같은 생성 모델링 문제에 대한 접근 방식 중 하나
  • 데이터의 노이즈 확산 과정을 역으로 추적하여 원본 데이터를 복원하는 방법을 사용
  • 장점:
    • 고품질의 이미지를 생성
    • 안정적인 학습 과정
  • 단점: 생성 과정이 상대적으로 느리고 많은 데이터가 필요

확산 diffusion

  • 확산 forward diffusion
    • 원본 데이터에 노이즈를 점차 추가하여 완전한 노이즈 상태로 만듦
    • 이 과정에서 원본 데이터의 정보가 점차 사라짐
    • 확산 과정은 일반적으로 확률론적인 방식으로 설계
    • 이 과정을 통해 원본 데이터와 노이즈가 혼합된 상태를 얻을 수 있음
  • 역확산 reverse diffusion
    • 생성 모형을 학습시켜, 완전한 노이즈 상태에서 원본 데이터를 복원하려고 시도
    • 노이즈를 점차 제거하여 원본 데이터에 가까운 이미지를 생성하는 것이 목표
    • 신경망을 사용하여 수행되며, 각 단계에서 노이즈를 제거하는 방법을 학습

Stable Diffusion

  • 오토 인코더의 일종인 VAE를 이용 이미지를 압축(Pixel Space → Latent Space)
    • 생성 과정에서는 랜덤한 값을 사용
  • 또 다른 오토인코더인 U-Net으로 역확산
  • CLIP을 이용해 역확산 과정에 방향성을 부여
  • 마지막으로 VAE를 이용해 이미지 형태로 복원(Latent Space → Pixel Space)
  • 공개 모델 https://stability.ai