랭크(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 자원을 절약할 수 있습니다.

요약하자면, 랭크는 “행렬이 본질적으로 담고 있는 정보의 차원 수”를 의미하며, 저랭크 투영은 그 차원을 인위적으로 작게 잡아 모델의 효율성과 일반화 능력을 높이기 위한 기법입니다.

반응형

+ Recent posts