차원 축소의 필요성
- 차원의 저주를 해결하기 위해
- 많은 머신러닝 문제는 훈련 샘플이 수천 수백만개의 변수를 가지고 있다는 것인데, 많은 변수는 훈련을 느리게 할 뿐만 아니라 좋은 솔루션을 찾기 힘들어집니다. 다행히 차원의 저주 문제 들은 특성 수를 크게 줄여 불가능한 문제를 해결 가능하도록 변경할 수 있습니다.
- MNIST 이미지 처럼 이미지 경계에 있는 픽셀들은 거의 흰색이므로 훈련세트에서 제거해도 많은 정보를 잃지 않습니다.
- 인접한 픽셀을은 종종 많이 연관되어 있으므로, 두 픽셀을 하나로 합치더라도 많은 정보를 잃지 않습니다.
- 많은 머신러닝 문제는 훈련 샘플이 수천 수백만개의 변수를 가지고 있다는 것인데, 많은 변수는 훈련을 느리게 할 뿐만 아니라 좋은 솔루션을 찾기 힘들어집니다. 다행히 차원의 저주 문제 들은 특성 수를 크게 줄여 불가능한 문제를 해결 가능하도록 변경할 수 있습니다.
- 데이터 시각화를 위해
- 차원 수를 둘로 줄이면 고차원 훈련 세트를 하나의 압축된 그래프로 그릴 수 있습니다
- 군집과 같은 시각적인 패턴을 감지해 통찰을 얻을 수 있습니다
* 고차원 공간, 고차원 데이터셋
1x1 사각형에서 임의의 두 점 사이의 거리는 평균 약 0.52, 3차원 큐브에서 임의의 두 점 사이의 거리는 평균 약 0.66, 1000000차원 초입방체에서 임의의 두 점 사이의 거리는 평균 약 407.25입니다. 고차원은 많은 공간을 가지고 있기 때문에, 두 점 사이의 거리는 점점 멀어지게 되는 것입니다.
고차원 데이터 셋은 너무 멀리 떨어져있어서 데이터 양이 매우 희박할 위험이 있습니다. 이 경우, 예측을 위해 외삽(extrapolation)이라는 방법을 사용해야하는데 저차원일때보다 예측이 더 불안정해 질수 있습니다. 그래서 훈련세트가 고차원일수록 과대적합의 위험도 커지게 됩니다
자원의 저주를 해결하기 위해 룬련샘플의 밀도가 충붆히 높아질 때까지 훈련세트의 크기를 키우는 이론 방법도 있지만, 고차원에서는 필요한 훈련 샘플 수가 기하급수적으로 필요하게 됩니다.
차원 축소 접근법
① 투영 (Projection)
차원을 투영시켜서 저차원으로 내리는 것
- 대부분 실전 문제는 훈련 샘플이 모든 차원에 걸쳐 균일하게 고루 퍼져있지는 않습니다
- 많은 변수들이 개별 변수들끼리 보면 범위 내의 변화가 거의 없는 반면, 다른 특정 변수들과는 서로 강하게 연관되어 변화 차이가 큰 경우가 있음
- 모든 훈련 샘플이 고차원 공간 안에 속하는 것으로 보이지만, 실제로는 저차원 공간에 놓여 있습니다.
- 즉, 멀리 떨어져있어 보이지만 가까운 위치에 놓여있다고도 할 수 있음
- 투영의 예시로 위의 그림을 보면, 입체적인 공간에 평면을 하나 그려주고 모든 훈련 샘플과 평면 사이의 가장 짧은 직선을 따라 수직으로 투영하면 3D데이터셋에서 2D 데이터셋이 된다
- 모든 훈련 샘플이 거의 평면 형태로 놓여있는 것처럼 보임
- 3D공간에 있는 2D수준의 부분 공간을 활용하고 있음
- 각 축은 평면에 투영된 좌표인 새로운 z1과 z2에 대응
- 모든 훈련 샘플이 거의 평면 형태로 놓여있는 것처럼 보임
[ 투영의 단점 ]
- 위의 그림은 투영의 단점의 대표적인 예시인 '스위스롤' 데이터입니다.
- 부분 공간이 뒤틀리거나 휘어있는 데이터 셋의 형태를 대표
- (좌) 단순히 평면에 스위스롤 데이터를 투영시키면 2D 데이터셋 층이 서로 뭉개지는 결과를 얻게 됩니다.
- (우) 투영이 아닌 말려 있는 데이터를 잘 펴준다면 그림과 같이 데이터 분포를 잘 표현할 수 있을 것입니다
- 스위스 롤을 펼친 2D 데이터셋을 얻고 싶다면 => 매니폴드 방법
② 매니폴드
[ d차원 매니폴드 ]
- d차원 매니폴드는 국부적으로 d차원 초평면으로 보일 수 있는 n차원 공간의 일부(d<n)
- 스위스 롤은 국부적으로 2D 평면으로 보이지만 3차원으로 말려져 있음 (d=2 n=3)
- 스위스 롤은 2D 매니폴드의 한 예시이며, 2D 매니폴드는 고차원 공간에서 휘어지거나 뒤틀린 2D 모양을 뜻합니다.
[ 매니폴드 학습 ]
- 많은 차원 축소 알고리즘이 훈련 샘플이 놓여 있는 매니폴드를 모델링하는 방식으로 작동합니다.
- 매니폴드 학습은 대부분 실제 고차원 데이터셋이 더 낮은 저차원 매니폴드에 가깝게 높여 있다는 매니폴드 가정 또는 매니폴드 가설에 근거하여 학습을 진행합니다.
- 매니폴드 가정이란? 처리해야 할 작업이 저차원의 매니폴드 공간에 표현되면 더 간단해질 것이라는 가정
- 매니폴드 가정은 분류 혹은 회귀 문제에서 활용되며, 종종 암묵적으로 다른 가정과 병행되곤 함
# 투영과 매니폴드 활용
투영과 매니폴드에 대해 어떤 방법이 더 좋은 솔루션이 될지는 단정지을 수 없습니다. 이용되는 데이터 세트에 따라서 더 효과적이고 간단해지는 솔루션이 달라질 수 있음에 유의해야 합니다.
[ 저차원에서 간단해지는 결정경계 ]
- 스위스 롤이 두개의 클래스로 나누어 있을 때, (좌)3D에서는 경정 경계가 매우 복잡하지만, (우)펼쳐진 매니폴드 공간인 2D에서는 결정 경계가 단순한 직선입니다. 이 경우에는 매니폴드를 사용했을 때 더 효과적입니다.
[ 저차원에서 간단하지 않은 결정경계 ]
- 스위스롤의 결정 경계가 x1 = 5에 놓여 있을 때, (좌)결정 경계는 3D 공간에서는 수직 평면으로 매우 단순한 반면, (우)펼쳐진 매니폴드에서는 결정 경계가 네 개 독립된 수직선으로 더 복잡해지게 됩니다. 이 경우에는 투영을 했을 때 더 효과적입니다
차원 축소 알고리즘
① PCA (주성분 분석)
PCA (Principal Component Analysis, 주성분 분석)
PCA란? 가장 인기 있는 차원 축소 알고리즘 중 하나로, 데이터에 가장 가까운 초평면을 해석적으로 정의한 후 그 평면에 데이터를 투영시키는 방법입니다. # 분산 보존 PCA가 차원축소하는 방법으
sonzwon.tistory.com
② LLE (지역 선형 임베딩)
LLE (Locally Linear Embedding, 지역 선형 임베딩)
LLE란? 강력한 비선형 차원축소 기술로, PCA와는 다르게 투영에 의존하지 않는 매니폴드 학습입니다 LLE는 각 훈련 샘플이 가장 가까운 이웃에 얼마나 선형적으로 연관되어 있는지 측정하고, 그 후
sonzwon.tistory.com
③ 여러 차원 축소 기법들
[ 랜덤 투영 ]
- 랜덤한 선형 투영을 사용해 데이터를 저차원 공간으로 투영하는 방법입니다
- 거리를 잘 보존합니다
- 차원 축소 품질은 샘플 수와 목표 차원 수에 따라 다르며, 초기 차원 수 에는 의존적이지 않습니다
[ 다차원 스케일링 (MDS) ]
- 샘플 간의 거리를 보존하면서 차원을 축소하는 방법입니다
[ Isomap ]
- 각 샘플을 가장 가까운 이웃과 연결하는 식으로 그래프를 만들고, 그 후 샘플 간의 지오데식 거리를 유지하면서 차원을 축소하는 방법입니다
[ t-SNE ]
- 비슷한 샘플은 가까이, 비슷하지 않은 샘플은 멀리 떨어지도록 하면서 차원을 축소합니다
- 주로 시각화에 많이 사용하며, 특히 고차원 공간에 있는 샘플의 군집을 시각화할 때 사용합니다
[ 선형 판별 분석 (LDA) ]
- 분류 알고리즘이지만, 훈련 과정에서 클래스 사이를 가장 잘 구분하는 축을 학습합니다.
- 이 축은 데이터가 투영되는 초평면을 정의하는 데 사용가능합니다
- 투영을 통해 가능한 클래스를 멀리 떨어지게 유지시키므로 SVM 분류기 같은 다른 분류 알고리즘을 적용하기 전에 차원을 축소시키는 데에 좋습니다
'AI > Machine Learning' 카테고리의 다른 글
LLE (Locally Linear Embedding, 지역 선형 임베딩) (0) | 2022.12.12 |
---|---|
PCA (Principal Component Analysis, 주성분 분석) (0) | 2022.12.10 |
Decision Tree (결정 트리) (0) | 2022.12.06 |
Support Vector Machine (SVM, 서포트백터머신) (0) | 2022.12.06 |
Logistic Regression (로지스틱 회귀) (0) | 2022.12.06 |