Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Haezoom Inc.
인공신경망을 이용한 generative model로서 많은 관심을 받고 있는 Variational Autoencoder (VAE)를 보다 잘 이해하기 위해서, 여러 가지 재미있는 관점에서 바라봅니다. VAE 및 머신러닝 일반에 지식을 가지고 있는 청중을 대상으로 진행된 세미나 자료입니다. 현장에서 구두로 설명된 부분은 슬라이드의 회색 박스에 보충설명을 적어두었습니다.
발표자: 곽동현(서울대 박사과정, 현 NAVER Clova)
강화학습(Reinforcement learning)의 개요 및 최근 Deep learning 기반의 RL 트렌드를 소개합니다.
발표영상:
http://tv.naver.com/v/2024376
https://youtu.be/dw0sHzE1oAc
Coursera Machine Learning by Andrew NG 강의를 들으면서, 궁금했던 내용을 중심으로 정리.
내가 궁금했던건, 데이터를 분류하는 Decision boundary를 만들때...
- 왜 가중치(W)와 decision boundary가 직교해야 하는지?
- margin은 어떻게 계산하는지?
- margin은 어떻게 최대화 할 수 있는지?
- 실제로 margin을 최대화 하는 과정의 수식은 어떤지?
- 비선형 decision boundary를 찾기 위해서 어떻게 kernel을 이용하는지?...
http://blog.naver.com/freepsw/221032379891
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Haezoom Inc.
인공신경망을 이용한 generative model로서 많은 관심을 받고 있는 Variational Autoencoder (VAE)를 보다 잘 이해하기 위해서, 여러 가지 재미있는 관점에서 바라봅니다. VAE 및 머신러닝 일반에 지식을 가지고 있는 청중을 대상으로 진행된 세미나 자료입니다. 현장에서 구두로 설명된 부분은 슬라이드의 회색 박스에 보충설명을 적어두었습니다.
발표자: 곽동현(서울대 박사과정, 현 NAVER Clova)
강화학습(Reinforcement learning)의 개요 및 최근 Deep learning 기반의 RL 트렌드를 소개합니다.
발표영상:
http://tv.naver.com/v/2024376
https://youtu.be/dw0sHzE1oAc
Coursera Machine Learning by Andrew NG 강의를 들으면서, 궁금했던 내용을 중심으로 정리.
내가 궁금했던건, 데이터를 분류하는 Decision boundary를 만들때...
- 왜 가중치(W)와 decision boundary가 직교해야 하는지?
- margin은 어떻게 계산하는지?
- margin은 어떻게 최대화 할 수 있는지?
- 실제로 margin을 최대화 하는 과정의 수식은 어떤지?
- 비선형 decision boundary를 찾기 위해서 어떻게 kernel을 이용하는지?...
http://blog.naver.com/freepsw/221032379891
xgboost를 이해하기 위해서 찾아보다가 내가 궁금한 내용을 따로 정리하였으나, 역시 구체적인 수식은 아직 모르겠다.
요즘 Kaggle에서 유명한 Xgboost가 뭘까?
Ensemble중 하나인 Boosting기법?
Ensemble 유형인 Bagging과 Boosting 차이는?
왜 Ensemble이 low bias, high variance 모델인가?
Bias 와 Variance 관계는?
Boosting 기법은 어떤게 있나?
Xgboost에서 사용하는 CART 알고리즘은?
발표자: 이활석(NAVER)
발표일: 2017.11.
최근 딥러닝 연구는 지도학습에서 비지도학습으로 급격히 무게 중심이 옮겨 지고 있습니다. 본 과정에서는 비지도학습의 가장 대표적인 방법인 오토인코더의 모든 것에 대해서 살펴보고자 합니다. 차원 축소관점에서 가장 많이 사용되는Autoencoder와 (AE) 그 변형 들인 Denoising AE, Contractive AE에 대해서 공부할 것이며, 데이터 생성 관점에서 최근 각광 받는 Variational AE와 (VAE) 그 변형 들인 Conditional VAE, Adversarial AE에 대해서 공부할 것입니다. 또한, 오토인코더의 다양한 활용 예시를 살펴봄으로써 현업과의 접점을 찾아보도록 노력할 것입니다.
1. Revisit Deep Neural Networks
2. Manifold Learning
3. Autoencoders
4. Variational Autoencoders
5. Applications
[PR12] categorical reparameterization with gumbel softmaxJaeJun Yoo
(Korean) Introduction to (paper1) Categorical Reparameterization with Gumbel Softmax and (paper2) The Concrete Distribution: A Continuous Relaxation of Discrete Random Variables
Video: https://youtu.be/ty3SciyoIyk
Paper1: https://arxiv.org/abs/1611.01144
Paper2: https://arxiv.org/abs/1611.00712
xgboost를 이해하기 위해서 찾아보다가 내가 궁금한 내용을 따로 정리하였으나, 역시 구체적인 수식은 아직 모르겠다.
요즘 Kaggle에서 유명한 Xgboost가 뭘까?
Ensemble중 하나인 Boosting기법?
Ensemble 유형인 Bagging과 Boosting 차이는?
왜 Ensemble이 low bias, high variance 모델인가?
Bias 와 Variance 관계는?
Boosting 기법은 어떤게 있나?
Xgboost에서 사용하는 CART 알고리즘은?
발표자: 이활석(NAVER)
발표일: 2017.11.
최근 딥러닝 연구는 지도학습에서 비지도학습으로 급격히 무게 중심이 옮겨 지고 있습니다. 본 과정에서는 비지도학습의 가장 대표적인 방법인 오토인코더의 모든 것에 대해서 살펴보고자 합니다. 차원 축소관점에서 가장 많이 사용되는Autoencoder와 (AE) 그 변형 들인 Denoising AE, Contractive AE에 대해서 공부할 것이며, 데이터 생성 관점에서 최근 각광 받는 Variational AE와 (VAE) 그 변형 들인 Conditional VAE, Adversarial AE에 대해서 공부할 것입니다. 또한, 오토인코더의 다양한 활용 예시를 살펴봄으로써 현업과의 접점을 찾아보도록 노력할 것입니다.
1. Revisit Deep Neural Networks
2. Manifold Learning
3. Autoencoders
4. Variational Autoencoders
5. Applications
[PR12] categorical reparameterization with gumbel softmaxJaeJun Yoo
(Korean) Introduction to (paper1) Categorical Reparameterization with Gumbel Softmax and (paper2) The Concrete Distribution: A Continuous Relaxation of Discrete Random Variables
Video: https://youtu.be/ty3SciyoIyk
Paper1: https://arxiv.org/abs/1611.01144
Paper2: https://arxiv.org/abs/1611.00712
Variational Auto Encoder, Generative Adversarial ModelSEMINARGROOT
Generative Model(Variational Auto Encoder, Generative Adversarial Model)
References:
오토인코더의 모든 것 by 이활석 (NAVER)
Youtube: https://youtu.be/rNh2CrTFpm4, Slideshare: https://www.slideshare.net/NaverEngineering/ss-96581209
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기 by 최윤제 (NAVER)
Youtube: https://youtu.be/odpjk7tGY0, Slideshare: https://www.slideshare.net/NaverEngineering/1-gangenerative-adversarial-network
Theory and Application of Generative Adversarial Networks by Ming-Yu Liu, Julie Bernauer, Jan Kautz (NVIDIA)
Youtube: https://youtu.be/KudkR-fFu_8, Slideshare: https://www.slideshare.net/mlreview/tutorial-on-theory-and-application-of-generative-adversarial-networks
Tutorial on Variational Autoencoders by Carl Doersch (Carnegie Mellon / UC Berkeley)
Arxiv: https://arxiv.org/pdf/1606.05908.pdf
Generative Adversarial Nets (2014) NIPS by Goodfellow et al
https://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf
형태소분석기에 왜 CRF가 쓰이는지 이해하기 위해 정리한 슬라이드입니다. Graphical Models의 필요성부터 시작해 방향성(Bayesian Networks), 비방향성(Markov Random Fields) Graphical Models의 정의와 조건부독립 성질을 살펴보고, Generative와 Discriminative 모델의 차이점을 정리한 뒤 Discriminative + Undirected 모델로서 Conditional Random Fields를 소개합니다. 끝으로 형태소분석에 CRF를 사용하는 테크닉을 간단히 소개합니다.
Variational이라는 단어로는 아무것도 안떠오릅니다.
그래서, '꿩 대신 닭'이라고 표현해 봤습니다.
초반 독자적인 그림을 통해 개념잡기가 쉬워요.
설명부분은 초록색으로 표시했습니다.
확률변수(random variable)부터 막히면, 아래 블로그 글을 읽어 보세요.
https://blog.naver.com/nonezerok/221428251262
Coursera Machine Learning (by Andrew Ng)_강의정리SANG WON PARK
단순히 공식으로 설명하지 않고, 실제 코드 및 샘플데이터를 이용하여 수식의 결과가 어떻게 적용되는지 자세하게 설명하고 있다.
처음 week1 ~ week4 까지는 김성훈 교수님의 "모두를 위한 딥러닝"에서 한번 이해했던 내용이라 좀 쉽게 진행했고, 나머지는 기초가 부족한 상황이라 다른 자료를 꽤 많이 참고하면서 학습해야 했다.
여러 도서나 강의를 이용하여 머신러닝을 학습하려고 했었는데, 이 강의만큼 나에게 맞는것은 없었던거 같다. 특히 Octave code를 이용한 실습자료는 나중에도 언제든 활용가능할 것 같다.
Week1
Linear Regression with One Variable
Linear Algebra - review
Week2
Linear Regression with Multiple Variables
Octave[incomplete]
Week3
Logistic Regression
Regularization
Week4
Neural Networks - Representation
Week5
Neural Networks - Learning
Week6
Advice for applying machine learning techniques
Machine Learning System Design
Week7
Support Vector Machines
Week8
Unsupervised Learning(Clustering)
Dimensionality Reduction
Week9
Anomaly Detection
Recommender Systems
Week10
Large Scale Machine Learning
Week11
Application Example - Photo OCR
2. Variational Autoencoder
2
잠재변수 𝑧
데이터 𝑥
우도함수 𝑝(𝑥|𝑧)
𝑧의 사전확률 𝑝(𝑧)
𝑥의 사전확률 𝑝 𝑥
𝑧가 주어진 상황에서 𝑥가 나타날 확률 𝑝 𝑥 𝑧 : 우도
𝑥가 주어진 상황에서 𝑧가 나타날 확률 𝑝 𝑧 𝑥 : 사후확률
사후확률 𝑝(𝑧|𝑥)를 알기 어렵기 때문에 근사하는 간단한
함수를 찾음 𝑞(𝑧) 또는 𝑞(𝑧|𝑥)
3. Variational inference
흰색: 잠재변수(z)
회색: 관측변수(x)
- 주어진 데이터(𝑥)와 주어지지 않은 잠재변수(𝑧)가 모델에 관여하는 상황.
- 어떤 잠재변수로부터 주어진 데이터를 만들어낼 확률𝑝(𝑥|𝑧)이 가장 높은 모델과, 그때 최적의
잠재변수를 만드는 함수 𝑝(𝑧|𝑥)를 찾아야한다고 생각해보자.
- 이 때, 사후확률 분포 𝑝(𝑧|𝑥) 를 계산하는 것이 불가능에 가까울 정도로 어려운 경우가 많다.
잠재변수간 상호작용 때문에 marginal probability 계산이 힘들다.
Marginal probability: 𝑝(𝑥) = σ 𝑧 𝑝(𝑥, 𝑧)
3
5. Variational inference
사후확률 𝑝(𝑧|𝑥)에 근사한 𝑞(𝑧)를 만들기 위해 두 분포의 차이를 줄여야 함.
→ 두 확률분포의 차이를 계산하는 KL-Divergence 개념 활용
사후확률 분포 𝑝(𝑧|𝑥)와 𝑞(𝑧) 사이의 KLD를 계산하고, KLD가 줄어드는 쪽으로 𝑞(𝑧)를 조금
씩 업데이트하는 과정을 반복하면 사후확률을 잘 근사하는 𝑞∗
(𝑧)를 얻게 될 것
→ 이 과정이 Variational Inference
KLD를 줄어들게 하는데 몇가지 방법이 있음.
5
7. 1. Variational Inference with Monte Carlo
Sampling
몬테카를로 방법(Monte Carlo Method): 랜덤 표본을 뽑아 함수의 값을 확률적으로 계산하는 방법.
이를 이용하여 KLD 텀에 대한 근사식을 유도
7
8. 1. Variational Inference with Monte Carlo
Sampling
실제 문제에서는 사후확률 분포𝑝(𝑧|𝑥)에 대해 아무런 정보가 없지만 몬테카를로 방법을
이용하면 𝑞(𝑧)를 어떤 분포로든 설정할 수 있다.
Ex) 사후분포에 대한 정보가 없어서 𝑞(𝑧)를 정규분포로 정해 볼 경우
1. 이 정규분포에서 K개의 z들을 뽑으면 KLD의 근사값을 계산 가능.
2. 정규분포의 파라메터(평균, 분산)를 조금씩 바꿔가면서 KLD 근사값을 최소로 하는
파라메터를 구할 수 있을 것.
3. 구해진 정규분포가 바로 VI의 결과.
≈
8
9. 2. Variational Inference with SGD
KLD를 줄이는 방향으로 𝑞(𝑧)의 파라메터를 업데이트 하여 VI하는 것도 가능
→ Gradient를 계산하기 위해 KLD가 미분가능 해야함
Ex)
𝑞 𝑧 는 정규분포 𝜃 𝑞 = 𝜇 𝑞, 𝜎 𝑞 , 𝑝 𝑧 는 베타분포 𝛼, 𝛽 라고 두고 𝐾𝐿𝐷 식을 𝜃 𝑞에 대해 미분해 보자.
(적절한 𝜃 𝑞를 추론하려 하는것)
이때, z가 𝜃 𝑞를 파라메터로 갖는 𝑞에 의해 랜덤 샘플링되기 때문에 𝜃 𝑞 에 대한 미분이 불가능
→ z대신 노이즈를 샘플링해서 z를 계산하는 reparameterization trick 사용
9
10. 2. Variational Inference with SGD
여기서도 몬테카를로 샘플링을 이용하여 KLD의 gradient 근사값을 계산.
→ Gradient 이용하여 𝜃 𝑞를 수정함으로써 사후확률 분포 𝑝(𝑧|𝑥)에 근사하는 𝑞(𝑧)를 찾을 수 있다.
10
11. Vatiational EM algorithm
- 지금까지는 사전확률함수 𝑝 𝑧 와 우도함수 𝑝 𝑥 𝑧 를 이미 알고 있다는 전제 하에 𝑝 𝑧 𝑥
에근사하는 𝑞 𝑧 를 찾는 𝑉𝐼 과정을 설명하였음.
- 하지만 실제 문제에서는 사전호가률과 우도함수의 파라메터 또한 알고 있지 못하는 경우가 많다.
우도함수를 모르는 상황에서 VI를 하기 위해선?
1. 사전확률 𝑝 𝑧 는 상수로 고정하여도 됨
2. 사후확률 𝑝(𝑧|𝑥)에 근사한 𝑞(𝑧)의 파라메터를 찾는 것과 동시에, 우도함수 𝑝(𝑥|𝑧)의 파라메터 또
한 추정해야 함
3. But, 이 둘을 동시에 찾는 것은 불가능.
→ 한 파라메터를 고정하고 나머지 파라메터를 최적화하는 것을 반복하는 EM algorithm 사용
11
12. Vatiational EM algorithm
𝑞(𝑧)의 파라메터를 𝜃 𝑞, 우도함수𝑝(𝑥|𝑧)의 파라메터를 𝜃𝑙라고 둘 때
EM algorithm은 다음과 같은 과정을 수렴할 때까지 반복함
E-step에서는 KLD를 줄이기 위해 q만을 업데이트하므로 이 과정에서 𝑝(𝑥) 는 변하지 않음.
KLD를 줄이기 위해선 M-step을 통해 𝑝(𝑥)또한 줄여야 한다.
log 𝑝(𝑥)에 대해 정리하면,
- Expectation: 우도함수 𝑝 𝑥 𝑧 의 파라메터 𝜃𝑙을 고정한 상태에서 𝐷 𝐾𝐿(𝑞(𝑧)||𝑝 𝑧 𝑥 )를
줄이는 q의파라메터 𝜃 𝑞를 찾는다.(앞에 소개한 방법 이용)
- Maximization: E-step에서 찾은 𝜃 𝑞를 고정한 상태에서 evidence 𝑝 𝑥 를 최대화하
는 우도함수 𝑝(𝑥|𝑧)의 파라메터 𝜃𝑙를 찾는다.
12
13. Vatiational EM algorithm
이 때, KLD는 항상 양수이므로
우변이 Evidence인 𝑝(𝑥)의 하한을 나타내므로 Evidence Lower Bound(ELBO)라고 부름
양수
M-step 설명중임
13
14. Vatiational EM algorithm
ELBO 두 분포의 차이
(줄이고자 하는것)
ELBO를 최대화 시킨다면?
→ 등호를 만족시키기 위해서 KLD가 최소화 될 것.
𝜃 𝑞가 고정된 상태에서 우도함수𝑝(𝑥|𝑧)의 파라메터 𝜃𝑙
를 KLD가 최소화되는 방향으로 업데이트 하는 것임
이 또한 reparameterization trick을 이용한 SGD를
사용하면 된다.(참고: http://edwardlib.org/tutorials/klqp)
Prior, 상수취급
M-step 설명중임
14