이 레슨과 관련된 학습 키워드
인공지능(AI) — 기계가 생각하는 법 → 머신러닝 — 데이터에서 지식을 추출하다 → 비지도학습 & 평가 — 정답 없이 구조 찾기 → 차원 축소(Dimensionality Reduction)
주성분 분석(Principal Component Analysis)이 최대 분산의 축으로 데이터를 투영하여 차원을 축소하는 방법을 학습합니다.
머신러닝에서 데이터가 100개 피처를 가지고 있다고 생각해보세요.
실제로 중요한 건 10개에서 20개 정도예요, 나머지는 노이즈일 뿐이에요.
차원의 저주라는 현상이 있어요, 차원이 높아지면 데이터 포인트 사이의 거리가 전부 비슷해져요.
그림 왼쪽을 보세요, 2차원에서는 점들 사이 거리가 충분히 달라서 KNN이 잘 동작해요.
가운데를 보면 100차원에서는 최대 거리와 최소 거리의 비율이 1에 수렴해요, 모든 거리가 비슷해지는 거죠.
그러면 케이엔엔 같은 거리 기반 알고리즘이 완전히 망가져요, 가까운 이웃이 의미가 없어지거든요.
오른쪽 그래프를 보세요, 단위 초구의 부피가 차원이 5일 때 정점을 찍고 그 이후로 0에 수렴해요.
수학적으로 이건 데이터가 극도로 희소해진다는 뜻이에요, 샘플이 공간을 채울 수 없게 돼요.
차원 축소는 첫째로 과적합을 방지해요, 피처가 줄면 모델 복잡도가 낮아지니까요.
둘째로 시각화가 가능해져요, 고차원 데이터를 2D 스캐터 플롯으로 볼 수 있어요.
셋째로 연산 효율이 극적으로 좋아져요, 에스브이엠의 학습 시간이 수백 배 줄어들 수 있어요.
하단에 세 가지 효과가 정리되어 있어요, 과적합 방지와 시각화와 연산 효율이에요.
엠니스트 데이터에서 784차원을 50차원으로 줄이면 에스브이엠 학습이 245배 빨라져요.
차원 축소에는 크게 두 가지 접근법이 있어요, 변수 선택과 특성 추출이에요.
변수 선택은 원래 피처 중에서 중요한 것만 고르는 거예요, 해석이 쉽죠.
특성 추출은 원래 피처를 조합해서 새로운 피처를 만드는 거예요, 피씨에이가 대표적이에요.
피씨에이는 데이터의 분산을 최대한 보존하면서 차원을 줄이는 선형 변환 방법이에요.
1901년 피어슨이 최초로 제안하고, 1933년 호텔링이 현재 형태로 정립한 역사 깊은 기법이에요.
지금도 거의 모든 머신러닝 프로젝트에서 이디에이 단계에 피씨에이를 사용해요.
차원의 저주를 이해하면 왜 피씨에이가 필수인지 직관적으로 알 수 있어요.
이제 피씨에이의 핵심 아이디어를 시각적으로 살펴볼게요.
선생님: 차원의 저주가 구체적으로 어떤 문제를 만드는지 설명해볼래요?
학생: 차원이 높으면 계산이 느려지는 건 알겠는데, 거리가 비슷해진다는 게 정확히 뭔가요?
선생님: 좋은 질문이에요! 10차원에서 임의의 두 점 사이 거리를 재면 거의 다 비슷한 값이 나와요, 1000차원이면 더 심하죠.
학생: 그러면 케이엔엔은 가까운 이웃을 찾는 건데, 다 비슷하면 의미가 없겠네요?
선생님: 정확해요! 그래서 피씨에이로 의미 있는 방향만 남기면 거리 기반 알고리즘이 다시 잘 동작하게 돼요.
학생: 변수 선택과 특성 추출 중에 뭐가 더 좋은 건가요?
선생님: 해석이 중요하면 변수 선택, 성능이 중요하면 피씨에이 같은 특성 추출이 좋아요, 상황에 따라 다르죠.