TIL_220923 AutoEncoder

Alice1304·2022년 9월 23일

AIB SUMMARY

목록 보기
5/12

핵심단어

GAN, Generator, Discriminator, CycleGAN,

학습목표

  • GAN의 학습 방식과 생성자(Generator)와 판별자(Discriminator)에 대해 이해하기
  • CycleGAN 이 동작하는 방식에 이해하기

GAN

GAN의 뜻

  • Generative Adversarial Networks, 생성적 적대 신경망
  • 실제와 유사한 데이터를 생성하는 모델

위조지폐 예시로 GAN 이해하기

생성자(Generator) : 위조지폐범 역할, 실제와 동일한 데이터를 만들기 위해 노력
판별자(Discriminator) : 탐정 역할, 생성된 데이터가 진짜인지 아닌지 판단

코드로 이해하기

코드는 여기~

CycleGAN

  • CycleGAN은 DCGAN의 구조를 변경하여 만든 새로운 구조
  • CycleGAN을 통해 특정 이미지 도메인의 특성을 다른 이미지에 적용하는 작업 가능

CycleGAN 의 장점

  • 이전의 모델은 Train 데이터셋을 구성할 때 레이블에 해당하는 데이터를 무조건 1:1로 짝지어 줘야했음 (흑백 1000장 - 컬러 1000장)
  • CycleGAN은 이와 다르게 서로 변환하고 싶은 두 스타일의 이미지를 따로 구하더라도 좋은 성능을 보임
  • 학습을 위한 데이터셋 마련이 훨씬 쉬워지고, 그에 따라 모델의 성능이나 유용성 역시 좋아지게 됨

CycleGAN 의 원리

  • 생성자를 2개 준비
  • 각각의 생성자는 A→B, B→A 로 이미지를 변경
  • 판별자 역시 2개를 준비
  • 각각의 판별자는 A, B 에 대해 Real/Fake 를 판단하게 됨

사진 윗부분

  • A 이미지를 입력하여 A→B 생성자를 통해 B 이미지를 생성한 후 B 판별자를 통해 판별
  • 생성된 B 이미지를 B→A 생성자를 통해 다시 A 인풋과 같은 형태로 생성할 수 있도록 함

사진 아랫부분

  • B 이미지를 입력하여 B→A 생성자를 통해 A 이미지를 생성한 후 A 판별자를 통해 판별
  • 생성된 B 이미지를 A→B 생성자를 통해 다시 A 인풋과 같은 형태로 생성할 수 있도록 함

cycle 을 거치는 이유?

  • CycleGAN은 비슷한 이미지에 대해 1:1 매칭을 시켜 이미지를 학습하는 것이 아님
  • A→B 혹은 B→A, 즉 이미지를 변환하면서 Input 정보가 유실되어 원본 이미지의 특성을 잃어버리게 될 수 있음
  • 원본 데이터로 돌아갈 수 있을 정도로만 변환을 진행하기 위해서 A→B→A, B→A→B 로 돌아가는 Cycle 구조를 가지게 되었음
  • 이 때문에 CycleGAN 이라는 명칭이 붙었다

학습후기

오늘도 겨우 겨우 3시에 개념 머리에 넣기 성공!
코드는 한번 더 보긴 해야겠다! 아쟈쟈~

profile
기록기록

0개의 댓글