- 2019년 4월 19일 오후 4:22
- 조회수: 4581
INFORMATION
- 2019년 4월 26일
- 오후 1시 ~
- 고려대학교 신공학관 218호

TOPIC
OVERVIEW
발표자 후기

오늘 세미나에서는 Generative model 의 기본적인 개념에 대해 리뷰하는 시간을 가졌다. Variational Autoencoder(VAE), Generative Adversarial Nets(GAN), Adversarial Autoencoder(AAE) 의 3가지 generative model의 구조와 학습 방법에 대해 이해함으로써 generative model 이 가지는 기본적인 개념을 이해할 수 있었다. VAE는 latent layer 에 확률 개념을 도입함으로써 embedding 되는 data 가 점이 아니라 확률 분포를 가질 수 있도록 한 autoencoder 이다. 이를 통하여 latent space 가 넓게 확장하는 것을 막을 수 있고, data 간의 특성을 잘 파악하여 interpolation 특성도 향상된다. 이와는 다르게 GAN 에서는 adversarial 학습방법을 통하여 generator 에서 생성된 data 가 Dataset에 있는 data와 최대한 유사하게 생성되도록 학습된다. AAE 에서는 encoder 에서 출력되는 latent vector 가 사용자가 정의한 분포를 따르도록 학습된다. 이는 복잡한 수식 없이 단순히 사용자가 원하는 형태로 학습할 수 있기 때문에 생성 뿐만 아니라, 분류나 클러스터링에도 유용하게 활용될 수 있다. 세미나를 준비하면서 generative model 에 대해 좀 더 자세히 알 수 있는 기회가 되었으며, 추가적으로 세미나 시간에 논의된 내용 중 VAE 와 GAN 의 차이점으로 생성 데이터의 blurry 효과에 대해서는 추가 실험을 통하여 경향성을 파악해 봐야 할 필요를 느꼈다.
청취자 후기

Generative model은 실제 데이터의 분포를 학습함으로써, 새로운 데이터를 생성하기 위한 모델을 통칭한다. 특정 분야에서는 데이터를 수집하는데 있어 많은 비용이 들거나, 또는 많은 시간이 필요하기 때문에 Generative model의 중요성은 점차 증가하고 있다. 최근 데이터가 복잡해짐에 따라 이러한 데이터의 분포를 학습하기 위해 generative adversarial network (GAN), variational autoencoder(VAE)과 같이 딥러닝을 기반의 다양한 generative model이 제안되었다. 본 세미나에서는 GAN, VAE를 시작으로 AAE까지 generative model에 대한 전반적인 내용을 다뤘다. GAN/VAE는 실제 데이터의 분포를 학습하여 데이터를 생성한다는 점에서는 동일한 목적을 갖고 있다. 그러나 GAN/VAE는 세부적인 학습 방법이 다르다. GAN은 2개의 neural network를 통해 adversarial하게 학습이 진행되는 반면, VAE는 autoencoder 기반으로 학습이 진행된다. VAE는 생성되는 데이터가 blurry한 형태의 이미지가 생성되는 문제가 있는 반면 GAN은 clear한 이미지생성이 가능하나 2개의 neural network로 구성되었기 때문에 hyperparameter에 민감한 단점이 있다. 즉, mode collapse와 같은 문제가 발생한다. Generative model 측면에서 두개의 모델 모두 장/단점이 있으나, 모두 다양한 분야에 적용되어 우수한 성능을 나타내는 중요한 모델로써, 본 세미나를 통해 generative model에 대해 정리할 수 있는 유익한 세미나 였다고 생각한다.

금일 세미나는 Basic Concept of Generative model에 대한 주제로 창현이형이 발표하였다. Autoencoder는 encoder에서 Latent Vector를 만들어 Decoder부분에서 원래의 Input과 같은 데이터를 생성하도록 한다. 여기에서 시작되어 Variational Autoencoder, Generative Adversarial Nets, Adversarial Autoenocder등으로 모델이 발전되었다. VAE의 경우 Encoder부분에 확률분포의 파라미터와 noise를 추가하여 미분이 가능한 형태로 만들어 학습을 시킨다. GAN은 decoder부분에서 나온 데이터와 원래의 데이터를 가지고 Discriminator부분에서 진짜인지 가짜인지를 분류하도록 한다. Adversarial Autoencoder는 VAE와 GAN의 개념을 합친 것이다. VAE에서 나온 Latent vector와 정규분포를 따르는 latent vector를 discriminator를 통하여 진짜인지 가짜인지 분류한다. 이때 학학습 할 때 GAN에서 학습되는 것과 비슷한데, 처음의 진짜 데이터는 진짜로, 가짜 데이터는 가짜로 구분을 한다. 그 다음으로 가짜 데이터를 진짜로 구분하도록 discriminator를 학습시킨다. 이러한 과정을 반복하면서 최종적으로 원하고자 하는 데이터를 생성한다. 재미있었던 것은 prior의 분포를 변형해가면서 Latent space가 prior와 비슷하도록 한 다음 generation을 하는 부분이었다. 최근 데이터를 generation하는 방법에 대해 공부를 시작하였다. VAE를 시작으로 GAN 순으로 공부를 하고 있었는데 마침 세미나 시간에도 모델에 대한 concept을 잘 설명해주어 이해가 쉬웠다. 또한 Generation하는 방법에 대해 많은 연구가 진행되고 있는데 기초를 다지기에 매우 좋은 세미나였다.

Generative Model은 실제 데이터의 분포에 근사한 분포를 생성해내는 모델이다. 학습은 실제 데이터보다 작은 차원의 latent space로 실제 데이터의 분포를 압축적으로 표현함으로써 이루어진다. 이번 시간에는 AE, VAE, GAN, AAN 순으로 소개를 해주셨는데 뒤로 갈수록 앞에 나온 기초 아이디어에 몇 가지 제약사항을 차곡차곡 추가시킴으로써 앞 모델보다 단점을 보완했다. VAE는 AE의 latent space가 연속적이지 않고 latent variable의 스케일이 넓게 분포되어 이를 유용하게 쓰지 못한다는 단점을 보완하기 위해서 기존 Reconstruction loss에다 추가적으로 latent space만큼의 크기를 갖는 ‘정규분포와의 KL divergence’ 를 추가하여, latent space로 embedding이 정규 분포와 유사한 모양을 가지도록 강제하였다. 이때 정규분포를 쓴 이유가 단순히 각각의 class가 연속적이게 함으로써 class간 interpolation이 용이하게 하기 위해 그런 것이라고 생각했으나, 나중에 여쭈어보니 미분가능하고 샘플링이 가능한 분포이면 된다고 말씀해주셨다. 또한 VAE는 latent space에 embedding된 값들이 정규분포의 평균과 분산을 의미하는 값으로 대체되면서 generator가 pointwise가 아닌 distribution-wise로 학습함으로써 AE보다 일반화하는 성능이 뛰어나다는 점이 생겼다. 뒤에 이어서 AAN에서는 prior distribution을 여러가지로 바꾸면서 latent space의 모양을 여러가지로 강제해볼 수 있음을 선사하여 원하는 목적(분류/회귀)에 따라서 latent space를 유용하게 바꿀 수 있다는 가능성을 보여주었다. GAN에서는 AE계열과 다르게 Reconstruction Loss와 같은 역할을 해주는 Discriminator와 decoder 역할을 해주는 Generator를 앞으로 뺀 완전히 새로운 구조로 모델을 학습시켰으며, Loss function 모양 또한 AE와 다르게 min-max 문제를 푸는 형태가 되었다. 이미지 데이터를 생성하는 실험에서 성능상으로는 GAN이 VAE보다 sharp한 이미지를 생성한다고 하는데, 이는 GAN이 mode collapse가 발생할 수 있는 위험과 생성이미지의 sharp함을 tradeoff 한 것이라는 의견과, bias-variance tradeoff가 이 부분에서도 적용된다는 의견이 오고 갔다. No free lunch theorem에 따르면 평균적으로 보았을 때 어느 model-free 모델도 팔방미인일 수도 없다고 하는데, Generative model 또한 domain knowledge에 입각하여 적절한 모델을 선택해야 좋은 성능을 낼 수 있다는 점을 다시 한번 상기시켜주었다. 마지막으로, 수식적으로 너무 파고 들면 큰 흐름을 놓칠 수 있었는데, 이번 발표자인 창현 선배님의 적절한 난이도 조정으로 generative model의 뼈대를 살펴볼 수 있어서 발표 측면에서도 배울 점이 많았다.

오늘 세미나는 생성 모델(Generative Model) 중에서 1) Variational Autoencoder, 2) Generative Adversarial Networks, 3) Adversarial Autoencoder에 대해 다루었다. 오늘 다룬 세 가지 모델은 학습 데이터와 유사한 데이터를 잘 생성하는 동일한 목적을 갖지만 서로 다른 접근을 보여준다. Variational Autoencoder는 decoder의 input에 해당하는 latent space에 분포 가정을 두고 변분 추론을 진행하여 궁극적으로는 새로운 input data가 주어졌을 때 그와 유사한 샘플들을 여럿 생성할 수 있다. 한편 Generative Adversarial Networks의 경우, 학습 데이터와 모델이 생성한 데이터를 구분하는 판별기를 도입하여 랜덤한 노이즈로부터 실제와 유사한 샘플을 생성한다. Adversarial Autoencoder는 위 두 모델의 장점을 섞어 latent space에 분포 가정을 도입함과 동시에 latent space의 진위 여부를 판별하도록 한다. 논문에서 볼 수 있듯이 단순히 생성한 결과 샘플 뿐만 아니라 latent space에 대한 분포 가정을 어떻게 주냐에 따라서도 결과가 달라지는 것이 흥미로웠다. 세 가지 모델에 대해 잘 정리되고 연구 아이디어를 많이 얻을 수 있는 세미나였다.

금일 “Basic Concept of Generative model” 라는 주제로 세미나가 진행되었다. 이번 세미나에서는 Input 의 중요성에 대해 이야기가 나왔다. VAE, GAN, AAE 3가지 논문을 예를 들어 설명이 되었는데 가장 기본인 Autoencoder 에서부터 설명을 해주었다. Latent Vector 는 아웃풋 function 임과 동시에 인풋 으로서 복원이 잘되어야 하고 인풋으로서도 좋아야 한다. 이를 좀더 좋게 하기 위해 VAE 가 나왔는데 최초 Loss function 으로써 cross entropy 만을 사용한 것이 너무 분포가 넓게 벌려 지는것에 대한 단점을 개선 하기 위해

이번 세미나의 주제는 Generative model 이었으며, 이 중에서 Autoencoder, Variational Autoencoder, Generative Adversarial Nets, Adversarial Autoencoder의 컨셉과 실험 결과를 중심으로 쉽게 설명해 주었다. 실험 결과와 같은 시각적인 자료가 많이 있었는데, 모든 결과를 직접 만들었다는 점에서 정성이 느껴지는 자료였다. 가장 기억에 남는 부분은 Adversarial 에서 초기 분포를 임의로 설정하고 학습시킬 때 latent space도 마찬가지로 그 분포를 따라가며, 어느 정도의 분류가 된 결과였다. 또한 여러 가지 구조를 이용하여 semi-supervised AAE, dimensionality reduction 등 다양하게 이용할 수 있다는 것이 흥미로웠다. 이미 generative model은 다양하게 사용되고 있으며 실제로 이번 산업공학회의 많은 발표들이 이 모델에 관한 내용이었다. 그만큼 많이 쓰이고 중요한 내용인데 매우 쉽게 잘 설명해 주었다. 앞으로의 연구로 더 깊게 생각할 수 있는 발판이 되며 다음 내용이 궁금해 지는 세미나였다.

Generative Model에 관한 기본적인 개념을 정리하는 세미나를 청취하였다. 어떠한 데이터를 생성하기 위한 모델이 있다고 할 때, 모델에 넣어줘야 하는 input의 형태를 알아가는 과정이 generative model을 학습하는 과정이라고 볼 수 있다. AE, VAE, GAN, AAE 등 다양한 알고리즘들이 개발되었으며 알고리즘별로 변형 모델도 많이 연구되었다. AE는 input과 유사한 output을 생성할 수 있는 latent vector를 학습하는 알고리즘이며, generative model 관점에서 model(decoder)가 받아들이는 input은 latent vector가 된다. 하지만, latent vector space의 scale이 매번 다르고, 학습한 데이터로부터 얻지 못한 ‘비어있는 공간’에 대해서는 sample generation이 잘 되지 않는다. 이에 비해 VAE는 latent space를 정규분포 공간으로 가정(혹은 제한)하기 때문에 이러한 문제점을 해결할 수 있다. GAN은 real-fake를 구분하는 discriminator, 이를 속일 정도로 양질의 fake data를 만들어내기 위한 generator로 이루어져 있다. Encoder-Decoder 구조와 adversarial 학습 방법을 결합한 알고리즘이 AAE이다. 이 알고리즘에서 흥미로웠던 점은 latent space의 prior를 맘대로 조정하여 clustering과 유사한 효과를 낼 수도 있다는 것이었다. 딥러닝의 장점이라고 여겨지는 구조의 자유로운 변환을 통해서 다양한 task를 소화할 수 있다는 예시를 가장 잘 보여주는 알고리즘과 실험이라고 생각된다. Generative model은 수학적으로 이해하기 어려운 부분이 많은데 이를 개념적으로 이해하기 쉽게 설명했던 인상깊은 발표였다.

금일 세미나는 창현이형이 Generative Model의 기본 모델인 AE, VAE, GAN 그리고 AAE을 주제로 발표해주셨다. 개인적으로도 관심이 있는 주제이고, 연구실 세미나, 학회 그리고 컨퍼런스에서 Generative model 관련 연구에 대한 발표를 자주 듣다 보니 다 알고있다고 생각했었다. 하지만 MNIST 데이터를 사용하여 모델마다 학습된 latent space가 어떤 형태를 보이고 생성된 데이터들은 어떤 특징을 나타내는지 시각적으로 확인하고 자세한 설명을 듣다 보니 AE, VAE, GAN 모델에 대하여 깊게 더 공부할 필요성을 느꼈다. 흔히 MNIST 같은 오픈데이터셋에 대하여 모델을 비교할 때 논문에 제시된 정량적인 평가 지표로만 성능 평가를 접해보고 말았는데, 창현이형이 직접 코드를 돌려보고 각 모델의 결과물의 시각적인 차이점까지 자세하게 서술해주어 감사했다. 특히 AAE에서 prior을 다양한 형태로 두고 모델을 학습시킨 결과물의 시각화 자료가 흥미로웠는데, 데이터에 따른 효과적인 prior을 알 수만 있다면 모델 퍼포먼스를 크게 향상시킬 수 있을 것 같다.

금일 세미나는 창현이 형이 'Basic Concept of Generative model'이라는 주제로 진행하였다. 먼저 Autoencoder란 Encoder, Latent Vector, Generator로 구성이 되어 있으며 계쏙해서 학습을 시켜 더 좋은 model로 update를 하여 좋게 만드는 것이다. Variational Autoencoder는 얼추보면 Autoencoder와 비슷해 보이지만 가장큰 차이점은 데이터의 확률 분포를 찾는 것이다. Autoencoder는 한점을 만들지만 VAE는 확률 분포를 생성하고 생성된 확률 분포에서 샘플링을 하는 방식이다. 그리고 Generative Adversarial Nets(GAN)은 Generator가 만들어 내는 것을 평가하는 Discriminator가 있어서 서로의 성능을 개선하는 방법이 주된 개념이다. 그리고 마지막으로 Adversarial Autoencoder는 encoder의 확률 분포를 고정하였던 부분의 한계를 깨기위해 나온 방법론이다. AAE와 VAE의 비교해 보면 AAE에 비하여 VAE는 Variational 기능이 떨어지는데 즉 z의 값을 연속적으로 변화시킬때, AAE는 모든 z에 대해 그럴듯한 결과가 나오는 반면에 VAE는 값이 연속적으로 변하는 과정에서 원하지 않던 출력이 나올 수 있다는 것을 말한다. 그리고 중요한 차이점은 VAE에서는 정확한 prior distribution이 필요하지만, AAE는 단지 prior distribution의 sample만 필요하다. Generative Model은 아직 나에게 익숙하지 않은 부분이였는데 쉽게 이해할수 있도록 설명해준 창현이 형에게 감사를 표한다.

금주 세미나는 basic concept of generative model이라는 주제로 진행되었다. 세미나에서는 VAE와 GAN, 그리고 AAE에 대해서 다뤘으며, 배경이 되는 이론보다는 비교적 가벼운 실험 결과와 그 의미에 대해서 진행되었다. 특히, latent space에 대해서 자세한 실험을 진행한 점이 흥미로웠다. 일반적으로 deep generative model에 대해 소개할 때, 생성되는 이미지의 품질 또는 특성 위주로 설명하는 경우가 많은데, 실제로 deep generative model이 unsupervised representation learning에 초점을 두고 연구되고 있는 것을 생각해보면, 생성된 결과물보다도 latent space에 대해 고민해보는 것이 중요하기 때문이다. 특히, AAE의 특징을 이용하여 다양한 형태의 target distribution을 설정하고, 논문에서 소개한 결과물을 얻을 수 있다는 것을 보여준 것은 의미있다고 생각한다. 수식으로만 봤을때는 잘 와닿지 않을 수 있는 내용을 이해하기 쉽게 잘 설명한 것 같다.

이번 세미나는 “Basic Concept of Generative model”이라는 주제로 연구실의 큰형인 이창현님이 발표 해주셨다. 특히 이번 발표는 이창현님이 1년간 연구하며 알아낸 개념을 통해 어려운 내용이지만 비교적 쉽게 예시를 들어 발표 해주셔서 보다 개념에 접근하기 수월했던 것 같다. Generative Model은 학습 DATA를 통해 그 안에 공통적으로 내재되어 있는 특징인 Latent Vector를 추출하고 이 Latent Vector를 활용하여 DATA를 복원하는 기법이다. 쉽게 예시를 들면 여러가지 사람의 얼굴을 통해 Latent Vector를 추출하면, 얼굴형/머리카락//코/눈/입/귀/턱/눈 등의 특징을 추출하여 Vector화 하고 이 DATA를 통해 Generate하는 것이다. 이 Generate Model의 발전과정을 AE/VAE/GAN/AAE 등으로 Historical하게 잘 설명해주어 도움이 많이 되었다. 앞으로 연구에 밑바탕으로 삼고 공부해보도록 해야겠다는 생각이 들었다.

Autoencoder부터 Adversarial Autoencoder까지 잘 알려진 여러 생성모델의 개념에 대한 큰 흐름을 잡을 수 있는 발표였다. 또한 각각의 생성모델의 원리에 대해서도 Latent Space와 Generated Output을 시각화 하여 설명함으로써 직관적인 이해를 할 수 있게 해주셨다. AAE에 대해서는 이번에 처음 접하게 되었는데, AE의 Latent Vector에 별도로 Discriminator를 부착함으로써 의도적으로 Latent Vector의 분포를 조정할 수 있다는 점이 흥미로웠다. 분석 목적에 맞는 분포를 임의로 사용함으로써 다양한 접근의 가능성이 생길 것으로 보인다. 각각의 생성모델은 다양한 방식으로 작동하지만, 데이터의 저차원 표현을 이용하여 결과를 생성해 낸다는 점은 모두 동일했다. 데이터의 특성을 저차원에서 효과적으로 표현하는 방법론이 갖는 중요성에 대해 다시한번 생각해 볼 수 있는 계기였다.

백인성
금일은 Basic Concept of Generative Model을 주제로 한 세미나를 들었다. Generative Model을 쉽게 설명하기 위해 ‘도깨비 방망이’에 비유하며 시작 된 세미나는 처음부터 흥미롭게 들렸다. 해당 세미나는 Variational Autoencoder(VAE)에 대한 설명을 시작으로 Generative Adversarial Nets(GAN), Adversarial Autoencoder(AAE)에 대한 설명이 이어졌다. 최근 연구실 세미나 시간뿐만 아니라 BI학회에서도 Generative Model에 대한 설명이 많이 나왔었기 때문에 더 관심을 가지고 들을 수 있었다. 먼저 VAE에 대한 설명에 앞서 Autoencoder에 대한 간단한 설명이 있었다. Autoencoder 모델은 Encoder와 Generator구조를 바탕으로 Latent Vector를 생성하면서 Input 데이터와 유사한 Output 데이터를 생성하게 된다. Autoencoder로 생성된 2차원의 Latent Space를 확인해보면 빈 공간을 확인할 수 있게 되는데, 이는 Autoencoder 모델이 알 수 없는 공간이라고 말할 수 있다. 이를 해결하기 위해 KL Divergence를 활용해 Autoencoder의 Loss Function에 Regularization Term을 더한 VAE 모델이 등장하게 된다. Latent Space가 단순히 하나의 포인트로 결정되는 것이 아니라 를 바탕으로 확률 분포를 구축하게 되고, 이를 통해 빈 공간에 대한 값을 주변 확률 분포로 추정할 수 있게 된다. GAN은 Generator와 Discriminator 구조를 활용해 Input 데이터와 유사한 Output 데이터를 생성하게 되는 알고리즘이다. AAE는 GAN의 Loss function에 Regularization Term을 더한 알고리즘으로 Latent Vector가 정규분포에 따르도록 학습하게 된다.
오늘 들은 세미나가 인상적이었던 것은 어려운 개념이더라도 발표자가 이해한 내용에 대해서 청중들이 쉽게 이해할 수 있도록 세미나를 준비해줬다는 점이다. Generative Model의 기본적인 컨셉에 대해 정말 많은 것을 배우고 생각할 수 있었던 시간이었던 것 같다. 나 또한 세미나를 준비할 때 내가 이해한 내용을 청중들에게 쉽게 전달할 수 있는 방법이 무엇인지에 대해 더 깊게 고민 해야겠다는 생각을 했다. 좋은 발표를 준비해주신 창현이 형에게 감사함을 표하는 바이다.

금일 세미나는 ‘Basic Concept of Generative Model’이라는 주제로 창현이 형이 진행을 했다. 해당 부분은 형의 연구분야이면서, 이번 중간고사 내용과도 밀접한 관련이 있는 부분이다. 같은 과목을 수강하는 동료 연구원들에게 Generative Model에 관해 직관적인 이해를 도와줄 수 있었다고 생각한다. 나에게 기존에는 VAE, AutoEncoder에서 차이를 이해 할 수 없었다. 두가지 모델 모두, 인풋 데이터와 유사한 데이터를 생성해주는 모델에서 모델에 대한 이해를 멈추고 있었지만, latent space에 input되는 Encoder의 결과물의 차이에서부터 시작해서, frequentist와 Bayesian의 latent space를 보는 차이에 대해 알게 해주었다. VAE가 Autoencoder보다 성능이 좋게 보이는 것은 Autoencoder는 데이터가 없는 부분은 생성해주지 못하지만, VAE는 데이터의 분포를 추론하고 이를 기반으로 데이터를 생성하기에 기존의 데이터 셋에 존재하지 않는 데이터의 형태라도 분포를 추론하고 어떠한 데이터와 유사한 지를 파악해 아웃풋 데이터를 생성하는 것으로 이해를 했다. 이와 더불어 GAN, AAE에 대한 설명도 진행해주었는데, GAN은 VAE와 컨셉은 유사하지만 모델의 구조와 학습방식을 살펴보면서 완전히 다른 모델임을 알았다. GAN의 장점과 VAE의 장점을 합쳐서 만든 모델 AAE에 대해서도 어떻게 모델이 학습을 진행하는 지 알 수 있었다. 금일 세미나를 들으면서, 시험공부를 진행하고 있는 나로써는 매우 유익한 시간이었다. VAE를 기반으로 하는 Generative Model에 관해서 논문을 추가적으로 읽을 필요가 있다고 생각했다. 왜냐하면 VAE, GAN 이러한 Generative Model은 준지도 학습에도 이용할 수 있다는 이야기를 해주었기 때문이다. 또한 이들과 관련한 논문을 읽으면 항상 위의 말이 붙어서 나오기 때문이다. 모든 데이터에 Labeling을 진행 할 수 없기 때문에, Generative Model을 이용한 준지도 학습 방법에 이용할 수 있다면 재미있는 연구를 할 수 있을 것 같다. 직관적인 예시 들어 발표를 진행해준 창현이 형에게 감사를 표한다.