Autoencoder
- Unsupervised learning (1)
- ML density estimation (2)
- Nonlinear Dimensionality reduction (Manifold learning) (3)
- Generative model learning (4)
- 입력 = 출력
AutoEncoder 학습 시
- 비지도학습이며 -> Unsupervised learning (1)
- loss는 negative ML(Most likelihood) -> ML density estimation (2)
AutoEncoder에서
- Encoder는 차원 축소의 역할 -> Nonlinear Dimensionality reduction (3)
- Encoder를 지나면 차원이 줄어듦
- Decoder는 생성 모델의 역할 -> Generative model learning (4)
- Encoder를 지나 축소된 벡터로 Decoder를 지나면 이미지를 생성함
ML
- Trainset 모으기
- Model define (Output, Loss 등)
- Learning / Training
- Predicting / Testing
DL
- Model 변경 (Layer, Loss 등)
- Backpropagation의 assumption
- Trainset 전체의 loss는 각 sample의 loss의 합과 같다
- loss function은 정답 label과 model의 output으로만 구성된다
- DNN을 학습시키는 것 = MLE
- cross-entropy가 backpropagation이 잘 됨
- 초기값의 영향이 큼
- MSE는 첫 Layer에서 activation function을 미분해야하는데, 이를 계속 반복하면 기울기 소실 발생
- CE는 이러한 term이 없어 조금 더 강건함
- output이 continuous하면 MSE, discrete하면 CE - MLE 관점
- MLE는 미리 예상한 output의 확률분포의 모수(평균, 분산 등)을 찾는 것임
- 따라서 이 확률 분포를 따르도록 파라미터 조정
- samplig 시 이 확률 분포 내에서 생성, 고정 입력 / 유동 출력
2장
Manifold Learning
- Dimensional reduction, for
- Data compression
- Data visualization
- Curse of dimensionality (Manifold Hypothesis)
- dimension이 증가할수록 차원의 크기가 기하급수적으로 커져 데이터의 밀도는 sparse해진다
- Discovering most important features (Reasonable distance mertric Needs disentagling the underlying explantaory factors) - 압축된 값은 중요할 것이다
- Manifold : trainset의 데이터를 최대한 아우르는 subspace
- Manifold Hypothesis
- 고차원 데이터의 밀도가 낮고, 이를 포함하는 저차원의 manifold가 있다.
- 이 저차원 manifold를 벗어나면 급격히 sparse해진다.
- Dimensional reduction(Linear)
- Principal Component Analysis
- Linear Discriminant Analysis
- Dimensional reduction(Non-Linear)
- Autoencoder
- t-distributed stochastic neighbor embedding
- isomap
- Locally-linear embedding
3장
Autoencoder
- 입력과 출력이 같음
- 차원이 줄어들었다가(encoder) 다시 늘어남(decoder) - 모래시계 모양
- 완전히 줄어든 가운데 Layer - Bottleneck Hidden Layer
- = Code
- = Latent Variable
- = Feature
- = Hidden representation
- Loss는 입력과 출력의 차이로 계산 (reconstructor error)
- Unsupervised learning -> Supervised learning(Self learning)으로 변환 가능
- Encoder가 최소한 trainset은 압축을 잘 한다
- Decoder(generator)는 최소한 trainset은 만들 수 있다
- Denoising Autoencoder(더 강건한 manifold 생성)
- Stochastic Contractive AutoEncoder(SCAE)
- noise있는 input과 없는 input의 차이를 loss function에 추가
4장
Variational Autoencoder
- 사실 AutoEncoder랑 별 상관 없음
- AutoEncoder - Encoder가 핵심 (Manifold)
- Variational AutoEncoder - Decoder가 핵심 (Generation)
- trainset에 있는 x가 생성될 확률을 높이는 것이 목적
- Generator에서 처음 몇 개의 Layer들은 latent space로의 mapping 수행
- 나머지 Layer가 Generation 수행
- Generator를 가우시안 분포로 가정할 경우 제대로 학습되지 않음
- Variational Inference
- Generator가 이상적인 값을 생성하는 sampling 함수(True Posterior)를 모르기 때문에 사용
- True Posterior를 근사하여 학습하는 것
- = ELBO(Evidence Lower BOund) + KL divergence(두 확률분포 간의 거리)
- KL을 minimize = ELBO를 maximize
- Optimization : max ELBO(Variational Inference) & max Likelihood - 둘 다 ELBO 식에 들어가 있다
- Encoder - Posterior - Inference Network
- Decoder - Generator - Generation Network
- ELBO : Reconstruction Error(x를 넣었을 때 x가 나올 확률) + Regularization(prior로 설정한 분포와 비슷할 확률)
- Regularization - KL divergence로 계산 가능(이상적인 분포와 내가 설정한 분포의 거리)
- 보통 가우시안 분포로 설정함(계산 복잡)
- 다른 분포를 사용하기 위해 AAE(Adversarial AutoEncoder)
- Reconstruction Error - Sampling을 할 때 평균과 분산이 랜덤하게 정해지기 때문에 역전파가 불가능했지만, 이를 변형하면 같은 분포로 역전파를 가능하게 할 수 있다.
- 베르누이 분포를 따른다고 가정할 때, max Likelihood는 Cross-entropy로 변형할 수 있다.
- 마찬가지로 가우시안 분포를 따른다고 하면, MSE가 된다.
- AE와 VAE는 code관점에서 ELBO의 Regularization(KL divergence)외에는 모두 같다
- AE에서는 manifold 공간에서 어떤 값이 의미있는 이미지를 generation해야 하는지 분산이 큼
- VAE에서는 prior가 이상적인 posterior와 근사하기 때문에 분산이 작음
- manifold 공간에서 같은 숫자를 생성하는 값은 정규분포를 따름
- manifold에서 Sampling - 의미있는 이미지를 생성하기 위한 feature 추출
- CVAE - VAE에서 정답 label을 알고 있을 때, VAE는 label이 없음
- encoder, decoder에 label 추가
- ELBO 식은 변화없음, label 정보만 concat시켜주면 됨
- semisupervised learning - label이 일부만 주어질 때
- VAE보다 빨리 수렴함
- Condition으로 준 label을 제외한 feature를 학습함(rotation, weight)
- AAE - VAE의 KL term을 변경하기 위해(가우시안 분포 외의 분포를 사용할 때)
- GAN (target distribution과 generation된 sample들의 분포가 같게 만드는 방법)
- 확률분포를 정하지 않음
- Discriminator : 진짜를 찾을 확률 D(x)를 maximize하는 것이 목표
- Generator : 진짜를 찾을 확률 D(x)를 minimize하는 것이 목표
- Generator가 생성한 sample이 target distribution과 같아진다
- GAN의 Discriminator를 채용하면 KL term이 필요 없어짐
- Training
- Reconstruction error update
- Disciminator update
- Generator update
- label을 Discriminator에 전달
- manifold를 원하는 형태로 생성 가능
- AAE에서는 VAE보다 AE가 더 좋음
- GAN (target distribution과 generation된 sample들의 분포가 같게 만드는 방법)
5장
Applications
- AutoEncoder - dimension reduction 성능이 좋음
- img, text, sound, 3D model, multi-modal 등
- VAE - Generation
- pixel-wise의 평균값을 loss로 취해 정확하지 않은 데이터가 생성
- VAE + GAN
- BEGAN, stackGAN, SEGAN 등
- 다양한 도메인에 특화된 모델 등장