ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Auto Encoder와 VAE 전 내용들 정리
    Paper Review(논문이야기) 2023. 7. 30. 20:30

    VAE 논문을 읽던 도중에 Auto Endcoder 및 VAE 논문에 나오는 기타 개념들을 정리할 필요가 있어서 따로 정리해보려고 한다. 

    내용 참조는 Auto Encoder의 모든 것이라는 네이버 D2(이활석 발표자님) 강연, KAIST 스마트 설계 연구실 강남우 교수님의 딥러닝 강의를 기반으로 하였다.

    https://www.youtube.com/watch?v=o_peo6U7IRM

    https://www.youtube.com/watch?v=9mf4maQU7UY 

    Revisit Deep Neural Networks 

    DNN에 관한 개념적 설명보다는 DNN에서 사용되는 손실함수에 관한 Assumtion을 짚고 넘어간 부분

     

    전통적인 머신러닝의 단계는 다음과 같다. 

    1. Collect training data: x,y 데이터 세트

    2. define functions: 모델(모델과 파라미터 등), loss function을 정의

    3. Learn&Train

    4. Predict&Test

    대다수, 고정된 입력값에 대해서는 고정된 출력값이 나옴

     

    DNN에서는 

    2. define function 부분에서 

    모델의 구조(RNN, CNN 등의 종류와 layer의 크기 등등)을 정의, Loss function도 정의한다. 

    이때, Loss function은 

    MSE, Cross entropy 등이 있다. 

    이들은 아래와 같은 가정을 만족해야한다. 

    Loss Function Assumtion
    Assumtion1: Total loss of DNN over training sample is the sum of loss for each training sample
    (전체 Totatl loss는 각각 sample의 loss의 합과 같아야한다)
    Assumtion2: Loss for each training example is a function of final output of DNN
    (네트워크의 종단값과 첫(트레이닝) 값만 이용하여 Loss function을 구성하겠다)

    3. Learning&Training: Gradient Descent

    MLE 관점에서 Loss function의 비교(MSE vs Cross Entropy) & Backpropagation

    Loss function의 관점을 정해진 확률분포에서 해당하는 출력이 나올 확률을 최대화하는 관점으로 생각하자. 

    즉, 우리가 정해놓은 확률분포의 모수를 모델에서 추정한다라는 관점이라고 해석하자. 

    (이는 x에 따라 y가 어떤 확률 분포를 따른다고 가정한 후, x가 주어졌을 때 그때에 따라 y가 될 확률을 최대화 시키는 그 확률 분포를 구하는 것이다)

     

    재미있는 것은 해당 관점에서 분포에 따라 Loss function이  MSE와 Cross Entorpy로 유도 된다는 것을 증명할 수 있다는 것이다. 

    우선 우리의 목적은

    분포의 모수를 찾아보자

    주어진 데이터를 제일 잘 설명하는 모델을 찾는 것이다. 즉, MLE의 음수를 minimize하는 것이다. 

    이것은 IID 조건 아래에서

    위에서 언급한 loss function의 조건을 만족시킨다(log라 +로 변함)

     

    우리는 확률분포 모델을 정규분포 혹은 베르누이분포로 가정하는데(쉽운 확률 분포)

    위의 argmin을 풀면 각각 MSE와 Cross-entropy 수식과 같다. 

     

    위의 내용들은 Yoshua Bengio's의 slide에 잘 요약되어 설명되어있다. 

    즉, 우리는 P(Y/X)를 추정하려고 하는데, 이 X는 주어지지 않고 모델의 ouput으로 나오는 모수로 추정되는 분포이다. 

    Auto Encoder

    Manifold learning을 위한 장치, encoder의 성능에 집중하자 

    Auto Encoder란 input과 ouput이 동일한 네트워크

    encoder는 학습데이터를 주요한 latent vector(or space)로 표현하고, decoder는 학습데이터를 잘 만들어내는 방법이다

    Auto Encoder가 주목받았던 이유는 Unsupservised Learning문제를 Supervised Learning으로 바꾸어서 해결했기에 주목받았다(나 자신, x가 label로 작용되기에)

     

    즉, z = h(x), y= g(z) = g(h(x))이다. 이때 Loss는 x,y의 loss function으로 구성된다. 

    선택되는 Loss function은 MSE 나 cross-entropy를 이용하며 그 기준은 위를 참고하면 된다(Maximum likelihood 관점)

     

     

     

    Auto Encoder의 Decoder 부분은 보통 일반적인 뉴럴 네트워크(linear+nlinear)에서 DNN을 이용하거나 이미지의 경우 CNN을 사용하는 경우도 있다. 

     

    Auto Encoder는 아래의 4가지 관점을 가진다

     

    1. Unspervised learning: 따로 label 정보를 지정하지 않았기 때문에 

    2. ML density estimation (negative ML): 같은 데이터를 얼마나 복원을 잘했느냐?를 단순히 픽셀 단위로 비교하게 되면(이미지의 경우) 실제로는 복원이 잘 된 경우에도 Loss가 클 수도 있다. 

    예를 들어 이미지가 단순히 오른쪽이나 왼쪽으로 1px만 이동한 경우를 생각하면 된다. 그렇기에 MLE 관점에서 이를 해석해야한다.

    3. Manifold learning(demonsion reduction): Auto encoder는 차원을 축소시키기 때문(데이터를 잘 표현하는 subspace를 찾음) manifold 러닝의 관점에서 볼 수 있다. 아래 내용을 더 참고하자.

    4. genrative model learning: decoder부분을 통해 결과값을 generate 함으로 generative model learning이라고도 볼 수 있다. 

     

       

     

    Dimension Reduction & Manifold Learning 

    Manifold learning은 쉽게 말해 고차원 데이터에서 이 데이터들을 잘 포함하는 subspace(manifold)가 존재할 것이다라고 예측을 하고 해당 subspace를 찾는 것이다. 

     

    이렇게 하면 아래의 4가지 문제를 해결할 수 있다. 

    1. data compression

    2. data visualization

    3. curse of dimensionality

    4. discovering imporatant features

    : resonable distance metirc 

     

    방법은 크게 Linear, Non-linear한 경우 2종류로 나뉜다(subspace의 종류에 따라)

    처음에 다루어지던 방법론은 neighborhood based training이었음(PCA 등)

    그렇나 데이터 간의 유클리디안 거리는 유의미한 거리 개념이 아닐 가능성이 높기에 Auto-encoder 등으로 이를 해결하였다 (고차원 데이터 인 경우, 많은 데이터를 다루는 경우)

Designed by Tistory.