logo

잠재 변수와 잠재 공간 📂머신러닝

잠재 변수와 잠재 공간

정의

데이터 집합 XRnX \subset \mathbb{R}^{n}이 주어졌다고 하자. 데이터 집합을 정의역으로 갖는 함수를 인코더라 한다.

f:XZxz=f(x) \begin{align*} f : X &\to Z \\ \mathbf{x} &\mapsto \mathbf{z} = f(\mathbf{x}) \end{align*}

인코더의 치역 ZRmZ \subset \mathbb{R}^{m} (mnm \le n)를 잠재 공간latent space라 하고, 잠재 공간의 원소 z\mathbf{z}잠재 변수latent variable 혹은 특징 벡터feature vector라고 한다.

함수 g:ZYg : Z \to Y에 대해서,

  • YY가 데이터 XX레이블 공간이면, gg를 분류기라고 한다.
  • Y=XY = X이면 gg디코더decoder, 복호기라고 한다.

설명

인코더의 역할 중 하나는 데이터를 압축하는 것이기 때문에, 잠재 공간의 차원은 데이터 집합보다 작은 것이 일반적이다. 정보이론의 맥락에서는 반드시 작아야하지만, 기계학습 및 딥러닝에서는 성능만 좋으면 장땡이기 때문에 잠재 변수의 차원이 데이터와 같거나 커도 상관은 없다. 물론 대개의 경우는 작거나 같은 것이 좋다.

정보이론이나 암호론의 맥락에서와 달리, 기계학습에서는 인코더에게 다른 하나의 중요한 역할을 요구한다. 그것은 바로 데이터의 특징을 추출하는 것이다. 그래서 데이터를 신경망에 입력하여 출력을 얻는 과정 자체를 특징 추출feature extraction 혹은 임베딩 이라고 한다. 딥러닝에서 인코더의 함숫값에 의미를 부여하고, 특징 추출에 집착하는 이유는 인공신경망이 블랙박스 알고리즘이기 때문이다. 인코더의 원리나 구조가 명시적인 전통적 기법과 달리, 인공신경망으로 만들어진 인코더는 그 원리나 과정을 우리가 정확히 알 수 없다. 그래서 인코더의 출력에 데이터로부터 추출된 데이터의 잠재된 특징이라는 의미를 부여하는 것이다.

이런 의미는 결국 사람이 부여하는 것이기 때문에, 수학적으로는 정보이론의 맥락에서나 기계학습의 맥락에서나 인코더의 역할은 같다. 오로지 압축만을 목적으로 한다면 압축된 데이터, 그러니까 인코더의 함숫값이 어떻게 생겼든지는 알바없다. 하지만 기계학습에서는 인코더의 출력이 데이터의 특징을 잘 보존해야 하므로, 인코더의 출력은 데이터의 특징을 잘 나타내는 형태여야 한다. 예를 들어, 이미지 데이터를 인코딩할 때, 인코더의 출력은 이미지의 색상이나 모양, 위치 등을 잘 나타내는 형태여야 한다. 가령 덤벨, 컵, 달마시안 사진에 대한 특징 벡터가 아래의 사진과 같이 생겼다면 좋은 것이다. (믿음을 가지고 보면 덤벨, 컵, 달마시안이 흐릿하게 보일 것이다) 1

혹은 아래와 같이 관심있거나나 중요한 대상의 위치, 윤곽이 잘 드러나도 좋다.


  1. Simonyan, Karen, Andrea Vedaldi, and Andrew Zisserman. “Deep inside convolutional networks: Visualising image classification models and saliency maps.” arXiv preprint arXiv:1312.6034 (2013). ↩︎