논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

UFLDL Tutorial 19. Unsupervised Learning – ICA

http://ufldl.stanford.edu/tutorial

ICA

Introduction

이전에 스파스 코딩을 상기시켜보면, 우리는 데이터에 대해서 과적합(over-complete)된 기저 벡터를 학습시키고자 하였습니다. 특별히 이것은 우리가 스파스 코딩으로 학습시킨 기저 벡터들은 데이터에 대해서 선형적으로 비독립적이라는 것을 내포하고 있습니다. 이것은 특별한 상황에서 우리가 바라는 성질일지 모르지만, 때때로는 선형적으로 독립적인 기저를 학습시키길 원할 때가 있습니다. 독립 성분 분석(Independent component analysis, ICA에서는 이러한 것을 수행합니다. 나아가 ICA에서는 선형 독립 기저를 학습시키는 것 뿐만 아니라 정규직교(orthonormal)인 기저를 학습시키게됩니다. 정규직교기저는 기저 $(\phi_1, \ldots \phi_n)$가 $i \ne j$일 때는 $\phi_i \cdot \phi_j = 0$이고, $i = j$일 때는 $1$인 것입니다.

스파스 코딩과 마찬가지로 ICA는 간단한 수식으로 표현할 수 있습니다. 어떤 데이터 $x$가 주어지면, 우리가 학습시키고자 하는 기저 벡터들을 컬럼으로 하는 행렬 $W$로 표현할 수 있습니다. 이 기저 벡터들은 스파스 코딩에서와 같이 스파스하고, 여기에 더해서 정규직교 기저입니다. 스파스 코딩에서는 행렬 $A$는 특징 $s$를 원래 데이터로 매핑시키는 역할을 합니다. 하지만 ICA에서의 $W$는 원래 데이터 $x$를 특징으로 매핑시키는 정 반대의 역할을 합니다. 이것은 다음의 목적함수로 표현됩니다.

$$ J(W) = \lVert Wx \rVert_1 $$

$W s$는 데이터를 표현하는 정확한 특징을 나타내기 때문에, 이 목적 함수는 스파스 코딩에서 특징 $s$에 걸려 있는 스파시티 페널티와 동일합니다. 여기에 정규 직교성을 추가함으로써 ICA를 위한 완전 최적화 문제로 만들어줍니다.

$$ \begin{array}{rcl} {\rm minimize} & \lVert Wx \rVert_1 \\ {\rm s.t.} & WW^T = I \\ \end{array} $$

보통의 딥러닝의 경우에서처럼 이 문제는 간단한 분석적 해답이 없을 뿐더러 오히려 상황을 어렵게 만듭니다. 정규직교성 조건은 그래디언트 디센트를 이용하여 목적 함수를 최적화하는 더 어렵게 만듭니다. 그래디언트 디센트의 모든 반복 후에는 새로운 기저로 정규직교 기저 공간으로 매핑하는 과정이 와야합니다.

실제로 정규직교 조건을 적용하여 목적 함수를 최적화하는 것은 가능하지만 속도가 느립니다. 따라서 정규직교 ICA를 사용하는 것은 정규직교 기저를 얻는 것이 매우 중요한 곳에서만 사용됩니다.

Orthonormal ICA

정규직교 ICA의 목적 함수는 다음과 같습니다.

$$ \begin{array}{rcl} {\rm minimize} & \lVert Wx \rVert_1 \\ {\rm s.t.} & WW^T = I \end{array} $$

제한 조건 $WW^T = I $는 두가지 제한을 내포하고 있습니다.

첫번째로 우리는 정규직교 기저를 학습하고 있기 때문에, 우리가 학습할 기저벡터의 수는 입력의 차원보다 적어야 합니다. 특히 이것은 스파스 코딩에서 한 것처럼, 과적합 기저는 학습할 수 없다는 뜻입니다.

두번째로 데이터는 regularization 없이 ZCA whitened되어있어야 합니다. ($\epsilon = 0$)

따라서 정규직교 ICA 목적 함수의 최적화를 시작하기 전에 우리의 데이터가 whitened되어있는지 확인해야하고, under-complete 기저를 학습하여야 합니다.

여기에 목적 함수를 최적화하기 위해서 그래디언트 디센트를 사용할 수 있는데, 그래디언트 디센트의 각 단계마다 정규직교 조건을 주기 위해서 프로젝션 단계를 추가하여야 합니다. 따라서 그 절차는 다음과 같이 변경됩니다.

작업이 끝날 때 까지 다음을 반복:

  1. $ W \leftarrow W - \alpha \nabla_W \lVert Wx \rVert_1 $
  2. $ W \leftarrow \operatorname{proj}_U W $, 여기서 $U$는 $WW^T = I$를 정의하는 행렬 공간

실제로 학습률 $\alpha$는 강하의 속도를 높이기 위해서 선형 탐색 알고리즘(line-search algorithm)을 사용해서 변화시킬 수 있습니다. 또한 프로젝션 단계는 $W \leftarrow (WW^T)^{-\frac{1}{2}} W$로 수행할 수 있습니다. 이것은 ZACA whitening에서도 볼 수 있는 것입니다.


Tags:
Add a Comment Trackback