차원의 저주(Curse of Dimensionality)

  • 훈련 데이터 셋의 특성이 너무 많아서(데이터의 차원이 너무 높아서) 훈련이 느리고, 성능이 낮은 현상

해결방법?

  • 차원의 수가 커질수록 서로 다른 샘플간의 거리는 기하급수적으로 증가한다.(고차원일수록 공간이 넓어지기 때문) -> 성능이 낮아진다.
  • 훈련 샘플의 밀도가 충분히 커질 때까지 훈련 세트의 크기를 키울 수도 있지만 앞서 언급된 것처럼 공간이 매우 넓기 때문에 현실적으로 힘들다.
  • 따라서 차원의 수를 감소시키는 방법이 유용하다.

차원 축소

  • 데이터에서 불필요하거나 중복되는 부분을 제거하거나, 데이터를 압축하여 차원의 수를 줄이는 것
  • 차원을 축소시키면 일부 정보가 유실되고, 훈련이 빨라지는 대신 성능이 감소할 수 있다.(어떤 경우는 성능이 오히려 높아질 수 있다.)
  • 데이터 시각화에 유리하다.

차원 축소를 위한 접근 방법

투영(Projection)

  • 대부분의 경우 실제 데이터들은 모든 차원에 걸쳐서 균일하게 퍼져 있지 않다.
    -> 결과적으로 모든 훈련 샘플들이 고차원 안의 저차원 부분 공간(subspace)에 놓여 있다.
    ex) 3차원 데이터에서 훈련 샘플들이 한 평면 위에 있다.
    -> 따라서 고차원 데이터를 저차원으로 투영시켜 데이터의 차원을 줄일 수 있다.
  • 저차원 부분공간이 왜곡된 형태도 이를 펼쳐서 투영시킬 수 있다.

매니폴드 학습(Maniford Learning)

매니폴드: 고차원 공간에서 휘어지거나 뒤틀린 모양

  • 많은 차원 축소 알고리즘이 훈련 샘플의 매니폴드를 모델링하는 방식으로 작동한다.
  • 매니폴드 학습은 실제 고차원 데이터셋이 더 낮은 저차원 매니폴드에 가깝게 놓여 있다는 매니폴드 가정또는 가설(Maniford Assumption or Hypothesis)

단, 데이터셋에 따라 매니폴드 학습으로 오히려 결정 경계가 더 복잡해지는 경우도 있으니 주의가 필요하다.

주성분 분석(PCA, Principal Component Analysis)

  • 데이터에 가장 가까운 초평면(Hyperplane)을 정의한 후, 데이터를 이 평면에 투영시킨다.
  • 가장 인기 있는 차원 축소 알고리즘

    PCA를 사용할 때 주의할 점
    PCA는 데이터셋의 평균이 0이라고 가정하므로 데이터를 원점에 맞춰주어야 한다.

분산 보존

  • 저차원의 초평면에 훈련 세트를 투영하기 전에 먼저 올바른(정보 손실이 적은) 초평면을 선택해야한다.
    -> 분산이 최대로 보존되는 축을 선택해야 정보가 가장 적게 손실된다.
    = 원본 데이터셋과 투영된 데이터 사이의 평균제곱거리를 최소화하는 축을 선택한다.

주성분(Principal component)

  • PCA에서 훈련 세트에서 분산이 최대인 축을 찾고, 첫 번째 축에 직교하는 분산을 최대한 보존하는 두 번째 축을 찾고, 앞의 두 축에 직교하는 세 번째 축을 찾으며 데이터셋의 차원 수 만큼 n개의 축을 찾는다.
  • i번째 축을 해당 데이터의 i번째 주성분(PC)이라고 한다.
  • 주성분은 n차원 벡터로 구성된다.

    훈련세트 XX의 주성분의 단위 벡터로 이루어진 행렬 V를 구하는 법
    X=UΣVTX = U\Sigma V^T
    위와 같이 특잇값 분해를 이용하여 V를 구할 수 있다.

설명된 분산의 비율(Explained Variance Ratio)

  • 각 주성분의 축을 따라 있는 데이터셋의 분산 비율을 나타낸다.

적절한 차원 수 선택
일반적으로 축소할 차원 수를 임의로 정하기보다는 충분한 분산(ex: 95% 이상)이 될 때까지 더할 차원의 수를 선택한다.
단, 시각화의 경우 2차원이나 3차원으로 축소한다.

점진적 PCA(IPCA, Incremental PCA)

  • 데이터셋을 미니배치로 나눠 IPCA 알고리즘에 하나씩 주입한다.
  • 훈련 세트가 크거나 온라인으로(새로운 데이터 지속적으로 준비될 때) PCA를 적용할 때 유용하다.

커널 PCA(kPCA, kernel PCA)

  • 커널 기법을 PCA에 적용하여 복잡한 비선현 투영을 수행하는 방법

지역 선형 임베딩(LLE, Locally Linear Embedding)

  • 비선형 차원 축소(NLDR, NonLinear Dimensionality Reduction) 기술 중 하나이다.
  • 투영에 의존하지 않는 매니폴드 학습방법이다.
  • 각 훈련 샘플이 가장 가까운 이웃(CN, Closest Neighbor)에 얼마나 선형적으로 연관되어 있는지 측정하는 방법

LLE의 작동 방식
W^=argminWi=1m(x(i)j=1mwi,jx(j))2\hat{W} = \underset{W}{\operatorname{argmin}}\displaystyle\sum^m_{i=1}{(x^{(i)}-\sum^m_{j=1}{w_{i,j}x^{(j)}})^2}
조건 {wi,j=0, xjxi의최근접이웃k개중하나가아닐때j=1mwi,j=1, i=1,2,•••,m일때\begin{cases} w_{i,j}=0,\quad\quad\quad x^{j}가 x^{i}의 최근접 이웃 k개 중 하나가 아닐 때\\ \sum^m_{j=1}{w_{i,j}}=1,\,\,\, i=1,2,•••,m일 때 \end{cases}
\\\,\\
Z=argminZi=1m(z(i)j=1mWi,j^z(j))2Z = \underset{Z}{\operatorname{argmin}}\displaystyle\sum^m_{i=1}{(z^{(i)}-\sum^m_{j=1}{\hat{W_{i,j}}z^{(j)}})^2}

기타 차원 축소 방법

랜덤 투영(Random Projection)

다차원 스케일링(MDS)

lsomap

t-SNE

선형 판별 분석(LDA)

profile
미래의 개발자입니다!

0개의 댓글