- 2018년 12월 29일 오전 11:16
- 조회수: 1720
REFERENCES
INFORMATION
- 2019년 1월 4일
- 오후 1시 30분 ~
- 고려대학교 신공학관 218호

TOPIC
OVERVIEW
발표자 후기

Deep generative model은 neural network를 이용하여 고차원 데이터의 generating process를 학습하는 방법론으로, 최근 이미지/텍스트/오디오 데이터 등 다양한 고차원 데이터 학습에 성공적이라는 평가를 받고 있다. 이번 세미나에서는 가장 기본적인 deep generative model인 variational autoencoder (VAE), generative adversarial networks (GAN), 그리고 generative moment matching network (GMMN)과 이 모델들로부터 발전된 여러가지 연구에 대한 리뷰를 진행하였다. 특히 각 모델들이 어떤 관점에서 실제 데이터와 동일한 분포를 갖는 데이터를 생성하도록 학습하는지와 각 모델의 아이디어가 기존 모델과 어떻게 다른지 설명하려고 하였다. VAE는 variational inference에 기초하고 있으며, GAN은 adversarial training, GMMN은 moment matching이라는 특징을 가지고 있다. 최근에는 각 모델의 특징들을 조합하여 다양한 구조/학습방식을 가진 deep generative model이 제안되고 있고, 기존 모델들의 한계점들을 극복해 나가고 있다.
청취자 후기

본 세미나에서느 GAN을 시작으로 GMMN, VAE까지 generative model에 대해 광범위하게 리뷰를 하였다. GAN은 현재 관심있어하는 분야로 초기 GAN부터 가장 최신의 BEGAN까지 정리할 수 있었고, VAE도 generative model로써 상당히 좋은 성능을 보이는것은 알고있었는데 이에 대해 조금은 알 수 있어서 유익한 세미나 였다고 생각한다. GAN이 학습하는데 있어 generator와 discriminator간의 균형을 잡기가 어렵다. 때문에 학습을 하는데 있어 상당히 불안정한 모습을 보이는 단점이 있다. 그렇기 때문에 GAN관련 연구를 진행하면서 상당히 에로사항이 많았었다. 반면, VAE는 GAN과 달리 상대적으로 학습이 안정적인 장점이 있어 현재 연구하는 분야에 VAE를 사용하는 것도 한번 고려해 볼만 한 것 같다는 생각이 들었다.

금일 세미나는 데이터 생성을 담당하는 generative model에 대한 주요 알고리즘을 살펴보고 서로 비교하여 설명을 들을 수 있는 좋은 시간이었다. text, signal, image data 등 고차원의 복잡한 패턴의 데이터를 다루기 위해 neural network이 기본 모델로 포함되어 deep generative model이라 지칭된듯 하다. GAN 알고리즘과 관련해서는, 생성/분류를 담당하는 generator와 discriminator의 학습을 위해 cost function에 정의되는 다양한 divergence 또는 distribution distance measure을 살펴보았다. GAN의 주요 문제점인 mode collapse나 unstable (imbalance) learning 측면에서 뚜렷한 차이를 더 볼 수 있으면 좋았을 것 같다. GMMN 모델의 경우 adversarial framework을 갖지 않도록 two sample test를 통해 discriminator 역할을 대신할 수 있는 moment matching 부분이 포함되어 있었다. VAE는 간단히 prior distribution과 kl divergence를 최소화하도록 구성된 autoencoder 구조에 embedding space 상 가우시안 확률분포를 따르도록 만든 모델이다. 특히 autoencoder 중 bottleneck layer에서 추출된 feature에 대한 분포를 학습한다는 측면에서 manifold learning의 원칙에 가장 부합되는 모델인 것 같아 지속적인 연구의 확장이 있을 것 같다. 무엇보다 광범위한 분량의 세미나를 쉽게 설명해주고자 노력한 도형록 연구원에게 감사하며, 도 연구원의 연구에 큰 진척이 있기를 바란다.

금일 세미나는 deep generate model을 주제로, 중심 모델인 GAN / GMMN / VAE와 이들 모델들에서 확장된 형태의 모델들에 대한 연구 배경 및 이론에 대한 설명으로 진행되었다. 이미지나 텍스트같은 고차원이고 복잡한 데이터들을 처리하는 딥러닝 방법론으로 연구가 활발하게 진행되고 있는 만큼 최근 4~5년간 많은 모델들이 제안되었다. Generate model을 구축한다는 것은 latent variable을 포함하여 data generating process 자체를 modeling한다는 것을 의미한다. 먼저 GAN은 random noise를 input으로 training data와 아주 흡사한 sample을 생성하게끔 neural network를 학습시 generator을 구축한다. 반면 discriminator는 training data와 generated data를 잘 판별해낼 수 있도록 neural network를 학습시킨다. GAN modeling시 training data와 generator의 distribution 사이의 JS divergence를 minimize 하게끔 generator을 학습하는데, 이 objective function에 JS divegence 대신 f-divergence를 쓰는 f-GAN, Wassertsten-1 distance를 쓰는 Wasserstein GAN 등 새로운 방법론들이 제안되었다. 이외에도 energy function 개념을 도입한 EBGAN, training data와 generated data의 reconstruction error의 similiarity를 계산하는 방식으로 distance를 계산하는 BEGAN 방법에 대한 설명을 들었다. 마지막으로 input을 random noise z와 sementic feature을 표현하는 latent code c를 분리하여 처리하고 이 정보를 discriminator에서 활용하게끔 구현하는 model인 infoGAN에 대한 설명도 들었다. GMMN도 전체 프로세스는 GAN과 유사하지만 discriminator의 역할이 GAN과 다르다. GMMN에서는 Moment Matching이라는 two-sample test를 통해 training data와 generated data간의 similiarity를 연산한다. 따라서 GAN과 GMMN의 최종 output의 형태가 다르게 된다.(real and fake의 판별 / simiarity) GMMN에서도 GAN과 마찬가지로 확장된 모델인 MMD-GAN이 있다. 이 모델은 optimization의 objective function에 kernal trick을 적용하여 모델의 성능을 향상시켰다. 마지막으로 VAE의 경우 Encoder - decoder 구조로, encoder에서 input data의 feature을 잘 추출해낼 수 있게끔 neural network를 학습시키고, decoder는 encoder으로부터 추출된 feature(latent variable)을 통해 data를 잘 reconstruction할 수 있게끔 neural network를 학습시킨다.VAE modeling도 optimization시 objective function의 KL divergence term에 weight를 주는 Beta VAE와 prior과 aggregatedd posterior의 discrepancy를 minimize하는 AAE 등 확장된 이론이 제안되었다.Generative model에 대해서는 아직 공부해본적이 없어 내용을 완전하게 이해하기는 어려웠다. GM에 대하여 기본 베이스가 있었으면 아주 유익한 시간이 되었을 것 같아서 개인적으로는 아쉬웠다. 다만 이미지나 텍스트같은 고차원의 데이터를 분석하는 것에 관심을 갖고있고 앞으로 공부할 예정이기 때문에 어떤 순서나 방향으로 공부를 해야 할지 감을 잡았다는 측면에서는 유익한 세미나였다. 또한 새로운 모델이나 연구에 대한 아이디어는 objective function을 보고 어떻게 하면 개선할 수 있을지 고민해보는 것에서 출발한다는 것을 알 수 있었다. 지금 개인적으로 공부하고 있는 optimization을 더 열심히 공부해야겠다는 생각이 들었다. 방대한 내용에도 불구하고 긴 시간동안 자세하게 하나하나 설명해준 형록이형에게 감사드린다.

금일 세미나는 Deep generate model 의 종류와 목적을 이해하는 내용으로 진행되었다. 2013년Variational Autoencoder 를 시작으로 Generative Adversarial Networks,Gnenrative Moment Matching Network 가 generative model 로 주로 사용되고 있는데, 각모델이 가지고 있는 특징과 함께 발전해 나가는 방향에 대해서도 살펴 볼수 있는 좋은 기회였다. Generative model을 이용하여 실험이나 평가를 진행 해 보았지만 이론적인 부분에 대해서는 정확히 다 이해하지 못하고 진행한 부분이 많았는데 오늘 세미나를 통하여 어느정도 이론적인 부분에 대해서도 조금 이해를 할 수 있어 좋았다. 어렴풋이 알고 있던 GANs 에 대하여개념을 가지게 되었고, JS-divergence 대신 f-divergence 를 사용하는 f-GAN, 확률 개념이 아닌Wasserstein distance 를 사용하는 WGAN 까지 어려운 내용이었지만 저자가 의도하는 내용을 어느정도 이해할 수있었다. 또한 사용자가 의도하는대로 생성할 수 있는 요소를 추가한 InfoGAN 은 실제로 data 생성에 사용하기에 좋을 것같다는 생각이 들었다. GAN 의 discriminator 부부은 Moment Matching 으로 해결하는 GMMN 또한 쉽게 설명을 해주어 모델이 가지고 있는 의미에 대해 잘 이해할 수 있었던것 같다. VAE 의 경우에도 Variational inference 부분을 자세하게 설명을 해주어 기존에 이해하지 못한 부분을 어느정도 해결할 수 있었던것 같다. 금일 세미나를 통하여 수학적 지식을 이용하여 학습하기에 어려운 문제를 여러방면으로 해결하는 모습이 인상적이었고 모델을 이해하는데 있어서 개발하게된 이유와 효과같은것을 잘 알고 있어야 모델을 정확하게 사용할 수 있음을 알게되었다. 발표자께서 어렵고 많은 내용이었지만 긴 시간동안 잘 설명해주어 궁금했던 점들을 잘 이해할 수 있었던 유익한 세미나였다.

금일 세미나는 Understanding Deep Generative Models라는 주제로 진행되었다. Generative Models의 목적은 기본적으로 새로운 데이터를 생성하는데 있으며, 이를 통해서 우리가 데이터의 분포를 충분히 학습했다는 것을 직간접적으로 알 수 있다. 고차원의 데이터를 다루게 되면서 뉴럴넷 기반 Generative Models가 등장했으며 VAE, GAN과 변형 모델들이 인공지능 분야에서 인기를 끈지도 꽤 되었다. 금일 세미나는 크게 GAN, GMMN (Generative Moment Matching Network), VAE에 대한 개념설명을 다루고, 변형 모델들이 어떠한 아이디어에서 출발했고 어떻게 구현이 되었는가에 대해서 초점을 맞추고 진행되었다. 금일 세미나에서 가장 유익했던 점은 수식에 대한 개념적인 설명을 통해 '아이디어를 어떻게 구현했는가'에 대한 이해를 도왔다는 점이라고 생각된다. GAN, VAE를 이해하기 위해서는 통계, 최적화에 대한 이해가 필수적인데, 기초지식이 부족해서 generative models를 이해하는데 많은 어려움을 겪어왔었는데, 이번 세미나를 통해 평소에 해결하지 못했던 궁금증들을 일부 해결할 수 있었다. 세미나 시간동안 상당히 많은 모델을 다루었는데 그 중에서 인상 깊었던 부분은 GAN 구조가 변형되어진 과정이었다. 기본적으로 GAN은 adversarial learning을 통해 학습이 되며, generator는 진짜같은 이미지를 만들어 discriminator를 속이려하고, discriminator는 진짜/가짜 이미지를 잘 판별하려는 방향으로 학습이 된다. 이 개념에 따르면 discriminator의 loss function은 데이터의 진짜/가짜의 판별 여부로 정해져야 하는데, 이를 distance, energy, reconstruction error 등으로 바꾸고 모델을 학습시키기 위해 objective function을 새롭게 디자인하는 과정이 흥미로웠다. 인공지능 분야에서 새로운 알고리즘에 대한 연구를 수행하기 위해서는 수학, 통계, 최적화 등에 대한 깊은 이해가 필요하다는 사실을 다시 한번 느낄 수 있었다. 또한, 최근 VAE 논문을 다시 읽었는데 전체적인 리뷰를 세미나 시간을 통해 다시 한번 할 수 있었으며, 개념적으로 더욱 명확하게 할 수 있었다. 많은 양의 논문들을 리뷰하고 정리한 도형록 발표자에게 진심으로 감사하다.

금일 세미나는 ‘Understanding Deep Generative Models’라는 주제로 진행되었다. 크게 세 가지 모델 GAN, GMMN, VAE의 연구를 소개했다. GAN은 discriminator와 generator의 적대 관계에서 학습되며 generator는 데이터의 복사본을 더 잘 만들려는 목적, discriminator는 생성된 아웃풋과 실제 데이터를 더욱 잘 구별할 수 있게 하려는 목적을 달성하고자 한다. 이 때, 학습을 더 잘되게 하기 위해 Jensen-Shannon divergence 목적식을 사용하는데, 후에 보다 다양한 목적식을 사용하여 다른 방식의 학습이 가능할 뿐만 아니라 Wassertein GAN, Engergy based GAN과 같은 성능을 높이는 모델을 고안할 수 있게 되었다. VAE 같은 경우에는 autoencoder의 개념을 응용하되, latent variable의 분포에 대한 지식을 모델에 녹였다는 점에서 상이하다. 이 latent variable은 variational inference을 사용하여 latent space의 분포 함수를 알 수 있게하며 직접적인 random variable을 생성되게 한다. 데이터 분포를 예측 값이 없이 추론할 수 있다는 점에서 후에 매력적이고 유용한 연구가 될 것 같다는 생각이 들었다.

오늘 세미나는 Generative Models(GAN, GMMT, VAE)에 대한 내용이었다. 이러한 모델들은 text, audio, image 등 기존 모델로 잘 분석이 되지 않는 것들을 분석할 수 있는 것들이다. 우선 Generative Adversarial Networks(GAN)은 기본적으로 Generator와 Discriminator로 이루어져 있으며, Generator가 Latent Variable(z)을 받고 새로운 G(z)을 생성하여 Discriminator가 이 G(z)와 원래 데이터와 비교하는 것이다. 어떤 기준으로 생성된 데이터와 원래 데이터의 차이를 나타낼 것인지 그에 따라 어떤 Lossfunction을 갖는지, 어떤 Discriminator를 갖는지에 따라 fGAN, WGAN, EBGAN, BEGAN, InfoGAN 등 여러 종류의 GAN들이 있었다. fGAN의 경우에는 Lossfunction에 대한 자유로운 함수를 사용할 수 있고, WGAN은 Wasserstein 거리를 이용하고, EBGAN은 에너지 관점에서 새로운 Discriminator를 이용하고, BEGAN은 Generator와 Discriminator 사이의 균형을 조절할 수 있고, InfoGAN은 latent z와 다른 c를 이용하여 같은 Generator라도 어떻게 다른 결과를 나타내는지 차이를 이용하여 비슷하지만 다른 데이터를 만들어낸다는 특징이 있다.
Generator는 원래 데이터와 최대한 비슷하게 만들도록 학습시키고, Discriminator는 원래 데이터와 생성된 데이터를 구분하도록 학습시켜 서로 대립하도록(Adversarial) 학습된다. GMMN의 경우에는 Discriminator 대신에 Moment Matching을 사용하여 커널을 이용하여 Generator를 학습시키는데, Discriminator가 사라졌기 때문에 더 이상 대립되는 학습은 아니다. 하지만 MMD-GAN은 여기에 커널을 추가하여 대립되는 학습을 가능하게 하였다.
Variational Encoder는 데이터가 인코더를 통과하여 평균과 표준편차를 내보내고, 그것들을 이용하여 새로운 z를 만들고 디코더를 통해 새로운 평균과 표준편차를 만들어 내고 결과적으로 이 값들을 이용하여 새로운 데이터를 생성하게 된다. b-VAE는 lossfunction에서 KL-divergence에 b를 곱하여 조금 다른 방향으로 학습시킨 것이다. Adversarial Autoencoder는 여기에 인코더에서 나온 결과를 이용해 만든 z를 구분하는 Discriminator 를 추가하였고, 여러 형태로 응용하여 사용할 수 있었고, Wasserstein Autoencoder는 분포 차이를 Wasserstein 거리를 이용하였다.
이번 세미나는 상당히 많은 내용들을 갖고 있었다. 전반적인 Generative models에 대한 세미나였고, 재미있는 주제였지만 배경지식의 부족으로해하지 못하는 부분이 꽤 있었다. 전반적으로 든 느낌은 대부분의 모델링에서 발전되거나 개선되었던 부분이 Loss function 이라는 것이다. 그만큼 중요한 것이지만 어려운 부분이기도 했다. 다양한 Generative models를 배웠고, 다양한 방식으로 접근한 것은 신기했지만, 어떤 부분이 문제였고 어떤 부분이 개선되어 어떻게 좋아졌는지에 대해 깊은 이해가 부족했고 그 이유는 모델들에 대한 충분한 노력과 고민들이 없었기 때문인 것 같다. 첫 세미나라 내용을 이해하는데 조금 어려움이 있었지만 전반적인 흐름을 알 수 있어서 좋았다.

Understanding Deep Generative Models을 주제로 광범위한 논문을 다루는 시간이었다. 혼자 공부하기에 이해하기 벅찼던 부분들에 대해서 핵심을 짚어주어서 (잘 이해했는지는 모르겠지만) 추후 관련 논문을 읽을때 큰 도움이 될 것이라 생각된다. 그리고 이런 세미나를 준비해준 형록오빠에게 다시 한번 큰 감사의 뜻을 전한다. 오늘 다뤄진 논문들을 통해 GAN에서 Adversarial이란 컨셉이 얼마나 큰 파장을 주었는지 느껴졌다. GAN의 실제 data의 분포와 generator의 분포의 차이를 굉장히 많은 measure들로 학습 및 수렴 가능하다는 것을 f-GAN 이 보여준 이후 어떤 measure를 사용하여 GAN의 성능을 높일 수 있을까에 대한 정점의 역할을 WGAN이 Wasserstein distance를 사용하여 해결해주었다. Discriminator를 Autoencoder로 바꾸어 EBGAN으로 WGAN과 EBGAN의 아이디어를 통합하여 BEGAN으로 발전되었으며 Vanilla GAN에서 G과 D가 학습되는 balance를 수치화해서 조정할 수 있도록 만들어질 수 있다는 점이 큰 핵심이었다고 생각된다. InfoGAN에서는 두개의 random variable의 dependence를 측정할 수 있는 mutual information을 사용하여 Generator를 직접적으로 조정가능하게하는 semantic한 feature를 만들었다는 것이 큰 핵심이라 할 수 있다. Generative Moment Matching Network에 대해서는 전혀 알지못했는대 이것에 대해 새롭게 알 수 있던 기회였다. 간단하게 요약하면 GAN의 discriminator가 했던 역할을 Moment Matching (two-sample test)이 대체한 것이다. 이때 moment의 값을 임의의 f로 표현하여 전개했을때 kernel로 나타낼 수 있게 되며 실제로 RBF kernel을 사용하면 두 분포가 같을 때 MMD값이 0이 된다. MMD의 개념을 GAN에 녹인 것이 MMD-GAN이다. 마지막 VAE는 variational inference가 사용되는대 이것이 generative model을 위해서 사용되는 것이 latent variable의 posterior 분포를 학습하는데 사용된다는 것을 짚어준 점이 매우 좋았다고 생각한다. 세미나를 하면서 정말 즐거워하고 즐기는 모습이 인상깊었다. 평소에 관련 질문을 할 때도 매번 즐겁고 흥미로워하며 대답해주는 형록오빠에게 항상 고맙게 생각한다는 점을 이야기해주고 싶다.

금일 진행한 세미나는 'Understanding Deep Generative Models'라는 주제로 형록오빠가 다양한 generative model에 대해 소개해주는 시간을 가졌다. 다양한 알고리즘을 소개하는 것에 더불어 모델을 수식적으로 이해하고, 비교한 관점을 소개해주신 점이 인상깊었다. 소개된 주된 세가지 GAN, GMMN, VAE연구에서도 공통적으로 어떠한 분포를 가정하고, 분포를 기반으로 생성을 한다는 매커니즘은 비슷했지만 각 모델들의 구조적 특징의 차이를 명확하게 확인할 수 있었다. 분포를 가정하고 있지만, VAE와 달리 GAN과 GMMN의 경우 분포는 있지만, 어떠한 density function을 지니는지에 대해서는 명시적이지 않기 때문에 implicit density라고도 표현한다. 또한 generator가 '잘'생성되게 하기위해 구성하는 GAN의 경우 discriminator가 real로 분류하도록 모델을 학습한다. 따라서 고정된 discriminator를 두고 generator를 학습하게 된다. 이 과정에서 discriminator도 더욱 잘 분류하기 위해 학습되기 때문에 adversarial이라는 표현을 사용한다. 반면, GMMN과 VAE의 경우 실제 모델 학습에 사용된 input데이터와 생성된 output데이터를 비슷하게 되도록 학습시킨다. 이 때, GAN의 generator를 고정시킨 상태에서 최적의 discriminator를 정의하고, 해당 discriminator를 통해 generator의 수식을 해석해보면 데이터와 generator 분포 사이의 Jensen-Shannon divergence를 최소화하도록 학습하는 것을 확인할 수 있었다. 이러한 점을 착안하여 f-GAN에서는 조건을 만족하는 일반화된 f-divergence로 수식을 변형하여 학습하였다. 결과적으로 목적식의 divergence를 바꿈으로써 성능의 뚜렷한 개선이 이루어졌다고 볼 수는 어렵지만, divergence와는 차이가 크지 않았다는 점에서 이전 DC GAN, Conditional GAN에서 구조적인(conv layer/conditional concat)변형 뿐만아니라 Jensen-Shannon 학습 방식의 변형이 가능하다는 시사점을 주었다. 따라서 divergence를 Wasserstein-1 distance로 변형한 Wasserstein Gan과 outpu의 형태를 바꾼 Energy-based GAN연구에 기여할 수 있었다. GMMN의 경우 MMD값을 이용해 학습된 NN으로 embedding된 값을 kernel mapping을 통해 고차원상에서 분석이 가능하였고, 이점은 WGAN과 흡사하였다. 마지막으로 소개된 VAE는 autoencoder와 구조와 학습방식은 매우 유사하지만, 단순히 bottleneck을 구성하는 것이 아닌 잠재변수의 분포를 구성하는 것에 차이가 있다. 수식에 사용되는 용어들을 선행적으로 숙지했다고 생각했는데도 이해하는데에 많은 수식적 이해와 학습이 필요하다는 것을 다시한번 깨달았고, 이를 최대한 수용하여 연구실 인원들에게 이해하기 쉽도록 고민하고, 구성해준 형록오빠가 대단하다고 느껴졌다. 이번 방학동안 generative model에 대해 집중적으로 학습할 계획이었는데 이렇게 대표적인 모델들에 대해 비교해가며 리뷰할 수 있는 기회가 있어 나에게는 더욱 뜻깊은 시간이 아니었나 싶다. 다시 한 번 오늘 세미나를 위해 고민해준 형록오빠에게 감사하다.

오늘 전체세미나는 'Understanding Deep Generative Models'라는 주제로 형록이형이 진행하였다. Generative 모델이란 주어진 데이터 내 특성을 잘 설명하는 분포를 찾아 데이터를 sampling할 수 있도록 학습하는 모델을 말한다. 즉, data generating process를 학습하는 것으로 대표적인 모델은 (1) GAN, (2) GMMN, (3) VAE 계열로 나눌 수 있다. (1) GAN은 생성자(G)가 판별자(D)도 속일 정도로 실제 데이터와 유사한 데이터를 생성할 수 있는 모델을 만드는 것이 목적이다. 만약 잘 학습된 G 모델이 있다면 그 G로부터 생성한 데이터와 실제데이터를 D에 적용했을 때 전부 실제데이터로 예측하여 50% 정확도를 보이는 것이 좋다. (2) GMMN은 GAN에서 D 대신 판별해주는 Two-Samplt Test를 수행하는 것이 핵심이다. (3) VAE는 최근 Autoencoder 확장모델에서 가장 각광받고 있는 모델이다. Encoder와 Decoder 각 output에 분포를 가정한 것으로 Encoder의 output을 latent variables(z1,,,z10)으로 보고 decoder의 outout에서 가정한 분포를 이루는 파라미터(예를들면 정규분포의 평균 및 분산)을 기준으로 sampling할 수 있는 모델을 학습한다. 이에 더하여 다양한 접근으로 확장된 모델들을 소개해 주었다.
개인적으로 VAE를 가장 흥미로웠다. 뉴럴넷 기반으로 extraction된 feature들에 분포를 가정하여 latent variable이라고 정해준 것이 매우 인상깊었다. VAE를 이산형 시퀀스 데이터에 어떻게 적용할 수 있을 지 궁금하다. 내가 알고있는 Hidden Markov Model(HMM)에서는 시퀀스데이터의 EM 알고리즘을 기반으로 Latent variable을 학습한다. 이 HMM 구조에 EM 대신 VAE의 Inference 과정을 추가하면 어떨지 생각해보았다. 좀 더 면밀히 스터디 한 후 시퀀스 데이터에 적용해 볼 계획이다. 일단 시퀀스 데이터를 VAE로 모델링 할 수 있을 지 살펴보고 더 나아가 latent variable(z)를 기준으로 다양한 해석이 가능할 수 있을 것으로 생각한다.

금일 세미나는 Deep Generative Models에 대한 내용이었다. 세미나의 주된 내용은 GAN 을 시작으로 GMMN , VAE 순으로 설명하였다. GAN, GMMN, VAE 의 구조에 대한 설명을 시작으로 세부적으로 변화되는 순으로 진행하였다. GAN의 구조에서는 실제 데이터와 generator에서 나오는 데이터를 discriminator를 지나 구별하는 방식이었다. 이 구조에 대한 수식을 보여주면서 설명하여 이해가 쉽게 되었다. 이후에 f-GAN, Wasserstein GAN을 설명하며 Wasserstein GAN은 구조에서 discriminator를 통해 distance가 나오는 것을 알 수 있었다. 또한 EBGAN의 특징을 배웠는데 기존의 input 크기를 64*64 보다 128*128 에서도 image가 선명하게 나오는 것을 알 수 있었고 보다 큰 256*256 은 잘 나오지 않음을 알 수 있었다. EBGAN과는 구조가 비슷하지만 energy function 이 아닌 discriminator 를 사용한 BEGAN은 EBGAN보다 좀 더 좋은 성능을 보였다. Info GAN은 기존 GAN과는 다른 구조를 띄고 해석이 더 쉬워졌음을 알 수 있었다. GMMN에서는 discriminator 대신 Two-sample test(비모수 검정)을 통하여 output을 내뱉는다. VAE는 계산 방법이 두가지로 나뉘는데 monte carlo method와 approximation inference의 방법이 있다. 구조를 이해한 바로는 encoder에서 parameter을 가지고 sampling을 한 후 decoder부분에서 parameter를 통하여 sampling 을 하는 기법이다. 세미나 전반적으로 모델에 대한 수식을 가지고 설명하여 이해가 수월하게 되었다. 3시간 이상의 세미나를 해준 형록이형에게 고마움을 전하며 후에 이해가 안된 부분에 대해 다시 한 번 공부할 필요를 느꼈다.

금일 세미나는 Deep Generative Models 라는 제목으로 형록이 형이 발표를 해주었다. Generative Model은 우선 곱셈정리에서 출발 하는 개념이다. 곱셈정리에서 Prior/ Likelihood/ Posterior를 정의 할 수 있는데, 현재 데이터와 파라미터에 관한 분포를 가정해서 Posterior를 추정하는 일종의 베이지안 관점의 데이터 생성 프로세스이다. 머신러닝에 여러가지 알고리즘들이 베이지안 관점에서 기계를 학습시키지만, Generative Model분야가 가장 베이지안스럽다고 할 수 있다. 우선 GAN(Generative Adversarial Network)에서 이들의 평가 방법이 Jensen-Shannon Divergence을 사용한다. 초기에는 JS Divergence만을 사용해서 데이터를 생성하지만, f-GAN논문이 나오면서 Reverse KL Divergence와 Pearson chi-square등을 사용 할 수 있음을 알게 해주었다. 또한 Wasserstein GAN논문이 나오면서 분포의 중첩되는 부분을 이용해서 GAN의 문제인 Mode collapse문제를 해결하는 것을 설명해주었다. 이후 나온 EBGAN/ BEGAN/ Info-GAN등에 대해서도 추가적인 발표가 있었지만 이해하기가 어려웠다. GAN설명이 끝나고 난 후, Generative Moment Matching Network를 설명해주었다. GMMN은 Generator의 Output과 Training Data들을 Nonparametric Two-Sample Test를 진행하며 새로운 데이터를 생성하는 방법이다. 여기서 커널을 이용해서 1차 모멘트부터 무한대 모멘트까지 비교하면서 두 데이터들 간의 차이를 줄이는 방향으로 Discriminator를 학습하는 알고리즘을 말한다. 이후 MMD-GMMN에 대한 설명도 해주었지만 이해하기 어려웠다. 이후 VAE를 설명하기 위해서 Variational Inference에 관해서도 간략히 설명해주었다. 추론하는 것이 어렵기 때문에 Monte Carlo Method와 Approximate 방법에 대해 간략히 설명해주고 Approximate방법으로 VAE를 설명을 진행해주었다. 특히 VAE중 Beta VAE는 앞에서 언급한 Info-GAN과 매우 유사하게 보였다. 목적식에는 차이가 있겠지만, 결과 해석의 방향에서는 매우 유사했다.
이러한 Generative Model계열의 알고리즘은 매우 어려운 알고리즘이다. 하지만 형록이 형이 이를 처음부터 하나하나 수식과 이미지들을 보여주면서 설명해주어서 초기 모델에 대해서는 어느정도 이해할 수 있었지만, 뒷 부분으로 갈수록 어려웠다. 하지만 3시간의 세미나를 진행하면서 지친 기색없이 세미나를 잘 이끌어 가는 형의 능력은 매우 배울 점이었다. 베이지안 관점의 머신러닝에 많은 관심을 가지고 있는 나로써는 초기 논문부터 하나씩 차근차근 정복할 것이라는 다짐을 주게 하였다. 많은 내용을 전달하기 위해 많은 시간과 PPT를 준비해준 형록이 형에게 감사를 표한다.

금일은 'Deep Generative Models' 에 대한 세미나 내용읃 들었다. 세미나는 GAN(Generative Adversarial Networks), GMMN(Generative Moment Matching Network), VAE(Variational Autoencoder) 총 3가지에 대해서 전반적인 히스토리와 주요 내용의 설명을 중심으로 진행되었다. 후기를 시작하기에 앞서 무려 15개 가량의 논문을 읽고 방대한 양의 세미나를 청취자들이 이해하기 쉽도록 준비해 준 형록이의 모습에 정말 감사하다는 말을 전하고 싶다. Generative Model은 X를 통해 Y를 예측하고 실제 Y를 얼마나 잘 맞췄는지 확인하는 기존의 다수 Model들과는 달리, 데이터가 생성되는 Process 자체를 이해할 수 있는 Model을 만드는 데에 초점을 맞춘 것이라고 말할 수 있다. 그러다 보니 단순히 Y를 얼마나 잘 맞췄는지 Model의 Accuracy를 확인하는 것이 아닌 'GAN을 통해서 실제 데이터와 얼마나 유사하게 결과를 잘 구현했는가.'가 중요한 내용이었다. 해당 세미나에서는 주로 Image data를 얼마나 실제와 유사한 형태의 Image로 생성했는 지에 대한 결과를 볼 수 있었다. 이 부분은 나에게 상당히 흥미로운 결과였다. Generative model에 대해 정확하게 알지 못하던 내게 Generative model이 무엇인지 조금 더 직관적으로 이해할 수 있는 결과물이었기 때문이다. 해당 세미나에서는 GAN에 대해서 GAN, f-GAN, W-GAN, Energy-based GAN, Boundary Equilibrium GAN, Info GAN에 대해서 설명을 들을 수 있었다. 이후, GMMN과 VAE, Beta-VAE, AAE, WAE에 대한 설명을 들을 수 있었다. 이 중에서 인상 깊었던 것은 f-GAN에 대한 설명이었다. 'f-GAN의 경우 GAN에서 목적함수로 사용한 Js-Divergence를 다른 목적함수로 계산하면 어떨까?' 에대한 아이디어로 시작한 알고리즘이었다. 해당 알고리즘을 적용하더라도 실제 Model의 성능이 크게 향상된 부분은 없었으나, 다수 연구자들의 사고를 전환 할 수 있게 만들어 준 중요 알고리즘 중 하나였다. 이는 내 사고의 폭을 또 한번 넓히는 계기가 되었다. 단순히 Model의 성능을 높이는 것뿐 아니라, 새로운 시도를 하고 그 새로운 시도가 다른 연구자들에게 도움이 될 수 있는 연구도 가치가 있다는 사실을 깨달았기 때문이다. 이번 세미나에서 특히 감명 깊었던 것이 있었다. 다수의 알고리즘을 말해줄 때 각 알고리즘별 차이를 명확하게 설명해주고 그 차이에 따른 결과물의 변화에 대한 설명을 정확하게 해줘, 어려운 내용임에도 흐름을 어느정도는 따라갈 수 있었다는 것이었다. 이번 세미나를 통해 세미나를 준비하는 자세에 대해서 다시 한번 배울 수 있었고, 더 나아가 많은 사람들에게 도움이 되는 세미나가 무엇인지에 대해서 깊이 있게 고민해볼 수 있는 시간을 가질 수 있었다. 세미나를 정말 정성스럽게 준비해 준 형록이에게 다시 한번 감사함을 표한다.

오늘 세미나는 deep generative models 을 주제로 최근 연구가 어떻게 진행되는 지에 대한 리뷰 형식으로 진행되었다. Generative Adversarial Networks(GAN)에 대한 내용이 주를 이루었으며, Variational Autoencoder(VAE)와 Generative Moment Matching Network(GMMN)에 대해서도 다루었다. 특히, GAN은 모델의 구조를 어떻게 짜느냐에 따라 그 성능이 많이 좌지우지되는 경향이 있었는데, fGAN을 시작으로 wGAN으로 이어지는 연구들은 목적함수를 변경하여 이를 극복하고자 한다. 최근에 등장한 Progressive GAN, BigGAN 등도 모두 이를 반영한 후속 연구들이라고 알고 있다. 방대한 양이였지만, generative models에 관심이 많은 입장에선 한 눈에 연구흐름을 파악할 수 있는 좋은 기회였다.

금주 세미나는 Generative model에 대한 연구 분류 체계 소개 및 특징들을 소개하는 자리였다. 크게 GAN, GMMN, VAE 3가지 관점에서 연구들에 대한 소개가 되었다. 기존의 표본들의 특징을 살려 진짜 같은 가짜를 만들기 위해 다양한 시도들을 있었다. 특히, 네트워크의 구조를 바꾸는 연구들 보다는 목적식을 어떻게 바꿀지, 목적식 내의 함수들을 다른 것들로 어떻게 대체 할 지 등 정말 다양했다. 특히 특정 목적을 해결하기 위해서라기 보다 연구의 접근 관점의 다양성을 증진시키고자 했던 연구들도 많았고 나름의 의미가 있었다고 생각된다. 모델링 외에 실무 관점에서, 어떻게 활용 할 수 있을지 고민하는 것도 중요한 점이라 생각한다. 오랫동안 고민했고 햇갈렸던 부분들을 많이 해결 할 수 있었고, 광범위한 내용 잘 정리해서 발표해준 발표자에게 감사한 마음을 표현합니다.

오늘 세미나에서는 최근 화두가 되고 있는 Deep Learning 기반의 Generative 모델에 대해 전반적으로 모두 배울 수 있었다. Generative 모델은 무엇인가를 생성해내는 모델을 일컫는다. 생성을 하려면 생성하려는 대상의 확률 분포를 정확하게 알아야 생성을 해낼 수 있다. 일반적으로 저차원의 간단한 데이터들의 경우에는 몇 개의 데이터를 가지고서 해당 데이터의 분포를 쉽게 추정할 수 있다. 그리고 추정된 분포를 이용해 데이터를 생성하면 된다. 하지만 최근 기계학습 분야에서 주 분석 대상이 되고 있는 이미지의 경우는 워낙 고차원의 데이터이기 때문에 이러한 확률분포를 추정하는 것이 어려웠다. 최근에 Generative Adversarial Network, Variational Autoencoder라는 방법들이 등장하면서 이러한 어려운 문제 해결에 획기적인 돌파구를 마련했다. 이들 방법들의 공통점은 Random 하게 생성된 Latent Variable에서Decoder를 이용해 우리가 가지고 있는 학습 데이터를 생성해내게끔 최적화를 한다. GAN 같은 경우에는 Decoder가 생성한 이미지와 실제 이미지의 분류가 잘 이뤄지지 않게끔 Encoder를 학습시키면서 Decoder도 학습해 나간다. 이렇게 하면 결국에는 Encoder가 실제인지 가짜인지 확인하지 못하게 속일 수 있는 Decoder가 학습되게 된다. 추후에는 이러한 Decoder를 이용해 다양한 이미지를 생성할 수 있다. 결과적으로 누적확률 함수의 역함수를 얻었다고 볼 수 있는 것이다. 그래서 결과적으로 정확히 확률 함수를 얻지는 못하지만 궁극적인 데이터 생성에 필요한 확률 분포를 학습했다고 설명할 수 있다. Variational Autoencoder 같은 경우에는 Autoencoder를 변형한 방법론이다. 기존 Autoencoder의 Latent Space의 특징상 Decoder를 통해 실제와 유사한 이미지를 만들기 어렵다. 이러한 한계점은 Latent Space의 분포 함수를 우리가 알 수 없다는 점에 있다. 이를 해결하기 위해 VAE는 Latent Space의 분포를 Prior로서 가정을 하고 이를 만족하는 Random Variable이 생성되게끔 한다. 그리고 이 Random Variable로 Decoder를 학습함으로서 결과적으로 Interpolation이 잘 되는 Generative Model을 만들 수가 있다. 그 외에 Generative Momentum Metching이라는 방법도 있었는데, 고차원 Latent Space에서의 실제와 생성 이미지의 유사도를 키우도록 는 방법이었는데 신선하고 흥미로웠다. Generative Model은 비지도 학습을 통해 데이터 분포를 학습할 수 있다는 측면에서 굉장히 많은 주목을 받고 있는 흥미로운 분야이다. 오늘 세미나를 통해 발전 흐름을 잘 알 수 있었고, 관련 내용을 더 공부해보면 좋겠다는 생각이 들었다.

금일 세미나에서는 형록이가 deep generative models 주제에 대해 연구가 어떤 식으로 진행되는지 연구 흐름을 리뷰했다. 이번 세미나에서는 deep generative model의 큰 줄기라고 할 수 있는 variational autoencoder (VAE), generative adversarial networks (GAN), generative moment matching network (GMMN)에 대한 배경과 이론을 설명하고, 이들 모델의 다양한 variants에 대해 소개하였다. 특히 GAN은 최근 많은 연구자들이 연구하면서 다양한 모델들이 제안되어 연구흐름을 파악하기 어려웠는데, 그 흐름을 잘 정리 했다. 이번 세미나에서는 주로 이미지 도메인에서 모델을 설명했는데, 텍스트와 같이 discrete한 관측치를 generation하기 위해서는 기존의 GAN에 critical한 한계가 있기 때문에 어려움이 있다. 최근 연구에서는 이를 극복하기 위한 다양한 연구가 시도되고 있기 때문에 텍스트 분야에서의 GAN도 한번쯤 정리하면 좋을 것 같다는 생각을 했다.