【AI 알고리즘】차원 삭감(t-SNE)에 대해서

이번은 기계 학습의 교사 없는 학습, 「차원 삭감(t-SNE)」의 알고리즘에 대해 기사를 써 갑니다.
차원 축소에는 몇 가지 유명한 알고리즘이 있지만, 여기에서는 다차원 데이터에 적합한 기술의 t-SNE에 대해 쓰고 싶습니다.

차원 축소란 입력 데이터의 설명 변수를 줄이는 변환으로, 원래 입력 데이터의 정보를 유지하면서도 적은 변수로 원래 데이터의 특징을 설명할 수 있도록 하는 것입니다.

예를 들어, A씨의 연령(목적 변수 y)을 예상하고 싶을 때 A씨의 정보로서 신장(설명 변수 x1), 체중(설명 변수 x2)만 주어져 있는 것으로 합니다. 어른이 되면 아이보다 신장, 체중이 함께 높아져 가기 때문에 어느 정도 연령과 상관이 있을 것 같습니다. 이 때의 신장, 체중이라는 2개의 변수를 차원 삭감하려고 하면 이 2개의 변수의 정보를 어느 정도 유지하면서도 변수를 1개로 하는 것을 생각합니다. 그러면 신장, 체중의 관계에서 "체격"이라는 하나의 변수를 만들 수 있습니다. 그리고 그 체격이라는 변수를 사용하여 연령을 예상할 수도 있을 것 같습니다. 이와 같이, 몇개의 변수를 하나로 정리하는 것을 차원 삭감이라고 합니다.

일반적으로 수십 수백 개의 변수가 있는 다변수 데이터를 두 개 또는 세 개의 변수로 줄이는 것이 일반적입니다.

그럼, 왜 일부러 차원 삭감을 하는가 하면(자) 이유는 크게 2개 있습니다. 첫 번째는 다차원 데이터를 시각화하기 때문입니다. 시각화함으로써 확실히 모르는 데이터에서도 인간의 머리 속에서 파악하기 쉬워집니다. 데이터의 경향을 파악하기 쉬워지면, EDA나 분석 결과의 평가 등에서도 보다 설명하기 쉬워집니다. 두 번째는 "차원의 저주"를 막는 것입니다. 차원의 저주란 대략적으로 말하면 데이터가 가지는 변수의 수가 너무 많다(차원수가 많다)와 기계 학습의 다양한 알고리즘에 있어서 성능이 저하해 버리는 것입니다. 저도 차원의 저주에 대해 그다지 자세하지 않습니다만, 전 데이터가 가지는 정보는 변하지 않는다고 해서, 변수가 많다보다 변수가 적고, 1개의 변수당의 정보량이 많은 편이 알고리즘의 성능이 높아지기 쉽다고 합니다 .

그럼, t-SNE의 알고리즘에 대해 생각하고 싶습니다. 다시 한번 PCA와 같은 몇 가지 차원 축소 기술 중에서 t-SNE는 사용하기 쉽습니다. t-SNE의 특징은 다양체 공간(부분적으로 다차원 공간에서도 2점 사이의 거리를 나타낼 수 있는 공간)에 분포한 데이터를 차원 압축하여 가시화할 수 있다는 것입니다. 덧붙여서 PCA는 선형의 데이터 전체를 보고 차원 삭감하는 것이 좋지만, t-SNE는 비선형 데이터를 국소적(2점간)을 보고 삭감하는 것이 좋다. 즉, t-SNE는 다차원의 구조를 최대한 남겨 데이터 사이의 거리를 주목함으로써 2~3차원으로 삭감합니다.

t-SNE의 베이스는 SNE라고 하는 알고리즘이므로 우선 이쪽으로부터 설명합니다.
SNE는
의 수식입니다.
이것은 주어진 i라는 조건에서 j의 조건부 확률입니다. 어디까지나 나타내고 있는 것은 확률입니다만, 이것에 의해, 고차원 공간의 데이터간의 근접을 표현합니다.
그 내용은 똑같이 그대로 다변량으로의 가우스 분포의 식이 되고 있습니다. 3차원 이상으로 취급되는 정규 분포와 같은 것으로 이해하고 있습니다만, 자세한 것은 다른 기사를 참조해 주세요.
중요한 것은 x는 압축 전의 데이터 집합 X 중 하나의 데이터 점입니다.

좋은 웹페이지 즐겨찾기