상세 컨텐츠

본문 제목

PCA

AI/Machine Learning

by mk coding 2024. 10. 12. 19:09

본문

PCA(Principal Component Analysis)는 고차원 데이터를 저차원으로 축소하면서도 데이터의 중요한 정보(변동성)를 최대한 유지하려는 방법이다. 이를 통해 데이터의 차원 축소, 잡음 제거, 시각화 또는 데이터의 구조 분석을 할 수 있다. 데이터를 가장 큰 분산을 설명하는 방향(주성분)으로 변환하여, 차원이 축소된 저차원 공간에서 데이터의 핵심적인 패턴을 유지한다.

 

과정

  1. 데이터 중심화:
    • 데이터의 평균을 중심화하지 않으면 공분산 행렬에 대한 분석이 왜곡될 수 있다. 평균을 중심화하지 않으면, 데이터의 분산이 실제로 원점을 기준으로 분석되지 않기 때문에, 주성분 분석에서 부정확한 결과를 초래할 수 있다. 따라서 데이터 중심화는 데이터의 분산을 정확히 분석하여 올바른 주성분을 찾기 위해 필수적이다.
  2. 공분산 행렬 계산
    • 공분산 행렬을 사용하는 이유
      • 데이터의 변동성 분석 - 공분산 행렬의 대각선 요소는 각 변수의 분산을 나타내고, 비대각선 요소는 두 변수 간의 공분산을 나타낸다.
    • pca의 목적은 데이터의 가장 큰 변동성(분산)이 있는 방향을 찾는 것이 때문에, 공분산 행렬을 분석하는 것이 주성분을 찾는 핵심이다.
  3. 고유값 분해
    • 고유벡터: 행렬에 의해 변환되었을 때 방향이 변하지 않는 벡터
    • 고유값: 그 변환에서 고유벡터의 크기 변화 비율
    • 즉, 고유벡터는 변환의 "특별한 방향"을 나타내며, 고유값은 그 방향에서 벡터가 얼마나 늘어나거나 줄어드는지를 나타낸다.
    • 공분산행렬을 고유값 분해하면 고유 벡터는 공분산 행렬이 설명하는 주된 방향, 즉 주성분 벡터를 나타낸다. 이때, 고유값은 그 방향으로의 분산 크기를 나타낸다.
    • 추가적으로, 공분산 행렬은 대칭이고, 양의 정준부호 행렬이기 때문에, 고유값 분해를 통해 얻은 고유벡터들은 서로 직교한다. 따라서, 고유값 분해를 통해 얻은 고유벡터 행렬은 orthnormal matrix이다. 
  4. 주성분 선택
    • 고유값을 내림차순으로 정렬하여, 가장 큰 𝑘개의 고유값에 해당하는 고유벡터를 선택한다.
    • 이 고유벡터들은 데이터의 가장 큰 분산을 설명하는 주성분(Principal Components)을 나타낸다. 선택된 주성분 벡터들은 서로 직교하며, 각각 데이터의 다른 분산 방향을 설명한다.
    • 각 고유벡터(주성분 벡터)는 원본 데이터의 변수들의 선형 결합으로 나타낼 수 있으며, 다음과 같이 표현된다: 

    •  이러한 주성분 벡터를 통해, 원본 데이터는 주성분 벡터들에 의해 재표현되며, 이는 데이터의 변동성이 가장 큰 방향을 기준으로 데이터를 해석하는 데 도움을 준다. 여기서 𝑘는 최종적으로 남길 차원의 수를 나타낸다.
  5. 데이터 투영
    • 고유벡터로 구성된 V_k가 orthonormal matrix라고 하자.
    • 일반적으로 orthonormal basis가 주어졌을 때 정사영 벡터를 구하는 공식은 다음과 같다.
  6. svd와의 관계
    • PCA는 공분산 행렬의 고유값 분해를 사용하지만, 실제로는 SVD를 통해 더 효율적으로 계산할 수 있다. ( 추후 근거 추가할 것)
    • 데이터 행렬 $𝑋_{centered}$에 대해 SVD를 적용하면:
      $𝑋_{centered} = 𝑈Σ𝑉^𝑇$
      • 여기서 U는 좌측 특이벡터, Σ는 특이값 행렬, V는 우측 특이벡터이다.
    • 이때, V는 PCA에서 구한 고유벡터와 동일하며, Σ는 고유값의 제곱근과 관련있다.
    • 따라서, SVD를 사용하여 고유값 분해 대신 PCA를 수행할 수 있다.

 

'AI > Machine Learning' 카테고리의 다른 글

Information Theory  (0) 2024.12.08
sigmoid function의 이해  (0) 2024.02.04

관련글 더보기