일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- classification
- Regression
- AI
- GoogLeNet
- Manager
- sigmoid
- Gated Skip Connection
- Linear
- ResNet
- iTerm2
- Skip Connectioin
- DL
- jupyter
- Skip Connection
- Inception V1
- Optimizer
- vim-plug
- version
- Inception Module
- Generative
- Bottleneck Layer
- Vanilla RNN
- cnn
- Peephole Connection
- DCGAN
- Residual Connection
- virtualenv
- RNN
- python
- GCN
- Today
- Total
IT Repository
(1) Introduction of Generative Models 본문
참고.
생성 모델은 다른 딥러닝 모델 구조에 비해 통계적인 부분에 이론적 베이스를 크게 두고 있습니다.
기본적인 통계 지식이 있는 상태에서 학습하시기를 권장합니다.
Supervised vs Unsupervised Learning¶
생성 모델(Generative Model)은 기존에 학습했던 MLP, CNN, RNN과 같은 모델을 학습하는 것과는 다른 방식으로 학습이 진행됩니다.
기존의 구조를 학습시키기 위해서 우리는 데이터(x)와 레이블(y)을 사용하여 손실값을 계산했습니다.
이러한 학습 방법은 Supervised Learning이라고 합니다.
그러나 생성 모델은 데이터(x)만을 사용해서 학습이 진행되는 Unsupervised Learning 입니다.
따라서 생성 모델에 대해 알아보기에 앞서 Supervised와 Unsupervised Learning에 대해서 간단히 정리하고 넘어가겠습니다.
Supervised Learning¶
Data: (x, y)
데이터(x)와 레이블(y)를 사용
Goal:
x를 y로 매핑하는 함수를 학습
Examples:
Classification, Regression,
Object detection (이미지 속의 특정 Object를 검출하고 Boxing),
Semantic segmentation (이미지에 있는 픽셀이 어떠한 Class에 속하는지 분류),
Image captioning, etc
Unsupervised Learning¶
Data: x
데이터(x)만 사용하고, 레이블(y)는 사용하지 않음
따라서 Supervised Learning에 비해서 트레이닝 데이터를 준비하는데에 드는 비용이 적음
Goal:
데이터의 이면에 감춰진 구조를 학습
Examples:
Clustering, Dimensionality reduction,
Feature learning (어떠한 고차원의 Feature를 학습하기 위한 방법, 예를 들어 AutoEncoders),
Density estimation (1차원 혹은 2차원 이상으로 분포하는 어떠한 값을 나타내는 확률 밀도 함수를 찾아내는 것), etc
Generative Models¶
앞서 언급하였던 것과 같이 생성 모델은 비지도 학습에 속하는 모델 구조입니다.
인풋으로 실제 데이터의 분포에서 샘플링한 데이터(~ $ P_{data}~(x)$)를 사용해서, 모델이 갖는 분포($P_{model}$)가 실제 데이터의 분포($P_{data}$)에 근사하도록 학습하는 것을 목표로 합니다.
실제 데이터의 분포와 유사해진 모델의 분포에서 샘플링하면(~ $P_{model}~(x)$) 실제 데이터와 유사한 새로운 데이터를 생성됩니다.
In: Training data (~ $ P_{data}~(x)$)
Out: Generate new samples (~ $P_{model}~(x)$) from same distribution
Goal:
$P_{model}$이 $P_{data}$에 근사하도록 학습하는 것
2차원으로 분포하는 픽셀 값의 density estimation, 즉 픽셀 값의 밀도를 예측
flavors:
- Explicit density estimation: $P_{model}$의 확률 밀도 함수를 정확하게 식으로 구할 수 있는 경우
- Implicit density estimation: 정확하게 구할 수는 없지만, $P_{model}$에서 샘플링은 가능한 경우
($P_{model}$에서 샘플링조차 불가능하다면 생성 모델로써 데이터를 생성하는 것은 원천적으로 불가능해집니다.)
Why Generative Models?¶
생성 모델은 기존의 모델들이 할 수 없는 실제와 유사한 샘플을 생성하기 위해 디자인된 모델입니다.
그 아웃풋을 사용하여 아래와 같은 작업을 할 수 있습니다.
- Artwork
- Clonization
- Super-resolution
- Colorization
- Etc
Taxonomy of Generative Models¶
아래는 확률 밀도 함수를 정의할 수 있는지에 따라 생성 모델의 종류를 구분한 것입니다.
- Generative models
- Explicit density
- Tractable density: 실제로 density를 계산할 수 있는 경우
- NADE
- MADE
- PixelRNN/CNN
- Approximate density: density의 form을 알고 있고, 그를 통해 근사하는 경우
- Variational (VAE)
- Markov Chain (Boltzman Machine)
- Tractable density: 실제로 density를 계산할 수 있는 경우
- Impicit density: density의 form을 알 수 없고, 특정 분포로 전제하지도 않는 경우
- Direct (GAN)
- Markov Chain (GSN)
- Explicit density
'Generative > Study' 카테고리의 다른 글
(3) GAN (Generative Adversarial Network) (0) | 2020.01.19 |
---|---|
(2) VAE (Variational AutoEncoder) (12) | 2020.01.18 |
(0) Overview of Generative Models (0) | 2020.01.14 |