희소 표현과 분산 표현, 차원의 저주

    희소 표현(Sparse Representation)

    희소 표현(Sparse Representation)이란 데이터가 희소(부족)한 형태를 띄는 것을 말한다. 

     

    희소행렬

     

    즉 대부분의 값이 0인 경우를 뜻하며, 원핫 인코딩(One Hot Encoding)이 대표적인 예이다.

     

    원핫 인코딩(One-Hot Encoding) 개념과 구현해보기

     

    원핫 인코딩(One-Hot Encoding) 개념과 구현해보기

    사람과 컴퓨터는 데이터를 바라보는 형태가 다르다 인간과 컴퓨터는 데이터를 바라보는 형태가 다르다 사람은 어떤 물체를 보더라도 숫자로 인식하지는 않지만 컴퓨터에게 인공지능을 구현시

    needjarvis.tistory.com

     

    희소표현이 구현하기에는 매우 편리하지만, 몇몇가지 약점들이 있다. 우선 Feature가 많아질수록 데이터 사이즈가 기하급수적으로 증가한다는 것이다. 예를 들어 단어를 기반으로 딥러닝을 구현한다고 가정할 때 원핫 인코딩으로 할 경우 사이즈가 너무 커지는 문제가 있다. 그리고 원핫 인코딩은 단어간의 연관성이 전혀 없기 때문에 의미를 담기가 힘든 구조이다. 이러한 원핫 인코딩의 단점을 해결하는 좋은 방법은 데이터를 분산으로 표현을 하는 것이다.

     

    분산 표현(Distributed Representation)

    데이터간의 의미와 데이터를 절약하기 위해서는 분산으로 표현하는 것이 효율적이다. 분산 표현의 가장 이해는 RGB 컬러라고 할 수 있다. Red, Green, Blue의 색을 256가지의 값을 넣어 무한에 가까운 새로운 색을 만들어 내는데 이러한 방식으로 원핫 인코딩보다 데이터간의 의미를 파악하기 쉬우며 엄청난 압축률을 보여준다.

     

    예를 들어, 강아지와 고양이라는 단어는 유사할 수 있는데 이를 분산 표현으로 한다면 매우 유사한 값으로 나올 수 있다.

     

    고양이와 개를 예를 든 분산 표현

    Cat [0.583, 0.157, 0.947]
    Dog [0.583, 0.347, 0.934]

    분산 표현은 희소 표현에 비해 매우 적은 값으로 표현을 할 수 있으며 위와 같이 데이터의 표현으로 개와 고양이가 일부 유사한 값이라는 것을 알 수 있게 된다.

     

    차원의 저주(Curse of Dimensionality)

    희소 표현의 문제는 차원의 저주로 말을 할 수 있다. 입력 데이터의 차원이 늘어나게 될 경우 성능이 올라갈 수 있지만 데이터가 이를 따라가지 못하면 차원의 저주가 발생할 수 있다.

     

    https://deepai.org/machine-learning-glossary-and-terms/curse-of-dimensionality

     

    위 이미지를 보면, 1차원일 경우 데이터가 빼곡하게 채워져 있지만 2차원이 될 경우 빈 곳들이 보이고 3차원의 경우 대부분이 채워지지 않는 것을 알 수 있다.

     

    즉 데이터를 표현할 수 있는 방법이 매우 적어지게 되는 것이다. 단어의 의미와 관계등을 표현하기 위해서는 차원이 어느정도 필요하지만 차원이 많아질수록 희소 표현은 사용하기가 버거워진다. 그러나 분산 표현은 희소 표현보다 훨씬 적은 차원으로 데이터를 표현할 수 있게되며 차원을 통해 단어간의 의미를 쉽게 파악할 수 있게 된다.

     

    대표적인 딥러닝 기술로 워드투벡터(Word2Vec)가 있으며, 분산 표현으로 워드 임베딩을 하는 전처리 기술과 동시에 연관 데이터 등을 알 수 있는 최종 딥러닝 기술로도 유명하다.

     

    연관자료

    원핫 인코딩(One-Hot Encoding) 개념과 구현해보기

    댓글

    Designed by JB FACTORY