랭크(rank)는 행렬의 ‘차원’ 또는 ‘정보 용량’을 나타내는 수치로, 아래와 같이 이해하시면 됩니다.
1. 행렬의 랭크란
• 선형 독립 열(또는 행)의 최대 개수
주어진 행렬을 구성하는 열(또는 행) 벡터들 중에서 서로 선형 독립인 벡터의 최대 개수가 그 행렬의 랭크입니다.
• 정보의 차원 수
랭크가 r이라면, 원본 데이터가 r차원의 정보 공간 안에 포함된다고 볼 수 있습니다.
2. 랭크의 예시
A = \begin{bmatrix}
1 & 2 & 3\\
2 & 4 & 6\\
1 & 1 & 1
\end{bmatrix}
• 두 번째 열은 첫 번째 열의 2배, 세 번째 열은 첫 번째 열과 두 번째 열의 합으로 표현되므로
• 선형 독립인 열은 첫 번째 열 [1,2,1]^T 와 세 번째 열 [3,6,1]^T 정도로, 랭크는 2입니다.
3. 저(低)랭크(low-rank)가 의미하는 것
• 랭크 r이 작다는 것은 “데이터의 실제 정보 차원이 원래 행렬 크기보다 훨씬 낮다”는 뜻입니다.
• 예를 들어 원본 차원 d_{model}=100인 임베딩을 랭크 r=20인 행렬로 투영하면,
100차원의 데이터를 20차원의 잠재 공간으로 압축하여 표현하는 것과 같습니다.
4. 랭크를 줄이는 목적
1. 파라미터·연산량 절감
완전한 d * d 행렬 대신 저랭크 d * r와 r * d 두 개의 작은 행렬 곱으로 대체하면,
파라미터 수와 곱셈·덧셈 연산량이 크게 줄어듭니다.
2. 노이즈 제거·일반화 성능 개선
정보의 핵심 차원만 남기고 불필요한 변동(노이즈)을 제거함으로써, 모델이 더 안정적으로 학습합니다.
3. 메모리 효율
특히 대규모 모델에서 메모리 사용량을 줄여 GPU·TPU 자원을 절약할 수 있습니다.
요약하자면, 랭크는 “행렬이 본질적으로 담고 있는 정보의 차원 수”를 의미하며, 저랭크 투영은 그 차원을 인위적으로 작게 잡아 모델의 효율성과 일반화 능력을 높이기 위한 기법입니다.
랭크(rank) = 행렬의 ‘차원’ 또는 ‘정보 용량’ 250617
2025. 6. 17. 17:01
반응형