인공지능을 개발하다보면 차원이 아주 많은 데이터셋을 볼 수 있을 것입니다.
차원을 높을 때의 단점은 다음과 같습니다.
- 직관적 통계인 시각화를 하기 힘듭니다. (3차원까지만 가능하기 때문.)
- 모델이 과대적합되기 쉽습니다. (입력 특성이 아주 많기 때문. 모델의 복잡도 상승.)
- 학습 시간이 오래 걸리게 됩니다. (데이터셋의 크기가 높아지기 때문.)
.
.
이렇게 차원이 높으면 좋지 않은 점들이 존재합니다.
높은 차원을 최대한 정보를 손실하지 않으면서 저차원으로 변환하는 알고리즘이 있다면 이를 어느정도 해결할 수 있습니다. PCA 알고리즘은 대표적인 차원축소 알고리즘입니다.
PCA 알고리즘은 데이터셋을 알맞은 초평면에 투영시켜 저차원으로 차원축소를 진행해줍니다.
이 알고리즘은 원래 데이터셋의 분산을 가장 많이 보존하는 축을 찾게됩니다.
이 의미는 원본 데이터셋과 차원축소된 데이터의 평균제곱거리를 최소화하는 축을 찾는 것입니다.
예를 들어 3차원 데이터셋을 PCA 알고리즘으로 차원축소 한다면, 제일 먼저 합리적인 1차원 축을 찾고, 그 후에는 먼저 찾은 축에 직교하면서 분산을 제일 많이 보존하는 축을 찾습니다. 그리고 세번째로는 먼저 찾은 두 축에 직교하는 축을 찾아나갑니다. 이런 축들을 PC (Principal Component) 라고 부릅니다. 자연스럽게 n차원 데이터셋은 n개의 PC를 가지고 있을 것입니다.
자, 그렇다면 내가 가지고 있는 데이터셋을 몇차원으로 차원축소하는것이 적절할지 어떻게 판단할까요?
explained variance ratio(설명된 분산의 비율)을 계산하는 방법이 있을 것입니다.
3차원 데이터셋에서는 총 3개의 PC를 찾을 수 있습니다.
첫번째 PC의 explained variance ratio가 80%이고,
두번째 PC의 explained variance ratio가 16%이고,
세번째 PC의 explained variance ratio가 4%라고 가정해봅시다.
그렇게 된다면 첫번째, 두번째 PC로, 즉 2차원으로 축소하여도 96%만큼 정보를 손실하지 않는 것입니다.
96%의 수치가 모델을 학습시키기에 문제가 없다고 판단된다면 2차원으로 차원축소해도 좋을 것입니다.
이런 식으로 고차원의 데이터셋을 몇차원으로 축소하는 것이 적절할지 판단할 수 있습니다.
PCA 알고리즘을 이용하여 차원축소한 데이터는 다시 복원할 수 있습니다.
원래 데이터셋과 차원축소 후 다시 복원한 데이터셋의 평균제곱거리를 재구성 오차라고 합니다.
앞의 단계에서 축소할때 사용한 PC들의 explained variance ratio가 높았다면 재구성 오차도 낮을 것입니다.
'인공지능 > 이론' 카테고리의 다른 글
(16) 인공 신경망 (0) | 2021.10.24 |
---|---|
(15) 비지도학습 (0) | 2021.10.23 |
(13) 앙상블 (0) | 2021.10.14 |
(12) 결정 트리 (0) | 2021.10.12 |
(11) SVM (0) | 2021.10.11 |