본문 바로가기

Research

비선형 차원 축소법: 오토인코더

차원을 축소하는 간단한 방법은 특정 데이터를 그 차원보다 더 작은 잠재 공간으로 변환하는 인코더를 만드는 것이다.

$$ f: \mathbb{R}^D \rightarrow \mathbb{R}^M $$

이 인코더가 제대로 동작하기 위해서는 (1) 함수 $f$를 어떻게 학습시킬 것인 지와 (2) 학습된 $f$가 어떻게 되길 바라는 지를 정확하게 명세하는 것이 중요하다.

오토인코더는 함수 $f$가 원래 데이터의 정보를 최대한 많이 들고 있는 것을 목표로 한다. 즉, 우리가 이 잠재 공간으로부터 다시 데이터 공간으로 복원했을 때, 원래 데이터와의 차이가 많이 나지 않아야 한다. 이를 손실 함수로 표현하면 다음과 같다.

$$ minimize d \left( x , g \left( f \left( x \right) \right) \right) \;\; where \;\; f: \mathbb{R}^{D} \rightarrow \mathbb{R}^{M} \; and \; g: \mathbb{R}^{M} \rightarrow \mathbb{R}^{D} $$

여기서 $d$는 데이터 공간 상에서 두 점 간의 거리 함수를 의미하며 일반적으로 l2를 많이 사용한다. 또한, $f$나 $g$의 경우, 파라미터화된 뉴럴 네트워크를 많이 사용하며, 이미지 도메인의 경우 컨볼루션 연산을 이용하는 것이 학습에 도움이 된다고 알려져 있다.

응용 기법: 세미 지도 학습

많은 양의 레이블링 되지 않은 데이터가 있을 경우, 우리는 먼저 이 데이터들을 이용해 오토인코더를 학습시킨다. 그리고 학습해야할 테스크를 기반으로 마지막에 분류기를 하나 붙인 뒤, 파인 튜닝을 통해 테스크를 수행한다.