GAN(생성적 적대 신경망)
서로 대립하는 두 시스템의 경쟁을 통해 학습하는 방법론
생성자와 판별자 간의 경쟁적인 학습을 통해 생성자는 실제 데이터와 유사한 데이터를 생성하도록 개선된다
-
GAN은 원 데이터가 가지고 있는 확률 분포를 추정하도록 하고, 인공신경망이 그 분포를 만들어내는 것
-
GAN이 하고자 하는 것은 실제 이 데이터의 분포를 잘 근사하는 모델을 만드는 것
-
생성자(generator) → 확률 분포를 이용
-
판별자(discriminator) → 확률적인 판별 기준을 이용
- 일반적인 판별자의 손실 함수 : log(D(x)) - log(1 - D(G(z)))
- 첫 번째 항은 실제 데이터의 판별자 출력인 D(x)가 1에 가까워지도록 유도
- 두 번째 항은 생성된 가짜 데이터의 판별자 출력인 D(G(z))가 0에 가까워지도록 유도
- 이 손실 함수를 최소화 하도록 학습
(경쟁적인 학습은 확률적인 개념과 판별 기준을 활용하여 생성자와 판별자를 동시에 학습하고 평가하는 과정에서 이루어짐)
GAN의 최적화 과정
- 초기화: 생성자와 판별자의 가중치를 무작위로 초기화
- 판별자 훈련:
- 실제 데이터: 실제 데이터를 판별자에 입력하여 실제 데이터를 진짜로 판별하도록 학습. 이때, 판별자의 가중치를 업데이트
- 가짜 데이터: 생성자로부터 생성된 가짜 데이터를 판별자에 입력하여 가짜 데이터를 가짜로 판별하도록 학습. 이때, 판별자의 가중치를 업데이트.
- 생성자 훈련:
- 가짜 데이터: 생성자로부터 생성된 가짜 데이터를 판별자에 입력하여 가짜 데이터를 진짜로 판별하도록 생성자를 학습. 이때, 생성자의 가중치를 업데이트.
- 주의: 생성자의 가중치만 업데이트하고, 판별자의 가중치는 고정하여 생성자가 더 좋은 가짜 데이터를 생성하도록 유도.
- 2단계와 3단계를 반복적으로 실행하여 생성자와 판별자를 번갈아가며 훈련합니다. 이러한 과정은 학습률과 배치 크기 등의 하이퍼파라미터에 따라 여러 번 반복될 수 있습니다.
- 최적화:
- 생성자와 판별자의 손실 함수를 최소화하기 위해 경사하강법 또는 다른 최적화 알고리즘을 사용하여 가중치를 업데이트.
GAN의 이용
- 이미지 생성과 복원
- MRI data로 CT사진을 도출
- 논문 : **GAN for synthesizing CT from T2-weighted MRI data towards MR-guided radiation treatment(A Ranjan 저술)**
- 딥페이크
- 신약 개발
- 인실리코 메디슨은 320만 개의 유전자 발현 데이터와 650만 건의 혈액 테스트 결과 등 자사가 보유한 데이터를 바탕으로 신약에 활용될 새로운 화합물을 개발