1. Chapter 10 - Condtional GAN Chapter 10에서는 앞에서 설계한 DCGAN등에서 발생하는 다양성 없이 이미지를 생성하는 Mode Collapse를 해결하기 위해 GAN이 생성하는 이미지를 단일한 클래스로 고정한 채 다양한 이미지를 생성할 수 있도록 Conditional Input을 넣어주는 CGAN (Conditional GAN)을 설계한다. 예를 들어 GAN에 숫자 3을 표현하는 다양한 이미지를 생성하라고 요청할 수 있다.또는 훈련 데이터에 감정을 나타내는 클래스가 있고 얼굴 이미지로 훈련을 하고 있다면행복한 표정의 얼굴만 만들어달라고 요청할 수도 있다. 1.1) Conditional GAN 구조 Generator 훈련된 GAN Generator가 주어진 ..
1. Chapter 9 - Convolutional GAN Chapter 9에서는 Chapter 8까지 만들어온 CelebA GAN을 기반으로 아래의 2가지 문제를 중심적으로 해결하는 모델을 만들 것이다. 이미지가 약간 불명확하게 보인다. 부드럽게 연결되어야 할 공간들이 고대비 pixel들로 채워져 있다. FC Layer는 꽤나 많은 메모리를 차지한다. 어느정도 큰 이미지를 대상으로 훈련한다면 GPU의 한계를 넘어서 훈련이 어려울 수 있다. 많은 소비자용 GPU는 구글 코랩이 제공하는 장비인 T4 or P100보다 적은 메모리를 가지고 있다. 1.1) Memory Usage 새로운 Convolutional GAN 구조를 짜기 전에, 앞서 만든 CelebA GAN이 Memory를 얼마나 소비하는지 확인해보..
1. Chapter 8 - 얼굴 이미지 Chapter 8에서는 GAN을 훈련하여 사람의 얼굴을 생성하는 Task를 수행한다. Chapter 7에서 수행한 MNIST(사람의 손글씨) 단색 이미지를 생성하는 것보다 더 어려운 Task인 이유는 다음과 같다: Full-Color Image (Channel 개수 = 3)를 훈련해야 하고, 생성해야 한다. 사진의 훈련 데이터셋을 이용해 조금 더 다양하고 그럴듯한 결과를 생성해야 한다. 1.1) Color Image Image Data Gray Scale (흑백 사진): $H \times W \times 1$ Channel이 1개만 존재 Channel이 없다고 생각하면 안됨: $H \times W$ 가 아니라 $H \times W \times 1$로 Channel까..
1. Chpater 7 - 손으로 쓴 숫자 훈련 GAN으로 MNIST Dataset을 Real Training Dataset으로 사용하여 Generator가 동일한 크기의 이미지를 만들도록 한다. 훈련이 진행될수록 Generator의 Image가 점차 Real Image와 같아지면서 Discriminator를 속일 수 있을 정도까지 발전하게 해야 한다. 이제 앞에서 사용했던 Library들을 import 해보자. import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import Dataset import numpy as np import pandas as pd import random import matpl..
1. Chapter 5 - GAN 개념 1.1) 이미지 생성하기 Backquery(역절의) 일반적인 Classifier를 생각해보자. Output Layer의 Activation Function으로 Softmax Activation을 사용하는 Multi-Class Classification Task를 수행한다. 예를 들어 MNIST 분류기는 784(28 * 28)개의 값을 Input으로 받아 10개의 Output으로 변환하기에, 처음보다 정보량이 감소한다. 만약 네트워크를 반대로 뒤집으면 이는 정보량을 감소시키는 행위가 아니라, 조금 더 사이즈가 큰 데이터(28 * 28)로 변환하는 것이다. 즉, 레이블을 주면 Neural Network를 통해 그에 해당하는 이미지를 생성해주는 것이다. 하나의 숫자(C..