본문 바로가기

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

특이값 분해 1

학습목표

 드디어 이번 강의에서는 전체 강의의 마지막 주제인 특이값 분해(SVD, Singular Value Decomposition)을 배우겠습니다. 그리고 이에 더 나아가 특이값 분해를 여러 관점에서 해석해보는 시간을 가지겠습니다.

핵심 키워드

  •  특이값 분해(Singular Value Decomposition)

학습하기

 이제 특이값 분해(Singular Value Decomposition)을 해봅시다. 이건 여태까지 배웠던 내용들의 총집합이라고 생각하셔도 될 것 같습니다. 고유값 분해와도 생김새가 굉장히 비슷하죠. SVD는 ED와 달리 Rectangular matrix A를 대상으로 합니다. A를 3가지 행렬로 분해하는 건데요, ED에서는 Invertible matrix V와 Diagonal matrix D가 필요했던 것 처럼, 이번에는 Orthonormal Columns을 갖는 U,V와, Diagonal matrix S(정확하게는 정방행렬이 아니므로 대각행렬은 아니고, 대각성분이 존재하고, 나머지 값은 0인 행렬)가 필요합니다. V같은 경우에, 그 자체로는 각 열이 Orthonormal하지만, 전치시켜 사용되기 때문에, 실질적으로는 Orthonormal Row로써 활용이 되겠죠.

 이걸 그림으로 보시게 되면, 아래와 같습니다.

 여기서, 식을 조금 변형해봅시다. Sum of Outer product를 사용할겁니다. 아래와 같이, U,S,V의 각각의 값들을, 잘라서 생각을 해보시면, 우측과 같은 형식의 합이 되는셈이고, 이를 다시 상세히보면, u1*s1은 컬럼 벡터에 대해 스케일링(스칼라곱)을 하는 것으로 생각하시면 되겠죠. 여기에 v1을 곱해주게 되는데, u1*v1이 Outer product가 되는 거겠죠. 스칼라는 순서가 상관없으니까 s1*u1*v1으로 생각하셔도 충분합니다.

 그리고 이런 우변의 n개 성분들을 생각하기에 따라 아래 그림처럼 표현할 수 있겠죠.

 SVD의 다른 양상을 생각해보시면, Orthonormal matrix U,V가 어떤 역활을 하는지에 집중해보셔야합니다. 앞서 했었던, QR을 생각하며, USV^T를 생각해보죠. U의 Col은 Orthonormal합니다. 그러니까 이건 Q에 해당하는, 서로 직교하는 벡터들이라고 생각해보면, 이제 다음의 R자리에 해당하는 값이 본래의 벡터를 선형결합으로 표현하기 위한 어떤 스케일링값이라는 걸 떠올려보면, 꽤나 유사합니다. 자 그러면 Gram-Schmidt orthogonalization을 사용하면, U와 V를 계산하는 건 가능한데, 문제는 이런 Orthonormal basis가 유일한가- 하는 점이죠. 정답은 유일하지 않죠. 여러 개가 존재합니다. 이유는 Gram-Schidt 방법을 사용할 때, 기존에 주어진 벡터들의 순서에 맞게끔 진행이 되는데, 그 순서가 변동되게 되면, 결과도 달라지기 때문입니다. 그럼 이런 여러 가능성 중에, 특정한 조건을 만족시키는 Orthonormal basis를 찾기를 원합니다. U와 V를 연결지을 수 있도록 하는 조건이죠. 그게 바로 Av = su입니다. V에서의 Orthonormal한 Col에 A를 곱한 값이 U의 Orthonormal한 Col에 s를 곱한 값이, 단순히 길이를 변동시킨 값이 같다. 이게 순서가 맞아떨어지게 구성되기를 원하는 겁니다. ED에서 봤던 식과 비슷한 느낌도 있습니다. 그 때는 A가 정방행렬이었는데, 지금은 정방행렬도 아니고, 다른 벡터들 간에 관계를 의미하죠.

 그리고 A=USV^T의 양 변에 V를 곱하면, AV=US인데, 이런 연산도 ED에서 봤었습니다. 아래의 그림과 같이 진행되는데, 결국 A*vi = si*ui 가 도출되겠습니다. 그러면, V가 Orthonormal하기 때문에, V 의 역행렬은 V의 전치행렬과 같으니까, 결국 A*vi = si*ui 를 만족하면 A=USV^T가 유도되겠습니다.

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

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