> >
Post

[선형대수] 01 - 고유값과 SVD

[선형대수] 고유값, 고유벡터, 특이값 분해의 개념

[선형대수] 01 - 고유값과 SVD

들어가며

이번 포스팅은 AI/ML에서 자주 쓰이는 선형대수의 핵심 개념고유값, 고유벡터와 SVD를 정리했다.



고유값과 고유벡터 (Eigenvalue & Eigenvector)


1. 행렬과 벡터

고유값과 고유벡터에 대한 내용을 다루기전에 복습차원에서 행렬과 벡터의 기본 개념을 먼저 정리

행렬 (Matrix)

  • 행렬은 수를 직사각형 형태로 배열한 구조로, 선형변환을 나타내며, 데이터 변환을 담당한다.
  • 정방행렬: 행의 개수와 열의 개수가 정사각형 모양의 행렬을 말함
  • 선형변환: 벡터를 다른 벡터로 변환하는 역할

행렬

벡터 (Vector)

  • 벡터는 방향과 크기를 가진 양이다.
  • 반면, 스칼라(Scalar)는 방향 없이 크기만 있는 양이다.
  • 예: v = (3, 4) = 오른쪽으로 3, 위로 4만큼의 벡터
  • AI/ML에서는 데이터의 특성들을 벡터로 표현한다.

벡터



2. 고유값과 고유벡터의 개념

고유값과 고유벡터는 행렬 변환에서 방향은 유지되고 크기만 변하는 특별한 관계를 나타낸다.

  • 행렬 A를 선형변환으로 봤을 때, 선형변환 A에 의한 변환 결과가 자기 자신의 상수배가 되는 0이 아닌
  • 벡터를 고유벡터라 하고 이 상수배 값을 고유값이라 한다.
  • 즉, 행렬 변환 후에도 방향은 그대로 유지되고 크기만 몇 배로 변하는 벡터고유벡터고, 그 배수가 고유값이다.
  • 고유값: 행렬 변환에서 고유벡터가 얼마나 스케일링되는지를 나타내는 스칼라 값 (크기 정보)
  • 고유벡터: 행렬 변환 후에도 방향이 바뀌지 않는 특별한 벡터 (방향 정보)
    • A: 행렬
    • v: 고유벡터
    • λ: 고유값 (람다라고 함)

고유값 고유값과 고유벡터

위 개념이 중요한 이유데이터나 행렬 변환에서 중요한 방향과 그 영향력을 파악할 수 있게 해주며
이런 특성 때문에 고유값 분해, 특이값 분해, 차원 축소 등에 쓰이기 떄문에 중요하다.



3. 고유값 분해 (Eigenvalue Decomposition)

고유값 분해정방행렬고유값과 고유벡터를 이용해 분해하는 방법이다.

고유값분해

왜 분해하는가?

  • 계산이 쉬워짐: 복잡한 행렬 연산을 간단하게
  • 데이터 이해: 행렬 안에 숨어있는 주요 패턴 발견
  • 차원 축소: 중요한 정보만 골라내기

고유값 분해 수식: M = QVQ^(-1)

  • M: 원본 정방행렬 (n×n)
  • Q: 고유벡터들을 열로 하는 행렬 (n×n)
  • V: 고유값들을 대각선에 배치한 대각행렬 (n×n)
  • Q^(-1): Q의 역행렬 (n×n)




특이값 분해(Singular Value Decomposition, SVD)


1. SVD란?

SVD(특이값 분해)는 임의의 행렬을 세 개의 행렬의 곱으로 분해하는 방법

SVD 특이값 분해

고유값 분해 vs SVD 차이점

  • 고유값 분해는 정방행렬에 대해서만 가능하지만
  • 특이값 분해는 정방행렬뿐만 아니라 행과 열의 크기가 다른 행렬에 대해서도 적용 가능
  • 즉, 특이값 분해는 모든 직각 행렬에 대해 가능하다.
    • 고유값 분해: 정방행렬(n×n)에만 적용 가능
    • SVD: 모든 직사각형 행렬(m×n)에 적용 가능

SVD 수식: A = UΣV^T

  • U: 왼쪽 특이벡터들 (m×m)
  • Σ: 특이값들을 대각선에 배치한 행렬 (m×n)
  • V^T: 오른쪽 특이벡터들의 전치 (n×n)



2. 왜 SVD를 사용하는가?

SVD데이터의 핵심 정보만 추출하여 계산 효율성과 저장 공간을 획기적으로 개선하는 도구다.

SVD의 핵심 장점

  • 차원 축소: 고차원 데이터를 저차원으로 압축하면서 중요한 정보는 보존
  • 노이즈 제거: 데이터의 주요 패턴만 남기고 불필요한 정보 제거
  • 계산 효율성: 복잡한 행렬 연산을 더 간단하게 처리
  • 메모리 절약: 원본보다 훨씬 적은 저장 공간 사용
  • 잠재 요인 분석: 데이터 안의 잠재 요인을 파악할 수 있어, 추천, NLP 등 다양한 영역에서 활용 가능

고유값 분해의 한계를 극복

  • 고유값 분해: 정방행렬에만 적용 가능 → 실제 데이터는 대부분 직각행렬
  • SVD: 모든 형태의 행렬에 적용 가능 → 실무에서 더 유용

AI에서 SVD가 중요한 이유

  • 빅데이터 처리: 수백만 차원의 데이터를 몇백 차원으로 압축
  • 패턴 발견: 숨겨진 데이터 패턴과 관계 자동 발견
  • 추천 정확도 향상: 사용자의 숨겨진 선호도 파악



3. 활용 사례

SVD는 AI 분야에서 차원 축소, 추천 시스템, 자연어 처리 등 다양한 영역에서 활용되고 있다.

주성분 분석 (PCA)

  • 목적: 고차원 데이터를 저차원으로 압축하면서 중요한 정보는 유지
  • 원리: SVD를 사용해 데이터의 주요 방향(주성분) 찾기
  • 활용: 데이터 시각화, 차원의 저주 해결, 노이즈 제거
  • 예시: 1000차원 데이터를 2D 그래프로 시각화

추천 시스템

  • 목적: 사용자에게 맞춤형 콘텐츠 추천
  • 원리: 사용자-아이템 행렬을 SVD로 분해하여 잠재 요인 추출
  • 활용: Netflix 영화 추천, Amazon 상품 추천, Spotify 음악 추천
  • 장점: 희소한 평점 데이터에서도 패턴 발견 가능

자연어 처리 (NLP)

  • 잠재 의미 분석(LSA): 문서-단어 행렬을 SVD로 분해
  • 목적: 단어의 숨겨진 의미와 문서 간 유사도 파악
  • 활용: 검색 엔진, 문서 분류, 텍스트 요약
  • 효과: 동의어나 유사한 의미의 단어들을 자동으로 그룹화

이미지 처리

  • 이미지 압축: 중요한 특징만 남기고 용량 줄이기
  • 노이즈 제거: SVD로 주요 성분만 복원하여 깨끗한 이미지 생성
  • 얼굴 인식: Eigenfaces 기법의 기초 원리
This post is licensed under CC BY 4.0 by the author.