Locally Linear Embedding (LLE)

01_6 : Dimensionality Reduction : ISOMAP & LLE 

Locally Linear Embedding(LLE)

LLE는 eigenvector를 사용한 nonlinear dimensionality reduction 방법으로써, 아래와 같은 특징이 있다.
  • 구현하기가 쉽다.
  • Local minima에 빠지지 않는다. (즉, 반드시 Global minima를 찾는다)
  • highly nonlinear embedding또한 찾아낼 수 있다.
  • 고차원의 data를 원하는 차원의 저차원으로 바꿀 수 있다.



LLE Procesure

  • Step1 : 각 Data point x_i에 대하여 K개의 이웃(neighbor)을 구한다. (K는 Hyperparameter)
  • Step2 : 각 Data point를 neighbor x_j에 대하여 reconstruct하는데 가장 적합한 W_ij를 찾는다. (Cost function을 최소화 하는 W_ij)
아래의 그림을 예시로 생각해보자.
각 Data point x_i에 대하여 neighbor x_j들을 통해 reconstruct 하고자 한다. 이러한 과정은 아래 수식으로 표현된다.
E(W)=\sum_i\left| x_i - \sum_j W_{ij}x_j \right|^2
s.t.\; W_{ij} = 0\;if\;x_j\;does\;not\;belong\;to\;the\;neighbor\;of\;x_i
\sum_j W_{ij} = 1\;for\;all\;i
위의 예시에서 x_i는 주변의 neighbor로 구성되는 Convex Hull에 포함되고, neighbor로 부터 완벽하게 reconstruct 될 수 있다. 따라서 이 경우 E(W) = 0일 것이다.

반면 아래의 예시에서 x_i는 주변의 neighbor로 구성되는 Convex Hull에 포함되지 않고, neighbor로 부터 완벽하게 reconstruct 될 수 없다. neighbor로 부터 reconstruct되는 x_i의 정보는 \sum_j W_{ij}x_j인데, 이는 x_i와 오차가 있다. 따라서 이 경우 계산되는 E(W) > 0일 것이다. 이때 이 E(W)를 최소화 하는 W matrix를 구해야 한다.
다시말해 우리가 Step 2에서 하려는 동작은 X를 알고있을 때, W를 최적화 하려는 것이다.

+Step 2의 최적화 문제는 단순 계산을 통해 최적의 W값을 구할 수 있다. Convex안의 x_i가 neighbor의 Convex set 안에 있다면, 적당한 W_{ij}에 대하여 E(W)=0일 것임으로 적당한 W_{ij}으로 손실 없이 x_i를 Reconstruct 가능하다. 
Convex set 밖에 있다면, 위의 그림처럼 Convex Hull에서 수직이 되도록 \sum_j W_{ij}x_j를 구성하는 W_{ij}를 찾는경우가 x_i에 가장 가깝게 위치할 것이고, 이 경우 E(W)가 최소가 될 것이다.

이제 Step 3를 살펴보자.
  • Step 3 : 위의 Step 2에서 최적화한 W를 기반으로 아래의 \Phi(W)를 최소화 하는 Y를 구한다.
\Phi(W)=\sum_i\left| y_i - \sum_j W_{ij}y_j \right|^2
이제 Step 2에서 구한 W를 기반으로 Y를 최적화 한다. 기존의 Data x_ix_i\in \mathbb{R}^d이었다면, 새롭게 구한 y_ix_i의 정보를 embedding 하면서 저차원으로 표현된다. y_i\in \mathbb{R}^{d^\prime}\;\;(d^\prime<d)

이 과정을 예시를 보면서 다시한번 살펴보자.
X는 5차원의 Data이다. Step 1에서 각 X_i의 neighbor들을 구하고, Step 2에서 각 X_i들을 최소한의 E(W)X_i의 재구축이 가능한 W를 찾는다. 이제 마지막으로 W를 기반으로 2차원인  data Y로 embedding 한다.

LLE의 목적은 data X에서 data Y로 차원 축소 할 때, 각 원소들 사이의 유사성관계, 재구축에 기여하는 정도에 대한 정보를 최대한 유지하는 것이다. 
Step 2에서 구한 E(W)를 최소화 하는 W가 바로 각 원소들간의 유사성관계를 표현하고, Step 3에서 구한 \Phi(W)를 최소화 하는 Y가 바로 유사성관계를 최대한으로 유지하면서 차원 축소된 data이다.



LLE Procesure (Cont.)

Step 3에서 y_i를 구하는 과정을 살펴보자.
\Phi(W)=\sum_i\left| y_i - \sum_j W_{ij}y_j \right|^2
식을 풀어서 쓰면,
\left| y_i - \sum_j W_{ij}y_j \right|^2=y_i^T (I- \sum_j W_{ij})^T(I- \sum_j W_{ij})y_j
식을 정리하면 아래와 같이 나타난다.
\Phi(W)=\sum_iM_{ij}(y_i \cdot y_j)
where\;\;M_{ij} = \delta_{ij}-W_{ij}-W{ji}+\sum_kW_{ki}W_{kj},\;\;\delta_{ij}=1\;\;if\;\;i=j,\;\;\delta_{ij}=0\;\;otherwise
s.t\;\;\sum_iy_i = 0,\;\;\frac{1}{n}\sum_iyy^T=I
이제 각 제약조건을 생각해보자. 
먼저 \sum_iy_i = 0 조건은 embedding된 공간에서 각 변수들의 평균이 0이라는 조건이다.
그리고 \frac{1}{n}\sum_iyy^T=I 조건은 embedding된 공간에서 각 변수들이 모두 Orthogonal 하다는 조건이다.

위의 식을 다시 행렬식으로 살펴보자.
\Phi(W)=\sum_i\left| y_i - \sum_j W_{ij}y_j \right|^2
\Phi(W)=[(I-W)y]^T[(I-W)y] = y^T(I-W)^T(I-W)y = y^TMy
정리하면 우리가 구하고자 하는 최소값 y는 아래의 최적화 문제로 표현된다.
min\;\;y^TMy
s.t\;\;yy^T=1
PCA에서 살펴본 것처럼 이제 우리가 구하고자 하는 y는 제약조건이 있는 최적화 문제로 표현된다.
PCA의 최적화 문제는 
max\;\;w^TSw
s.t\;\;w^Tw=1
이고 이때 최적해는 S의 eigenvalue/eigenvector 이었다. PCA는 maximize 하는것이 목표이기 때문에 eigenvalue를 내림차순으로 정렬하고, 그중 K개의 eigenvector를 선택하여 사용했다.
반면 LLE는 minimize 하는것이 목표이기 때문에 eigenvalue가 작은 eigenvector를 선택해야 할 것이다.



LLE Procesure (Cont.)

위의 최적화 문제를 푸는 방법으로 Rayleitz-Ritz theorm을 사용한다. 이 내용을 깊게 이해하기에는 너무 어려움으로 결론만 알아보도록 하자. Rayleitz-Ritz theorm에 의해서 우리는 아래의 정리를 가져올 수 있다.
  • 우리는 행렬 M의 가장 밑 d+1개의 eigenvector를 사용해서 최적해를 찾을 수 있다. (행렬 M의 eigenvector는 내림차순으로 정렬되어 있다)
  • 가장 밑에 있는 eigenvector는 unit vector 이면서, 모든 원소(component)로 같은 값을 가진다. (가장 eigenvalue가 작은 eigenvector)
  • 가장 밑의 eigenvector를 제거하면, 나머지 d개 embedding의 평균값이 0이 된다. (이 나머지 d개의 vector가 우리가 구하려는 embedding vetor이다)

위의 정리를 바탕으로 LLE는 다음과 같이 전개된다.
  1. Original Data X : 처음의 data는 D개의 variable과 N개의 원소를 가진다. D by N matrix로 표현된다.
  2. Neighborhood matrix W : Step 2를 통해 E(W)를 최소로 만드는 W를 구한다.
  3. M : W의 sparse matrix를 구한다. M=(I-W)^T(I-W)
  4. Eigenvectors V : M으로부터 가장 작은 eigenvector 부터 d+1개의 eigenvector를 구한다. 
  5. Embedded mapping Y : d+1개의 eigenvector로 구성된 V에서 가장 작은 eigenvector를 제거한다.
결과적으로 구한 Y 행렬이 우리가 구하고자 하는 Embedding mapping이 완료된 d 차원의 data이다.



※ 이 글은 고려대학교 산업경영공학과 강필성 교수님의 IME654 강의를 참고하여 작성되었습니다.

댓글

이 블로그의 인기 게시물

One-Class SVM & SVDD

Support Vector Regression (SVR)

Support Vector Machine (SVM) - Soft margin