용어 정리

정방 행렬에서만 가능한 고유값 분해와 달리 특이값 분해는 정방 행렬만이 아니라 행과 열의 크기가 다른 행렬에서도 적용이 가능합니다.

                            출처: https://www.pikpng.com/transpng/hxRRmbR/

                        출처: [<https://www.pikpng.com/transpng/hxRRmbR/>](<https://www.pikpng.com/transpng/hxRRmbR/>)

m x n 크기의 행렬 A는 m x m 크기의 행렬 U와 m x n 크기의 ∑, n x n 크기의 $V^T$로 분해됩니다. U, V에 속한 벡터를 특이 벡터(Singular Vector)라고 하며, 이 벡터들은 서로 수직(Orthogonal)하는 성질을 지닙니다. ∑는 직사각형 행렬로 대각 성분들은 Non-zero이고 이를 특이값(Singular Value)라고 하며, 나머지 값들은 모두 0이 됩니다.

A = U ∑ $V^T$에서 U는 $AA^T$를 고유값 분해에서 얻은 직교 행렬, V는 $A^TA$를 고유값 분해에서 얻은 직교 행렬입니다.

           출처: https://darkpgmr.tistory.com/106?category=460967

       출처: [<https://darkpgmr.tistory.com/106?category=460967>](<https://darkpgmr.tistory.com/106?category=460967>)

직교 행렬은 선형 변환 중 회전 변환을, 대각 행렬은 스케일 변환을 의미합니다.

A = U ∑ $V^T$에서 행렬 A는 $V^T$로 회전 변환을 하고 ∑ 로 스케일 변환을 한 뒤, U로 회전 변환을 합니다.

출처: 위키피디아 (Singular Value Decomposition)

출처: 위키피디아 (Singular Value Decomposition)

특이값(Singular Value)은 이 행렬로 표현되는 선형 변환의 스케일 변화를 나타내는 값이 됩니다. 위 수식에서 양변에 V를 내적하면 AV = U∑가 되고, U와 V에 속한 벡터들은 서로 직교하므로, V에 선형 변환 A를 한 뒤에 서로 직교하는 벡터로 구성된 행렬 U가 만들어지고 그 크기가 ∑ 만큼 차이가 나게 됩니다. 이를 정리해보면, 직교하는 벡터의 집합인 V에 대해 선형 변환A를 한 후에도 그 크기가 ∑만큼 변하지만, 여전히 직교하는 벡터의 집합 U를 만든다고 볼 수 있습니다.

Background

모델 압축은 BERT 이후로 요구되는 모델의 크기가 급격하게 증가하게 되어 여러 문제들이 제기되었습니다.

  1. Memory Limitation: pre-trained model에 사용되는 batch size가 계속 커지는 추세에 의해 메모리에 많은 부담이 된다.