데이터 분석 일지

[Deep Learning] Representation Learning 본문

Lecture or Textbook Review/Deep Learning

[Deep Learning] Representation Learning

-ˋˏ ♡ ˎˊ- 2024. 2. 22. 21:42

0. Motivation of Embeding Vectors

 

NLP에서 단어는 categorical and discrete value의 속성을 가짐으로써 one-hot representation으로 표현한다. 하지만 이러한 one-hot representation은 sparse vector이기 때문에 실제 존재하는 단어 사이의 유사도를 표현할 수 없다. 따라서 이를 해결하기 위하여 Word2Vec를 사용하거나 DNN을 통한 차원 축소 및 dense vector 표현을 사용한다. 이를 vector embedding이라고 한다. 

 

1. Auto Encoder

 

auto encoder는 압축과 해제를 반복하며 특징 추출을 자동으로 학습한다. 아래의 그림과 같이 x라는 입력을 받아 x_hat을 출력할 때, x와 x_hat의 차이를 최소화하는 형식으로 표현된다. 즉 입력을 그대로 출력하도록 해야 한다. 아래의 그림에서 encoder에서는 차원이 줄어들다가 decoder에서 차원이 다시 확장되는 것을 볼 수 있다. encoder와 decoder 사이에 있는 z를 병목 구간(Bottleneck)이라고 하고 이는 입력의 차원보다 낮은 차원으로 이루어져 있다. 따라서 자연스럽게 압축과 해제를 실행한다. encoder는 입력의 정보를 최대한 보존하도록 손실 압축을 수행하고, decoder는 중간 결과물(z)의 정보를 입력과 같아지도록 압축 해제(복원)을 수행한다. 복원을 성공적으로 하기 위하여 auto encoder는 특징을 추출하는 방법을 자동으로 학습한다. 

 

Auto Encoder

 

1. 1. Encoder

 

auto encoder에서 encoder는 복원에 필요한 정보를 중심으로 손실 압축을 수행한다. 필요 없는 정보, 예를 들어 당연하고 일정한 정보 같은 경우는 버릴 수 있다. encoder에 통과시키는 것은 feature vector에 대한 embedding 과정이라고 볼 수 있다. 

 

1. 2. Bottleneck

 

bottleneck은 입력보다 작은 차원으로 구성되어 있다. 따라서 정보의 선택과 압축이 발생하고 차원에 따라서 압축의 정도를 결정한다. 따라서 z는 최소한의 중요한 정보를 가지고 있기 때문에 입력에 대한 feature vector(= embedding vector)라고 할 수 있다. 또한 압축의 효율이 높아야 하기 때문에 입력에 비해 dense vector일 것이다. 

 

1. 3. Decoder

 

decoder는 압축된 중간 결과물 z를 바탕으로 최대한 입력과 비슷한 x_hat을 복원해야한다. 이 손실을 최소화하기 위해 보통 MSELoss를 통한 최적화를 수행한다. 당연하고 일정한 정보는 주어지지 않더라도 어차피 알 수 있기 때문에 복원할 수 있다. 

 

2. Hidden Representation

 

위의 auto encoder에 대한 설명에서 encoder로부터 나온 중간 결과물 z는 입력에 대한 feaure vector, 즉 embdedding vector라고 하였다. 그렇다면 이 auto encoder에서의 feature vector의 각 차원이 내포하고 있는 의미를 알아보고자 한다. 

 

MNIST 데이터를 auto encoder를 통하여 특징을 학습시키는 경우를 예시로 들어보겠다. 이때의 encoder의 결과물 z를 plot하였을 때, 아래의 그림과 같이 비슷한 샘플들은 비슷한 곳에 위치한다는 것을 알 수 있다. 각 label의 plot이 차지하는 공간을 hidden space(잠재 공간)라고 한다. 이에 따라 입력 샘플 x가 존재하는 곳은 input space가 되고, 이 input space의 MNIST 샘플이  hidden space에 embedding된 것이라고 할 수 있다. 

hidden space in MNIST dataset

 

MNIST 뿐만 아니라 DNN 모델의 샘플을 통과하는 과정은 hidden space에 embedding하는 과정이라고 할 수 있다. 이때 각 레이어 결과물을 hidden vector라고 부른다. 

 

Tabular data의 feature vector와 달리, 사실상 hidden vector는 해석이 어렵다. 이를 해석하는 연구들(XAI)이 이어지고 있지만 정확한 해석은 하기 어려운 상황이다. 하지만 비슷한 특징을 가진 샘플은 비슷한 hidden vector를 가진다. 따라서 비슷한 샘플끼리 hidden space에 모여있는 것이다. 

 

3. Summary

  • hidden layer의 결과값들은 hidden vector라고 부르며 이는 샘플의 feature를 담고 있다.
  • 레이어를 통과시키는 것은 input space에서 hidden space로의 embedding 과정이다. 
  • hidden representation을 해석하는 것은 매우 어렵다. (하지만 비슷한 샘플은 비슷한 hidden representation을 가짐)