Visualizing Data using t-SNE

Visualizing Data using t-SNE (Paper)

1. 서론

우리가 Clustering 등의 작업을 위해서 고차원의 데이터를 시각화 하기 위해서는 저차원으로 데이터를 맵핑할 필요가 있는데, 이때 선택할 수 있는 방법이 PCA 등이 있을 수 있는데 여기서는 T-SNE 를 활용한 고차원 데이터의 저차원 데이터로의 맵핑과 시각화에 대해서 설명하고 있다.

2. 기존 연구 (SNE : Stochastic Neighbor Embedding)  

Stochastic Neighbor Embedding은 고차원 데이터에서 유클리시안 거리를 데이터 포인트의 유사성을 표현하는 조건부 확률로 표현하는 방법이다. 첫 번째는 P 에 대한 정의이다. P 는 아래에서 설명된 것 처럼 고차원 데이터 X 에 대해서 데이터간의 거리를 유사도 확률도 표현한 것 이다.

두 번째는 q 에 대한 정의로 q는 우리가 찾고자 하는 저차원 좌표 정보로 만약 제대로 최적화가 된다면, p 랑 q 조건 확률 사이에는 다음과 같은 관계가 성립하게 될 것이다.  p = q 그러니까 우리가 적절한 저차원의 y 를 찾기 위해서 해야할 일은 p와 q 의 차이가 최소화 되도록 y 를 찾는 것이 되겠다.

두 점의 거리가 최소화 되도록 하기 위해서 KL Divergence 라는 것을 사용을 하는데 그 정의는 다음과 같다.  p 확률 분포와 q 확률 분포에 log 를 취하고 그 오차를 Normalization 하는 형태이다.

참고한 자료에서는 구배라고 되었는데 Gradient 로 이해하면 될 듯하며,  해당 식을 풀기 위한 방법은 여러가지가 있을 수 있는데, p == q 로 놓고 풀면 아래와 같은 Gradient 를 구할 수 있을 것이며

만약에 p(i|j) + p(j|i) 와 q(i|j) + q(j|i) 가 같다라고 가정하고 Gradient 를 구하는 경우 (성능은 큰 차이가 없다고 함) 에는 아래와 같은 Gradient 를 구할 수 있을 것이다.

그리하여, 아래와 같이 Gradient 를 적용할 수 있을 것이다. 좌측 Term 은 위에서 구한 Gradient 에 Learning Rate 를 적용하여 더해주는 것이고 우측 Term 은 기존의 학습 방향을 어느정도 인정하여 적용하는 모멘텀이 되겠다.

이러한 접근 방법을 통해서 점진적으로 최적의 Y 값을 찾을 수 있는 방법은 제시가 되었으나, 이러한 방법도 문제가 있으니 그것이 바로 Crowding 문제인데, 이것은 특정 지점에 너무 많은 데이터가 몰리게 되면, 적당히 떨어져 있는 데이터와 아주 멀리 떨어져 있는 데이터를 거의 동일 확률로 판단한다는 문제가 있다. (아주 뭉쳐 있는 데이터가 아니면, 아주 멀거나 조금 멀거나 구분을 못함) 이러한 문제를 해결하기 위하여 본 논문에서는 t-student 분포를 사용하는 방법을 제시하고 있다.

3. 핵심 Idea 

아주 중심에 있는 데이터 외의 적당히 먼 데이터와 아주 먼 데이터를 잘 구분하지 못하는 문제를 해결 하기 위해서 조금 더 고리가 긴 분포를 사용하는데, 이것이 바로 t-student 분포이다.  자유도라는 변수를 갖고 있으며, 자유도가 커질 수록 표준정규분포에 가깝게 된다.  v 가 자유도, gamma function 은 (n-1) 팩토리얼이 되겠다. t는 원래 가지고 있는 분포가 되겠다.

이 논문에서는 자유도 1을 사용하는데 그 이유는 Inverse Square Rule(역제곱법칙) 이 적용되기 때문이라고 한다. 즉, 거리가 커지면 해당 Term 은 작아지고, 거리가 적어지면, 해당 Term 은 커지기 때문에 거리에 따른 확률을 반비례적으로 잘 표현할 수 있다는 것이다.

그 외에도 시각적으로 보면, y_i – y_j 즉 오차에 대한 분포를 구하는 것인데, 분포의 양쪽 꼬리를 길게 해주면 적당히 떨어진 점을 더 멀리 배치하여, 조금 멀리 떨어진 점과, 아주 많이 떨어진 점을 더 잘 구분할 수 있다 뭐 그런 이야기 이다.

이렇게 P, Q 를 구하는 방법을 (거리를 확률로 구하는 방법에 Student t distribution) 을 적용하게 되면, 그 후의 과정을 어짜피 동일하게 될 것이고 Gradient 를 구하는 과정을 보면 아래와 같다.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *