AI 시스템 구축: 경량 모델 최적화 – Low-rank Approximation
ㅁ 경량 모델 최적화
1. Low-rank Approximation
ㅇ 정의:
– 행렬이나 텐서를 저차원(rank가 낮은) 구성 요소로 분해하여 원본 데이터나 모델 파라미터를 근사하는 방법. 주로 신경망의 가중치 행렬을 저차원 행렬 곱으로 분해해 연산량과 저장 공간을 줄인다.
ㅇ 특징:
– SVD(특이값 분해)나 Tucker 분해, CP 분해 등을 활용.
– 파라미터 수와 연산량이 크게 감소하나, 근사 오차로 인해 정확도가 다소 하락할 수 있음.
– 사전 학습된 모델에 사후 적용(Post-training)하거나 학습 과정에 통합 가능.
ㅇ 적합한 경우:
– 대규모 모델을 모바일/임베디드 환경에 배포할 때.
– 실시간 추론이 필요한 경우.
– 메모리 제약이 큰 환경.
ㅇ 시험 함정:
– Low-rank Approximation이 항상 정확도를 유지하는 것은 아님(O)
– 모든 레이어에 동일하게 적용하는 것이 최적(O) → 실제로는 레이어별 특성에 따라 선택해야 함(X)
– SVD는 유일한 방법이다(X)
ㅇ 시험 대비 “패턴 보기” 예시:
– “Low-rank Approximation은 연산량을 줄이기 위해 가중치 행렬을 저차원 행렬로 분해한다.” (O)
– “Low-rank Approximation은 정확도 향상 기법이다.” (X)
– “SVD, CP 분해, Tucker 분해 등 다양한 방법이 있다.” (O)
– “모든 경우에 성능 저하 없이 적용 가능하다.” (X)
ㅁ 추가 학습 내용
Low-rank Approximation의 수학적 배경으로 SVD(특이값 분해)의 기본 원리와 rank-k 근사에서의 오차 bound인 에커트-영 정리를 이해하는 것이 중요하다.
실제 딥러닝에서 Conv2D 레이어에 적용할 때는 커널 텐서를 2D 행렬로 변환하여 분해하는 과정을 알아야 하며, 분해 후 재구성 시 연산 복잡도가 어떻게 변하는지도 숙지해야 한다.
저차원 근사 시 rank 선택 기준으로는 설명 분산 비율과 검증 데이터 기반 최적화 방법이 있으며, 다른 경량화 기법인 프루닝, 양자화와의 비교 포인트도 함께 이해하는 것이 효과적이다.