데이터 X의 차원(특성)이 너무 크면 모델을 만들고 예측하는데 너무 많은 연산량이 요구될 수 있고 정확도가 떨어질 수 있다.
이럴때 차원축소를 통해 중요한 특성 몇가지만 가지는, 좀 더 가벼운 데이터를 얻을 수 있다.
10,000차원 벡터로 표현되는 데이터 X가 linear mapping을 통해 10차원 벡터로 표현되는 데이터 Y가 되었다.
여기에서 linear mapping을 할 때 행렬 W를 곱해주는데 이 W를 찾는 것이 Linear Dimensionality Reduction에서 중요하다.
차원 축소는 아래의 상황을 통해 이해할 수 있다.
5차원 벡터로 표현되는 x는 각각의 basis 벡터와 x를 만드는데 어떤 basis 벡터가 더 크게 작용하는지에 대한 크기 S1,..,Sn을 통해 나타낼 수 있다.
이때 x를 3차원으로 축소하기 위해서 4번째와 5번째 basis를 버릴 수 있다.
이 과정에서 x를 표현하는데 더 중요한 basis들 (basis 1,2,3)이 살아남는데 어떤 basis가 살아남는지, 버려지는지 찾는 것이 중요하다.
2차원의 데이터 X가 있을 때 1차원으로 차원 축소를 하고싶다.
데이터를 1번 선에 투영하는 것과 2번 선에 투영하는 것 중에 어떤 것이 더 적절할까?
정답은 1번이다. 1번에 투영하는 것이 2번에 투영하는 것보다 더 적은 정보의 loss가 발생한다.
1번 선을 principal direction이라고 하고 데이터의 공분산의 가장 큰 고유 벡터라고 한다.
이 principal direction을 찾아서 차원축소를 하는 것이 PCA(Principal Component Analysis)이다.
principal direction을 찾기 위해서 가지고있는 데이터 x의 차원을 확장시켰다가 축소시킨다.
x의 차원이 D였다가 d로 줄고 다시 D로 확장된다.
이 과정을 거치면 wwTx를 얻게 되는데 처음의 값 x와 wwTx와의 차이를 최소화해야하는 것으로 정의하고
이것을 최소화하는 방향으로 principal direction을 찾을 수 있다.
'머신러닝' 카테고리의 다른 글
군집(Clustering), K-평균 알고리즘(K-mean) (0) | 2023.01.30 |
---|---|
Suport Vector Machine(SVM, 서포트 벡터 머신), 최대 마진 분류 (2) | 2023.01.29 |
Kernel Ridge Regression(KRR) (0) | 2023.01.28 |
Kernel method, feature space(특성 공간) (0) | 2023.01.27 |
앙상블 학습, Random Forest 개념 (0) | 2023.01.26 |