GAN : Generative Adversarial Networks¶
- 컴퓨터는 존재하지 않는 그럴싸한 이미지를 어떻게 만들어낼 수 있는 것인가?
1.2. 이미지 데이터에 대한 확률분포¶
- 이미지 데이터는 다차원 특징 공간의 한 점으로 표현 : 이미지의 분포를 근사하는 모델을 학습 가능
- 이미지에서는 다양한 특징들이 각각의 확률 변수가 되는 분포가 도리 수 있음 : 다변수 확률분포(multivariate probability distribution)
1.3. 생성모델(Generative Models)¶
- 실존하지 않지만 있을 법한 이미지를 생성할 수 있는 모델
- 각각의 클래스에 대한 분포를 학습하는 형태의 모델
새로운 데이터 인스턴스를 형성 가능
생성모델의 목표 : 이미지 데이터의 분포를 근사하는 모델G를 만드는 것 (모델 G가 잘 동작한다는 것은 원이미지의 분포를 잘 모델링할 수 있다는 것을 의미)
2. Generative Adversarial Networks(GAN)¶
- 생성자(generator)와 판별자(jdiscriminator) 두 개의 네트워크를 활용한 생성 모델
- 목적 함수(objective function)를 통해 생성자는 이미지 분포를 학습할 수 있음
- 모든 데이터를 하나씩 확인하여 식에 대입한 뒤 평균 계산하여 기대값 산출
2.1. GAN의 수렴 과정¶
- 목표 : 생성한 데이터가 원본 데이터를 잘 따라갈 수 있도록 유도하는 것
- 생성 모델의 분포가 원본 데이터의 분포를 따라가도록 만들어야 한다.
- 원본 데이터에 약간의 변형을 가하여 데이터를 출력하여 가짜 이미지를 생성
3. Conditional GAN (cGAN)¶
- 데이터의 mode를 제어할 수 있도록 condition 정보를 함께 입력하는 모델
- 입력한 condition에 따라 생성되는 객체가 달라진다.
4. Image-to-Image Translation: Pix2Pix¶
- 학습 과정에서 이미지 x 자체를 조건으로 입력받는 cGAN의 한 유형
- GAN의 성능을 향상시키기 위하여 L1손실(loss)함수를 사용.
- Pix2Pix는 서로 다른 두 도메인 X, Y의 데이터를 한 쌍으로 묶어서 학습을 진행해야 한다는 단점이 존재 : 손그림에 해당하는 사진데이터가 존재해야 함- CycleGAN을 이용하여 해결 가능
5. Image-to-Image Translation CycleGAN¶
- G(x)가 다시 원본 이미지 x로 재구성(recontruct)될 수 있는 형태로 만들어지도록 한다.
- 이를 통해 원본 이미지의 content는 보존하고, 도메인과 관련된 특징을 바꿀 수 있음.
- 한 쌍으로 묶이지 않은 데이터셋을 사용하기 위하여 사이클(cycle) 손실을 이용
'전문지식 함양 > TIL' 카테고리의 다른 글
[프로그래머스 겨울방학 인공지능 과정] python 풍경 이미지분류 알고리즘3(完) (0) | 2022.02.08 |
---|---|
[프로그래머스 겨울방학 인공지능 과정] GAN 이론 기초2 : Image-to-Image Translation with Conditional Adversarial Networks (0) | 2022.02.08 |
[프로그래머스 겨울방학 인공지능 과정] python 풍경 이미지분류 알고리즘의 구현2 (0) | 2022.01.27 |
[프로그래머스 겨울방학 인공지능 과정] python 풍경 이미지분류 알고리즘의 구현1 (0) | 2022.01.26 |
[프로그래머스 겨울방학 인공지능 과정] pytorch 예제 살펴보기1 (0) | 2022.01.25 |