본문 바로가기
AI 서비스 구축 스터디/모델 조사

GAN

by 열정주니어 2023. 4. 3.
반응형

GAN

GAN은 Generative Adversarial Nets이라는 논문을 통해 나온 모델로 진짜와 동일해 보이는 이미지를 생성하는 모델이다.

GAN은 크게 3가지 Unconditional GAN, Conditional GAN, Super Resolution으로 분류된다.

초기 GAN의 아키텍처는 다음과 같이 Generator(생성자)와 Discriminator(판별자)로 구성되었다.

GAN은 Generator와 Discriminator로 이루어져 있어 동시에 두 개의 모델을 훈련하는 것이 특징이다. 여기서 z라고 하는 것은 랜덤 벡터 z를 의미하는 것으로 오른쪽 그림의 uniform distribution이나 normal distribution을 따른다고 한다.

 

이 랜덤 벡터 z를 Generator의 입력으로 넣어 Fake를 생성한 후  Fake와 실제 Real 이미지를 Discriminator의 입력으로 넣어 Fake 또는 Real을 출력 받는다.

 

GAN은 최종 출력인 Fake와 Real의 확률이 1/2에 수렴하여 진짜와 가짜를 구분할 수 없도록 학습하게 된다.

 

DCGAN

DCGAN의 아키텍처는 Generator(생성자)에 Transposed Convolutional Network를 사용하여 Up-Sampling하는데 사용하였다.

Trasnposed Convolutional Network의 경우 기존의 컨볼루션 네트워크처럼 줄어드는 것이 아닌 확대되는 것이라 할 수 있으며 최적의 성능을 내기위해 다음과 같이 5가지 트릭을 적용하였다.  

1.미분이 불가능한 Pooling Layer를 제거하고 미분 가능한 Convolution 레이어로 대체하였다.

2. BatchNormalization 레이어를 추가하였다.

3. fully-connected hidden layer를 삭제하였다.

4. 생성자 모델에 ReLU 함수를 적용하고 출력의 activation function은 Tanh로 설정하였다.

5. 마지막으로 판별자 모든 레이어에 LeakyReLU를 적용하여 유연성을 더하였다.

 

이와 같이 DCGAN을 통해 벡터 산술 연산이 가능하게 되었다.

DCGAN의 주요 contribution은 다음과 같다.

1.대부분의 상황에서 언제나 안정적으로 학습하는 Convolution GAN 구조를 제안하였다.

2.word2vec과 같은 벡터 산술 연산이 가능하여 Generator를 semantic 수준에서 데이터를 생성할 수 있다.

3.판별자가 학습한 필터들을 시각화하여 특정 필터들이 특정 물체를 학습했다는 것을 보였다.

4.학습된 판별자 모델이 다른 비지도 학습 알고리즘과 비교해서 뒤쳐지지 않는 분류 성능을 보였다.

5.GAN 연구의 시작점이 될 수 있게 만들어준 연구라고 볼 수 있다.

 

PGGAN & StyleGAN

PGGAN은 NVIDIA에서 진행한 연구로 핵심 아이디어는 4x4의 저해상도 이미지를 1024x1024 고해상도 이미지로 단계별(Progressive Growing)로 학습한다는 것이다.

기존에는 처음부터 고해상도 이미지를 학습하려다 보니 학습이 올바르게 되지 않았는데, 저해상도에서 보이는 Abstract을 우선적으로 학습 한 뒤 고해상도에서 보이는 Concrete(눈, 코, 입, 모공 등)를 학습하면서 품질이 향상되었다.

 

StyleGAN은 여기에 Style-based generator를 사용하는 구조이다. 이러한 PGGAN의 장점은 크게 3가지로 나뉜다.

1. 작은 이미지부터 점진적으로 학습하기 때문에 안정성 있다.

2. 처음부터 복잡한 질문을 하지 않기에 간단하다.

3. 저해상도에서 학습할 때 충분한 학습을 하게 되며 학습 시간이 짧다.

 

 

반응형

'AI 서비스 구축 스터디 > 모델 조사' 카테고리의 다른 글

YOLO  (0) 2023.04.04
BERT  (0) 2023.04.04
Whisper  (0) 2023.04.03
ChatGPT  (0) 2023.04.03
Transformer  (0) 2023.04.03