본문 바로가기
Personal Study/Model

[생성 신경망] 적대적 생성 신경망 (Generative Adversarial network, GAN) - 이론

by muns91 2024. 4. 16.
Generative Adversarial Network, GAN

 

 1. GAN의 정의

 적대적 생성 신경망(Generative Adverarial Network, GAN)은 인공지능 분야에서 사용되는 딥러닝 모델의 일종으로 두 개의 신경망이 서로 경쟁하면서 학습하는 구조를 가지고 있습니다. 이 두 신경망은 각각 생성자(Generative)판별자(Discriminator)로 불립니다. 생성자는 진짜와 구분이 어려운 가짜 데이터를 생성하고 판별자는 입력된 데이터가 진짜인지 가짜인지를 판별합니다. 위 과정을 통해 생성자는 점점 더 정교한 가짜 데이터를 만들어내며, 판별자는 더 정확하게 진위를 구분하게 됩니다.

 

출처 : Generative Adversarial Nets

 

2. 탄생 배경

 GAN은 2014년 Ian Goodfellow에 의해 처음 제안되었습니다. 당시 기계 학습 분야에서는 효과적인 데이터 생성 모델이 부족했으며, 기존의 생성 모델들은 한계가 있었습니다. 이에 따라 굿펠로우는 이러한 문제를 해결하기 위해 경쟁적인 학습 구조를 도입했고, 이것이 GAN의 기본 아이디어가 되었습니다. 

 

3. 목적

  GAN의 주된 목적은 고품질의 합성 데이터를 생성하는 것입니다. 이를 통해 데이터가 부족하거나 민감한 데이터를 다루는 분야에서 유용하게 활용될 수 있습니다. 예를 들어, 의료 이미지 분석, 예술 작품 생성, 게임 개발, 시뮬레이션 등에서 실제와 유사한 데이터를 생성하여 학습 데이터 셋을 보강하거나, 새로운 데이터를 생성 하는 데 사용됩니다. 

 

4. 설명

 GAN은 학습 과정에서 생성자와 판별자 사이의 미묘한 균현을 필요로 합니다. 생성자가 너무 빠르게 학습하면 판별자가 속아 넘어가기 쉽고, 판별자가 너무 강력하면 생성자가 효과적으로 학습하기 못할 수 있습니다. 이런 이유로 GAN의 학습은 매우 섬세한 파라미터 튜닝을 요구하며, 학습 과정에서 발생할 수 있는 '모드 붕괴' 같은 문제를 해결하기 위해 여러 연구가 수행되고 있습니다. 

 

* 모드 붕괴 : 생성자가 다양한 유형의 데이터를 생성하는 대신 매우 한정된 종류의 샘플을 반복해서 생성하는 상황

 

5. 활용

5. 1. 이미지 및 비디오 생성

 

DeepMind DVD-GAN: Impressive Step Toward Realistic Video Synthesis

The rapid development of AI models such as variational autoencoders (VAE) and generative adversarial networks (GAN) that can generate…

medium.com

 

 

Papers with Code - Face Generation

Face generation is the task of generating (or interpolating) new faces from an existing dataset. The state-of-the-art results for this task are located in the Image Generation parent. <span style="color:grey; opacity: 0.6">( Image credit: [Progressive Grow

paperswithcode.com

 

 

5. 2. 예술 및 디자인

 

Artificial intelligence system for fashion design image generation

Can fashion designers rely on artificial intelligence to generate new design of fashion garments?

boutiqueai.medium.com

 

 

GANGogh: Creating Art with GANs

Introduction:

towardsdatascience.com

 

 

5. 3. 자연어 처리

 

What is a Generative Adversarial Network (GAN)? | Definition from TechTarget

A GAN represents two different neural networks -- a generator and a discriminator. Discover the various types, examples and use cases of GANs.

www.techtarget.com

 

 


마무리

 여기까지 GAN에 대한 간단한 이론 설명 및 활용 사례에 대해서 살펴보았습니다. 이제는 어느 정도 맛을 보았으니, 실제 구현된 코드를 통해 GAN에 대한 실습을 수행해보도록 하겠습니다. 어떻게 보면 생성형 AI의 시작인 GAN을 공부해보면서 저의 분야에서 GAN을 어떻게 활용해야될지 잘 살펴보아야겠습니다. 그리고 추가적으로 GAN이 사용된 모델들도 찾아보면서 좋은 예시가 있으면 블로그에 올리도록 하겠습니다. 그럼 이번 글은 여기서 마무리 하도록 하겠습니다. 

 

참고

1. 논문 : https://arxiv.org/abs/1406.2661

2. 논문 : https://arxiv.org/abs/1511.06434

3. 모두의 인공 지능 : https://thebook.io/080244/

 

모두의 인공지능 with 파이썬

더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.

thebook.io

 

실습

1. GAN :

2024.04.17 - [Personal Study/Model] - [생성 신경망] GAN 모델 구현

 

[생성 신경망] GAN 모델 구현

GAN 실습 지난 시간에는 적대적 생성 신경망 (Generative Adversarial Network, GAN)에 대해 간단한 이론을 살펴보았습니다. 지난 글에서는 이미 이론을 살펴보았으니, 직접 모델을 구현해봐야겠지요? 아래

muns-da2.tistory.com

 

2. DCGAN :

2024.04.18 - [Personal Study/Model] - [생성 신경망] DCGAN 모델 구현

 

[생성 신경망] DCGAN 모델 구현

Deep Convolutional GAN (DCGAN) 실습 이번에는 지난 시간에 실습 했었던 GAN 모델의 업그레이 버전인 DCGAN 모델을 구현해보도록 하겠습니다. 이전에 GAN 모델은 DNN 모델을 적용했다면 DCGAN 모델은 이름 그

muns-da2.tistory.com