Insight

GAN 이란 무엇인가? - 개념, 이해, 활용사례, 훈련, 최신 트렌드

실제와 같은 가짜 이미지 생성모델, GAN에 대해서

2023
.
06
.
02
GAN 이란 무엇인가? - 개념, 이해, 활용사례, 훈련, 최신 트렌드

GAN 이란?

GAN은 Generative Adversarial Networks 의 줄임말로, Generative Model의 한 종류입니다. 우리말로는 적대적 생성 신경망이라고 합니다.

GAN은 실제에 가까운 이미지나 사람이 쓴 것과 같은 글 등 여러 가짜 데이터들을 생성하는 모델입니다. “적대적 생성 신경망”이라는 이름에서 알 수 있듯 GAN은 서로 다른 두 개의 네트워크를 적대적으로(adversarial) 학습시키며 실제 데이터와 비슷한 데이터를 생성(generative)해내는 모델이며 이렇게 생성된 데이터에 정해진 label값이 없기 때문에 Un-supervised learning 기반 생성모델로 분류됩니다.

GAN은 구글 브레인에서 머신러닝을 연구했던 Ian Goodfellow에 의해 2014년 처음으로 신경정보처리시스템학회(NIPS)에서 제안되었고 이후 이미지 생성, 영상 생성, 텍스트 생성 등에 다양하게 응용되고 있습니다. 인공지능이 실제 예제를 학습하고 공통점을 추론하여 매우 정교한 위조품을 만들어내는 것이 목표입니다.

👉 Generative AI의 원리, 예시, 적용사례가 궁금하다면?

GAN 개념과 구조

Generative Adversarial Networks, GAN은 확률 분포를 학습하며, 실제처럼 보이는 데이터를 생성하는 Generator과 데이터를 구별하는 판별모델 discriminator로 구성되어 있습니다. 딥러닝의 과정에서 생성 모델은 끊임없이 거짓 예제를 만들어내고, 상대는 실제 데이터와 만들어진 가짜 데이터를 구별하는 것으로 학습합니다. 이와 같이 discriminator를 속일 수 있도록 Generator를 훈련하는 방식을 대립적 프로세스라고 합니다.

이 2가지 모델을 포함한 GAN의 궁극적인 목적은 “실제 데이터의 분포”에 가까운 데이터를 생성하는 것이며, 따라서 판별기가 진짜인지 가짜인지를 한 쪽으로 판단하지 못하는 경계(가짜와 진짜를 0과 1로 보았을 때 0.5의 값)에서 가짜 샘플과 실제 샘플을 구별할 수 없는 최적 솔루션으로 간주하게 됩니다. 제안자 Ian Goodfellow은 논문에서 다음과 같이 ‘경찰과 위조지폐범’을 예시로 들어 GAN 모델의 개념을 설명하고 있습니다.

GAN Concept
경찰(왼쪽)과 도둑(오른쪽) 이미지

생성 모델은 진짜 지폐와 비슷한 가짜 지폐를 만들어 경찰을 속이려 하는 위조지폐범과 같고, 반대로 판별모델은 위조지폐범이 만들어낸 가짜 지폐를 탐지하려는 경찰과 유사합니다. 이러한 경쟁이 계속됨에 따라 위조지폐범은 경찰을 속이지 못한 데이터를, 경찰은 위조지폐범에게 속은 데이터를 각각 입력받아 적대적으로 학습하게 되는 것입니다. 이 게임에서의 경쟁은 위조지폐가 진짜 지폐와 구별되지 않을 때까지 즉, 주어진 표본이 실제 표본이 될 확률이 0.5에 가까운 값을 가질 때까지 계속됩니다. 가짜로 확신하는 경우 판별기의 확률값이 0, 실제로 확신하는 경우 판별기의 확률값이 1을 나타내게 되며, 판별기의 확률값이 0.5라는 것은 가짜인지 진짜인지 판단하기 어려운 것을 의미하게 되는 것입니다.

이렇게 서로 딥러닝 과정에서 경쟁하면서 학습함으로써, 생성모델은 점점 더 실제와 같은 데이터를 생성하게 되며, 그 반대는 더 실제와 가짜 데이터를 잘 구별할 수 있게 됩니다. 최종적으로 Generator가 실제 데이터와 비슷한 것을 생성하는 Generative Model이 되는 것을 목표로 합니다.

어느 순간부터 Generator는 가장 완벽한 가짜 데이터를 만들 수 있게 됩니다. 그러면 discriminator는 결국 해당 데이터의 참과 거짓을 구분하지 못하게 됩니다. 확률이 50%에 수렴하면 궁극적으로 학습이 종료되는 메커니즘입니다.

GAN GAN algorithm guide (concepts)

GAN 모델을 학습시킬 때는 discriminator를 먼저 학습시키고 이후 Generator를 학습시킵니다. 그렇다고 해서 Discriminator를 계속 건드리는 것은 아니고, 판별모델의 에러를 가지고 Generator의 Weight를 업데이트 시키는 것입니다. 따라서 weight가 업데이트된 Generator는 discriminator가 진짜라고 생각할 수 있는 fake data를 생성할 수 있게 됩니다.

GAN

GAN Architecture

GAN의 발명으로, Generative Model 분야는 현실적인 이미지를 생성하기 위한 구체적인 방향성을 잡게 되었습니다. 이후 Computer vision 분야에서 유망한 성과를 거두기 시작했죠. 최근에는 이미지 뿐만 아니라 오디오와 비디오에서까지 유의미한 변화를 보여주고 있습니다.

GAN을 활용한 사례를 알아보기 전에, 대중적으로 사용하는 GAN의 아키텍처에 대해 소개합니다.

GAN model tree

CycleGAN

CycleGAN은 다양한 스타일의 이미지 간 변환을 학습하는 데 주로 사용됩니다. 예를 들어 예술적인 이미지를 현실적인 이미지로 변환하거나, 말을 얼룩말로 변환하는 것이죠.

StyleGAN

StyleGAN은 인간의 얼굴에 관한 특징을 외워서 현실에 존재하지 않는 새로운 인간의 얼굴 이미지를 생성할 수 있습니다. 이 아키텍처는 2,620만 개의 매개 변수가 있습니다. 이 모델의 제 성능을 뽑기 위해서는 이처럼 많은 학습 데이터가 필요합니다.

여기에서 StyleGAN으로 제작된 사람 얼굴 이미지를 확인할 수 있습니다.

Text2image

이 아키텍처에서는 텍스트의 설명을 임베딩으로 변환한 뒤, 노이즈 벡터와 연결된 다음 생성기에 입력하는 방식으로 이미지를 생성합니다. 텍스트 설명을 기반으로 비즈니스에 적합한 이미지를 생성할 수 있습니다.

그 외에

  • PixelRNN: 자동 회귀 생성 모델. 이미지의 이산 확률 분포를 모델링하고 2개의 공간 차원에서 이미지의 픽셀을 예측할 수 있습니다.
  • DiscoGAN: 두 개의 서로 다른 도메인을 갖고 있지만 쌍을 이루지 않은 이미지가 있을 때, 머신러닝은 이러한 관계를 잘 파악하지 못했습니다. 그러나 DiscoGAN은 두 개의 다른 도메인 관계를 학습하는 데에 유망한 결과를 보여주었습니다.
  • IsGAN: 판별모델에 최소 제곱 손실 함수를 사용하여 고품질 이미지를 생성할 수 있습니다.

보다 많은 GAN의 유용한 아키텍처는 이 글에서 확인하실 수 있습니다.

GAN 활용 사례 (기술동향, 트렌드)

GAN_DragGAN_GAN Trend, use cases
출처: DragGAN 소개 영상

Drag Your GAN

콘텐츠에 이미지를 사용하려고 했는데, 자세나 표현이 조금 아쉬운 경우가 있으셨을 겁니다. 혹은 제품 디자인을 약간만 변경했을 때 어떤 결과가 나오는지 알고 싶을 때가 있습니다. Drag Your GAN은 이미지의 모든 포인트를 선택할 수 있는 모델입니다.

Drag Your GAN은 두 가지 요소로 구성되어 있습니다.

  • 핸들 지점이 목표 위치로 이동하도록 하는 감독
  • 차별적 요소를 활용하고 새로운 포인트를 추적하는 접근법

Drag Your GAN을 활용하면 누구나 이미지의 위치를 정확하게 제어하면서, 이미지를 변형할 수 있습니다. 픽셀 이동에 따라 다양한 포즈, 모양, 표현 및 레이아웃을 조작할 수 있습니다.

데이터셋 구축에서 GAN이 중요한 이유

GAN은 딥러닝 과정에서 인공지능 학습 데이터에 대해 두 가지 중요한 역할을 합니다.

먼저, 데이터의 양적·질적 고도화를 통해 희소 데이터의 문제를 해결할 수 있습니다. 인공지능 학습용 데이터 셋을 구축하기 위해서는 데이터를 수집하고 가공하는 데이터 라벨링 과정이 수반됩니다. 이 과정이 완벽하지 않으면 제 성능을 발휘하기가 어렵죠.

그러나 특수 상황에 대한 데이터가 필요하거나, 특별한 사례에 대한 케이스에 따른 데이터가 필요할 때에는 데이터 수집이 어려울 수밖에 없습니다. 예를 들어 사고 견적을 산출하는 인공지능 모델을 위해 차량을 파손할 수는 없으니, 생성 모델을 통해 파손 차량 데이터를 얻을 수 있다면 좋겠죠. 마찬가지로 데이터 가공이 어려운 예시에서도 학습 데이터 준비에 어려움을 겪을 수 있습니다.

또한 데이터의 개인정보 보호를 위해 데이터 활용성 문제를 해결할 수 있습니다. 데이터 수집이나 가공의 단계는 가벼운 편이지만, 활용하기 어려운 데이터가 있습니다. 예를 들어 개인정보를 포함하는 대규모 데이터를 기업이나 학교, 연구소에서 활용하기 위해서는 대규모의 데이터 익명 처리가 요구됩니다. 그러나 블러나 모자이크와 같은 일반적인 개인정보 제거 방식은 AI 연구에 활용할 수 없기 때문에, 복원 불가형으로 데이터의 개인 정보를 식별할 수 없도록 만들되 AI 학습과 시험에서는 성능 저하를 최소화할 수 있도록 활용하는 기술이 필요합니다.

이럴 때 GAN을 활용하면 소량으로 수집하고 가공한 데이터 셋을 Augmentation 하는 방식으로 학습용 데이터 셋을 구축할 수 있게 됩니다. 또한 DeepFake로 불리는 GAN 기반 이미지 합성 기술은 가상의 얼굴을 원본 사진이나 영상에 겹치는 방식으로 개인정보를 비식별 처리할 수 있습니다. 원본 인물의 표정이나 자세 등 연구에 유의미할 수 있는 주요 정보는 그대로 가지고 있되, 우주에서 존재하지 않는 새로운 인물로 대체하여 합성하는 것입니다.

페이스북

페이스북의 Real eye Opener는 눈을 감은 사진에 가짜 눈을 생성하여 눈을 뜨고 있는 사진으로 만들어주는 기술입니다. 원하는 눈 모양을 latent vector에 반영하여 눈 모양이 대체된 새로운 얼굴 전체를 생성하는 것입니다. 단순히 포토샵으로 눈을 합성하는 것보다 훨씬 자연스럽고 실제 사람의 사진과 유사하다는 느낌을 받을 수 있죠.

GAN use cases_facebook_real eye opener
GAN 활용 사례 : 페이스북 Real eye opener

네이버

네이버 웹툰 <마주쳤다>는 본인의 셀카를 업로드하면 자신의 얼굴을 웹툰화하여 만화에 등장하는 작품이었습니다. 웹툰의 화풍을 학습한 모델이 독자의 얼굴 스타일을 활용하여 새로운 데이터를 생성하는 방식이죠.

또한 네이버 D2SF에 입주한 스타트업 ‘알레시오’는 태아의 입체 초음파 사진에서 아기 얼굴을 구성하는 특징을 딥러닝으로 판독하여 추출한 다음, 태아의 생후 얼굴을 예측해주는 모델을 공개했습니다. 이 모델은 초음파 사진의 각종 노이즈를 제거하는 작업이 관건이었죠. 제작사는 노이즈 제거를 위해 이미지 생성과 복원에 사용하는 Generative Adversarial Networks, GAN 알고리즘을 사용했습니다.

OpenAI

OpenAI는 인공지능으로 예술을 생성하고 사용자에게 영감을 줄 수 있습니다. OpenAI의 DALL·E 2는 텍스트로 작성된 설명에서 독창적이고 사실적인 시각과 예술을 생성합니다. 또한 자연어 캡션을 활용해 기존의 사진을 수정할 수 있습니다. 그림자나 반사, 질감을 고려해 항목을 추가 및 제거할 수 있죠.

방대한 이미지 데이터 세트를 통해 학습한 Generative Model은 컴퓨터 비전의 발전의 디딤돌이 되어주었습니다. OpenAI는 GAN 모델 알고리즘의 변형인 Optimal Transport GAN(OT-GAN)을 활용해 최적화 작업을 진행하기도 했습니다.

GAN use case_OpenAI
OpenAI Generative Model 로직

GAN의 한계와 트렌드

한계 - Model collapse

GAN은 초기 모델인 만큼 아직은 안정성이 떨어진다는 평가가 있습니다. Model-collapse 현상이라고 불리는 증상은 학습의 다양성이 떨어진다는 뜻입니다. GAN을 training 할 때 보여주는 많은 수의 training set 중에서 우연히 딱 하나의 training image 와 비슷한 image 를 generation 했다고 가정해봅시다. 그렇게되면, 그 이미지와 비슷한 결과물을 냈으니 그 이미지와 최대한 비슷하게 만드는 쪽으로 gradient update가 일어나게 되고 , 상당히 많은 수의 training set을 보여줬음에도 불구하고 몇가지 이미지에 대해서만 비슷한 결과물을 생성하게 됩니다. 즉, 한 번 판별모델이 진짜라고 생각한 데이터가 있다면 GAN 모델은 더 이상 다양한 데이터를 만들기 보다는 진짜로 인정 받은 것을 대량으로 생산하는 것입니다. Generator 입장에서는 더 현실적이거나 미적일 필요 없이, 오직 Discriminator를 속이기만 하면 되는 것이기 때문이죠.

GAN model-collapse
GAN model-collapse

Generator가 Discriminator를 완벽하게 속인 가짜 데이터를 1이라고 했을 때, 잘 만들어진 Generator는 0~9까지 균일하게 생성해야 좋은 모델이라고 할 수 있습니다. 판별모델을 속이는 과정이 지연되면서 더 다양한 결과물이 만들어질 수 있기 때문입니다.

GAN 트렌드

Generative Model을 학습시키기 위해서는 일종의 불량 데이터가 필요하기도 합니다. 취득한 몇 개의 실제 불량 데이터를 이용하여 GAN 알고리즘에 학습 시키면, 더 많은 불량 데이터를 만들 수 있게 하죠.

GAN의 활용 사례는 점점 더 다양해질 것입니다. 비즈니스에 사용할 이미지를 텍스트 입력만으로 직접 생성할 수 있을 뿐만 아니라, 이미지를 자유자재로 변형할 수 있게 되었죠. 특히나 이런 이미지 변형 분야는 의료나 자율주행 등 우리의 생활과 편리에 맞닿아있는 인공지능 모델 개발에 밀접하게 와닿아 있습니다.

데이터헌트는 모델 학습을 위한 데이터 구축에서 GAN을 적극적으로 활용하고 있습니다. 이를 통해 소량의 데이터를 확장하는 방식으로 수집 및 가공이 어려운 데이터셋을 구축할 수 있게 합니다.

또한 끊임없는 연구와 발전을 이어가는 GAN 모델을 활용해 새로운 비즈니스 창출의 기회를 도모합니다. 생성 모델의 유연성이 하루가 다르게 발전하는 가운데, 더 많은 사례에서 GAN 알고리즘을 활용할 계기가 나타날 것이라고 생각합니다.

결론: 멀티모달 개발이 다양해지는 가운데 GAN 활용사례는 더욱 다양해질 것

  1. Generative Adversarial Networks, GAN은 데이터를 생성하는 Generator가 판별 모델 Discriminator를 속이기 위해 가짜 데이터를 생성하는 Generative Model이다.
  2. Discriminator이 Generator이 만든 데이터를 구분하지 못하고 최종적으로 50%의 확률로 정답을 맞추게 되면 학습이 종료된다.
  3. GAN은 페이스북, 네이버, OpenAI 등 인공지능을 다루는 여러 기업에서 활발하게 연구되고 있는 분야이다. 한계가 명확하다는 평가가 있지만 이미지 생성/변환을 통한 데이터 구축 분야에서 두각을 드러내고 있다.

Talk to Expert