본문 바로가기

카테고리 없음

Autoencoder

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

  1. Trainset 모으기
  2. Model define (Output, Loss 등)
  3. Learning / Training
  4. 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
      1. Reconstruction error update
      2. Disciminator update
      3. Generator update
    • label을 Discriminator에 전달
    • manifold를 원하는 형태로 생성 가능
    • AAE에서는 VAE보다 AE가 더 좋음

5장

Applications

  • AutoEncoder - dimension reduction 성능이 좋음
    • img, text, sound, 3D model, multi-modal 등
  • VAE - Generation
    • pixel-wise의 평균값을 loss로 취해 정확하지 않은 데이터가 생성
  • VAE + GAN
    • BEGAN, stackGAN, SEGAN 등
    • 다양한 도메인에 특화된 모델 등장

 

 

 

 

 

Ref