본문 바로가기

머신러닝/[인공지능을 위한 선형대수]

고유값 분해와 특이값 분해의 응용

학습목표

 마지막으로 이번 강의는 이제까지 배운 고유값 분해와 특이값 분해가 실제 딥러닝과 머신러닝에는 어떤 식으로 활용될 수 있는지 배워보는 시간입니다. 고유값 분해가 머신러닝에서 어떠헥 쓰이는지 알아보고, 특이값 분해가 'Low-rank approximation'과 'Dimension-reducing transformation'에서 어떻게 활용될 수 있는지 배워보겠습니다.

핵심 키워드

  • 주성분분석(Principal Component Analysis)
  • 그람 행렬(Gram Matrix)
  • Low-Rank Approximation
  • Dimension-Reducing Transformation

학습하기

 ED가 이제 Machine learning 쪽에서는 어떻게 쓰이는가-에 대해 말해보겠습니다. ED는 말씀드렸듯이, 존재할 때도, 존재 하지 않을 때도 있습니다. 다만, 현실적으로 저희가 다루는 데이터는, Symmetric positive definite matrix인 경우가 거의 대부분입니다. 그래서 저희가 feature(예: 몸무게, 키, 혈액형 등)를 row로, data item(예: 사람)을 col으로 갖는 행렬 A를 다룬다고 생각해봅시다. 이때 A'A를 계산하면, 이는 data item by data item matrix가 될겁니다. 이것의 의미를 생각해보면, 내적의 정의를 생각해봤을 때, A'의 Row와 A의 Col간의 곱셈 연산으로 각 원소값들이 정의가 될텐데, 각각의 Row와 Col이 하나의 사람에 대한 정보라는 것을 생각해보면, 두 사람간의 어떤, 유사도를 계산한다고 생각할 수 있습니다. 반대로 AA'을 계산하면 feature by feature matrix가 구성되겠죠. 이 경우는 두 피쳐간의 유사도니까, 상관관계를 나타낸다-라고 생각할 수 있습니다. 이런 유사도, 상관계수라는 아이디어를 통해서 PCA를 진행할 수도 있구요. Style transfer task를 해결할 때, Gram matrix를 사용하는데, 이게 사실 정확하게 AA'의 역활과 같습니다. Conv filter가 10개가 있다면, 이 각각이 Feature가 되구요. 한 이미지에서의 어떤 위치가 Data item의 역활을 진행하게 되는거죠.

 ED 등을 가지고 Machine learning을 진행할 때, 어떤 문제 중 하나가 Low-Rank approximation인데요. 이것의 의미는 애초에 어떤 행렬 A를 SVD를 통해 나타내었을 때, 몇 개의 Row를 가져와야 본래의 A를 잘 표현할 것인가 하는 문제입니다. Rank라는 건 A 행렬의 독립인 열이니까 지금은 n이 되는데, 이중 몇개를 골라와서 우변을 표현했을 때, 가장 본래의 A를 잘 표현할 것인가-라는 거죠. 이걸 계산하려면 아래 그림과 같은 최적화 문제를 계산하면 되겠죠. 이 때, Measurement Error를 고려할 필요가 있는데, 이는 추후 글에서 정리하도록 하겠습니다.

 이를 그림으로 표현하면 아래와 같이 표현할 수 있겠죠. 참고로 지금 저희는 고유값이 모두 양수라고 가정합니다.

 그 다음에, Low-Rank factorization과 관련해서 Dimension-Reducing transformation을 말씀드리겠습니다. Feature by data item matrix를 다룰 때, m개의 feature를 사용하던 기존의 테이블을 r개의 feature만 사용하도록 차원축소를 하는 개념입니다. 이때 Transformation은 Linear한 것을 사용합니다. 물론 선형변환 한 이후에 다시 비선형변환을 추가할 수도 있구요. 순수하게 선형변환만으로 처리할 수도 있습니다.

 전에 한 번 말씀드렸듯이, 일반적으로 어떤 Feature 두 열을 생각해보면, 두 열에는 어떤 정보가 대개 중복되어있습니다. 그렇다면 이런 중복된 정보를 제거하기 위해서는 Orthonormal하게 만들어주면 되겠죠. 10개의 Feature가 있다면, 이걸 Orthonormal한 3개의 Feature로 변환시키자는 거죠. 그럼 데이터가 가지던, 원래의 정보를 가장 잘 보존하는 다른 행렬을 어떻게 계산할 것이냐. 또다시 최적화 문제를 해결하는 것으로 넘어갑니다. 그런데 이것의 해가 앞서 계산했던 SVD최적화 문제의 해와 같다. 

 직접 계산을 해보시면, 아래와 같이 솔루션이 사실상 같음을 증명하실 수 있습니다.

 이렇게 SVD는 PCA, 자연어에서의 Topic modeling, Style transfer에서의 Gram matrix 등 많은 분야에서 사용되고 있습니다. 이상입니다.

'머신러닝 > [인공지능을 위한 선형대수]' 카테고리의 다른 글

특이값 분해 2  (0) 2020.05.28
특이값 분해 1  (0) 2020.05.27
고유값 분해와 선형변환  (0) 2020.05.26
대각화  (0) 2020.05.25
특성방정식  (0) 2020.05.24