[Study] Machine Learning — SVD, PCA …
𝖲𝖵𝖣, 𝖯𝖢𝖠 …
𝖡𝖺𝗌𝖾, 𝖢𝗈𝗈𝗋𝖽𝗂𝗇𝖺𝗍𝖾 𝖲𝗒𝗌𝗍𝖾𝗆
= 벡터공간 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