본문 바로가기

LG Aimers

Module2. Mathematics for ML

Part1.  Matrix Decompositions 행렬 분해

(1) Determinant and Trace

[Determinant 행렬식 ]

 

det(A) ≠ 0 => A is invertible (가역)

 

  • A가 2x2 matrix일 때 
    • det(A) = a11a22 - a12a21 

  • A가 3x3 matrix일 때

  • 일반화 => Laplace expansion  

  • 성질

 

[Trace 대각합 ]


(2) Eigenvalues and Eigenvectors

  • 예제


(3) Cholesky Decomposition

  • symmetric, positive definite matrix (모든 eigen value가 0보다 클 때)인 matrix A, A = LL^T
  • L : 하삼각행렬 , A의 Cholesky factor
  • 적용) fast determinant computation : det(A) = det(L)det(L^T) = det(L)^2
    det(L) = 삼각행렬이므로 주대각성분끼리의 곱

(4) Eigendecomposition and Diagonalization 

[ Diagonal matrix 대각 행렬 ]

 

[ Eigen decomposition 고윳값 분해 ]

  • matrix Adiagonalizable 이라면 diagonal matrix D = P^-1 * A * P 
    -> A^k , A^-1, det(A) 연산이 쉬워짐 ①②③
  • matrix Aorthogonally diagonalizable 이라면 diagonal matrix D = P^-1 * A * P  = P^T* A * P 
    -> P : orthogonal matrix : P^T = P^-1
  • A 가 orthogonally diagonalizable <=> symmetric (대칭)
  • A = P * D * P^T

(5) Singular Value Decomposition* (SVD : 특잇값분해)

  • 임의의 행렬 A (m*n)가 있을 때, matrix S = A^T*A 는 항상 symmetric, positive semidefinite
  • S에 대해 eigen decomposition한 결과 
  • A = U ∑ V^T

  • singular values = diagonal entries (∑ 의 대각 성분)
  • U의 벡터들 = left singular vectors
  • V의 벡터들 = right singlular vectors
  • 고윳값 분해와 다르게 U와 V가 다른 형태의 matrix
  • SVD는 항상 존재, EVD는 symmetric matrix일 때만 존재하기 때문에 SVD가 일반적으로 많이 쓰임

 

  • 밑바닥부터 시작하는 딥러닝2에서 나온 내용
    • 2.4.2, 2.4.3 101p ~106p
    • 중요한 정보는 최대한 유지하면서 벡터의 차원을 줄이는 방법으로 사용
    • 특잇값이 작은 것은 버리는 Truncated SVD 같은 기법 사용으로 성능 향상 

 


Part2. Convex Optimization

어려워서 이해를 거의 못했다..

https://youtube.com/playlist?list=PL_iJu012NOxeMJ5TPPW1JZKec7rhjKXUy&si=KkocN3CK03BBP7rG

https://www.youtube.com/watch?v=DyUW3UKxHOo&list=WL&index=2&ab_channel=Docceptor

https://convex-optimization-for-all.github.io/

 

위 자료들 참고해서 추가 공부가 필요할 듯.

 


Part3. Principal Component Analysis 주성분분석

https://angeloyeo.github.io/2019/07/27/PCA.html

위 자료를 참고해서 개념만 이해를 해보았다.

 

  • PCA : 데이터들을 공분산행렬의 고유벡터에 정사영시켜 차원을 낮추는 것

-> 벡터가 정해진다면 데이터는 1차원으로 표현가능 

 

  • 공분산 행렬 : 데이터의 구조, 특히 특징 쌍들의 변동이 얼마나 닮았는지 나타내는 행렬 
    • 원래 원의 형태로 주어졌던 데이터가 공분산행렬과의 선형 변환에 의해 변환된 결과로 데이터를 나타냄

  • 공분산행렬의 각 원소들이 의미하는 것

  • 공분산행렬의 고유벡터 - 데이터가 어떤 방향으로 분산되어 있는지 나타내줌 
  • 고유값 - 고유벡터 방향으로 얼마만큼의 크기로 벡터공간이 늘려지는 지
    -> 고유 값이 큰 순서대로 고유 벡터를 정렬하면 중요한 순서대로 주성분을 구하는 것
  • 공분산 행렬의 수식적 의미

X^R*X : 각 데이터 특징들의 변동이 서로 얼마나 닮았는지 계산하는 과정 => 데이터가 어떻게 분포해있는지 나타내는 행렬

1/n : 숫자 n이 커질수록 내적 값이 커지는 것을 방지하기 위해 내적값들을 n으로 나눠줌

 

  • 고차원의 데이터를 어디까지 차원감소 시켜주는 것이 타당한 지는 여러 방법이 존재
    • scree plot 이용

-> 3차원까지 차원 감소 


강의 내용 정리 : LG Aimers AI Essential Course - Module2 by KAIST 신진우 교수님

선형대수 유튜브 동영상 참고 : https://youtube.com/playlistlist=PL_iJu012NOxdZDxoGsYidMf2_bERIQaP0&si=lM_RbMSZQIanHS9F

선형대수 책 참고 : http://matrix.skku.ac.kr/2015-Album/BigBook-LinearAlgebra-2015.pdf

'LG Aimers' 카테고리의 다른 글

Module 7. B2B 마케팅  (0) 2024.01.21
Module6. 딥러닝 (2)  (0) 2024.01.20
Module6. 딥러닝 (1)  (0) 2024.01.20
Module4. 지도학습(분류/회귀)  (0) 2024.01.16
Module3. Machine Learning개론  (1) 2024.01.11