우리가 데이터를 가지고 예측 모델을 만들 때 대체로 데이터의 차원이 하나일 때 보다 여러 차원일 때 더 정확한 모델을 만들 수 있습니다.
예를 들어 A라는 사용자에게 SNS 글을 추천해준다고 하였을 때 SNS 글을 표현하는 속성이 "태그"하나 일때 보다
태그, 사진, 글 내용, 팔로워 수 등등의 정보가 있을 때 더 정확한 추천이 가능하겠죠?
이게 일반적으로 우리가 모델을 만들 때의 생각입니다.
그러나 차원의 저주는 반대의 이야기 입니다.
데이터 학습을 위한 차원이 증가할 수록 성능이 저하가 되는 현상을 이야기합니다.
이는 차원이 증가할 수록 개별 차원 내에 학습할 데이터 수가 적어지는 현상 때문입니다.
즉, 차원이 커지면 데이터를 표현해야하는 공간이 커지고, 그 공간 내에 모든 경우를 다 채우려면 더 많은 데이터가 필요해집니다.
차원이 커짐에 따라 제대로 된 모델을 학습하기 위해 필요한 데이터가 기하급수적으로 늘어나는 현상을 말하는 것입니다.
따라서 무조건 차원이 증가한다고 성능이 저하가 되는 것은 아니고, 관측치 수보다 변수의 개수가 더 많을 때 발생하는 문제입니다.
그렇다면 왜 차원이 커지면 더 많은 데이터가 필요한 것일까요?
데이터의 차원이 커지면 그만큼 데이터를 설명하는 변수의 수가 많아지는데, 이에 각 차원 별 충분한 데이터 수가 존재하지 않으면 과적합이 될 수 있기 때문입니다.
따라서 차원이 큰 데이터의 경우 차원을 줄여서 사용해야 합니다.
대표적인 방법으로는 PCA(Principal Component Anlysis)라는 주성분 분석 기법이 있습니다.
참고자료)
'DL & ML > Study' 카테고리의 다른 글
모델 일반화를 위한 데이터 전처리 기법 (0) | 2022.02.21 |
---|---|
모델 큐레이션 사이트 모음 (모델 트렌드) (0) | 2022.01.24 |
Adversarial Training(적대적 학습) 이란? (0) | 2021.11.28 |