[Study] Machine Learning — SVD, PCA …

Doyun’s Journey
Doyun’s Lab
Published in
5 min readOct 27, 2020

𝖲𝖵𝖣, 𝖯𝖢𝖠 …

𝖡𝖺𝗌𝖾, 𝖢𝗈𝗈𝗋𝖽𝗂𝗇𝖺𝗍𝖾 𝖲𝗒𝗌𝗍𝖾𝗆

= 벡터공간 V에 대해 임의의 벡터집합 S가 서로 1차 독립이면서 V를 생성하면 S를 V의 기저라고 함

ex) 2차원 좌표계의 기저 = x축, y축 / 3차원 좌표계의 기저 = x축, y축, z축

​𝖤𝗂𝗀𝖾𝗇𝗏𝖺𝗅𝗎𝖾, 𝖤𝗂𝗀𝖾𝗇𝗏𝖾𝖼𝗍𝗈𝗋

= 행렬 A에 대해 Ax = λx를 만족하면, λ는 고유값(Scalar), x는 고유벡터

- 행렬 A가 x에 대한 확대/축소 변환을 가하는 연산자

- 선형변환에는 확대/축소/회전 등이 가능, 확대/축소만 가하는 경우 x가 고유벡터가 됨

- 확대/축소하는 비율이 고유값이 됨

𝖱𝖺𝗇𝗄

- Column Rank (열 계수) : 선형독립인 열 벡터의 최대 개수

- Row Rank (행 계수) : 선형독립인 행 벡터의 최대 개수

𝖤𝗂𝗀𝖾𝗇𝖵𝖺𝗅𝗎𝖾 𝖣𝖾𝖼𝗈𝗆𝗉𝗈𝗌𝗂𝗍𝗂𝗈𝗇

= N x N 크기의 정방행렬 A에 대하여, 3개의 행렬의 내적으로 나타내기

- Matrix Factorization 기법 (조건 : n개의 1차 독립인 고유벡터)

기저 v1, v2로 늘리고 줄인 변환

𝖲𝖣𝖵

= Singular Value Decomposition

- M x N 크기의 행렬 A에 대해, 3개의 행렬의 내적으로 나타내기

- 차원을 높이더라도 양은 그대로 (2차원 공간과 4차원 공간)

  • SVD 종류​

- 실제로 Full SVD보다, 축약된(Reduced SVD) 것 많이 활용

  • SVD 활용

- 해상도를 떨어뜨려 용량 낮추기

- 압축

𝖯𝖢𝖠

= Principal Component Analysis

- 데이터의 분포에 대한 주성분(축) 찾기 (데이터 패턴을 잘 표현해주는 최적의 Feature 조합을 찾기)

- Feature Selection or Feature Dimension Reduction에 사용

· PCA 구하기

- 1) 데이터들의 평균으로 원점을 가정

- 2) 데이터들에 대한 공분산 행렬, 고유값, 고유벡터 구하기

> Feature가 m개일 경우, 공분산 행렬은 m x m 크기의 행렬이 됨

* 공분산이란 ? — 성분들이 동시에 얼마나 늘거나 줄어드는가

- 3) 고유벡터 기반으로 데이터를 보면, 가장 큰 분산을 가지게 됨

  • PCA 정리

- 이미지 압축 등의 분야에서 쓰일 수 있음

- 분산이 작은 것을 중요하게 여겨야하는 데이터와 어플리케이션에 적합하지 않음 (공분산이 중요하므로)

- 데이터들의 분산이 직교하지 않는 경우에 적합하지 않음

- Feature Dimension이 큰 경우, 사람이 보면서 직관을 얻기 어렵지만 PCA를 이용하면 도움이 될 수 있음

- PCA, SVD 모두 Classifier가 아님

𝖫𝗂𝗇𝖾𝖺𝗋 𝖣𝗂𝗌𝖼𝗋𝗂𝗆𝗂𝗇𝖺𝗇𝗍 𝖠𝗇𝖺𝗅𝗒𝗌𝗂𝗌

= 선형 판별 분석

- 클래스 간 분산과 클래스 내 분산의 비율을 최대화하는 방식으로 Feature Dimension 축소

- 임의의 Vector에 Projection 했을 때 클래스들의 판별을 더 잘할 수 있게 해줌

- Class 중심 간 거리를 최대화 해야함

  • LDA 용도

- Class들 간 분류가 용이한 다른 Feature 축으로 변환/축소

- 분류에 적용 가능

  • LDA 한계

- 각 클래스의 ‘중심’에 데이터가 몰려있다는 가정, 비선형으로 분포된 데이터에는 적절치 않음

  • PCA vs LDA

--

--