차원의 저주란 차원이 증가하면서 학습데이터 수가 차원 수보다 적어져서 성능이 저하되는 현상을 말한다. 차원이 증가할수록 변수가 늘어나고, 개별 차원 내에서 학습할 데이터 양이 줄어든다.
이때 주의할 점은 변수가 증가한다고, 반드시 차원의 저주가 발생하지는 않는다. 관측치보다 변수 수가 많아지는 경우에 발생한다.
차원이 증가할 수록 개별 차원 내 학습할 데이터 수가 적어지는 형상을 sparse 현상이라고 한다.
위 그림처럼 차원이 증가할수록 빈 공간이 많아진다.
같은 데이터지만 1차원에서는 데이터 밀도가 촘촘했지만, 2차원, 3차원으로 차원이 커질수록 점점 데이터 간 거리가 멀어진다. 이렇게 차원이 증가하면 빈 공간이 생겨 학습 시켰을 때 모델 성능이 저하될 수 밖에 없다.
차원의 저주 문제를 해결하려면 이론적인 해결책은 훈련 샘플의 밀도가 충분히 높아질 때까지 데이터를 모아 훈련 세트 크기를 키우는 것이다.
하지만 아쉽게도 일정 밀도에 도달하기 위해 필요한 훈련 샘플 수는 차원의 수가 커짐에 따라 기하급수적으로 늘어난다.
차원축소 기법을 통해 차원의 저주 문제를 해결한다.
특성 수를 크게 줄여 차원축소를 통해 훈련 속도가 빨라지고 시각화 하기에도 좋다. 하지만 일부 정보가 유실 될 수 있기에 성능도 나빠질 우려는 있다.
결론적으로 무작정 차원 축소를 하기 보다 원본 데이터로 훈련해 시간을 측정하여 필요 여부를 결정할 필요가 있다.
https://velog.io/@ohs2251/%EC%B0%A8%EC%9B%90%EC%9D%98-%EC%A0%80%EC%A3%BC
https://brunch.co.kr/@jejugrapher/227
사람이 여행을 하는 것은 도착하기 위해서가 아니라 여행하기 위해서이다. -괴테