본문 바로가기
  • 데이터에 가치를 더하다, 서영석입니다.
카테고리 없음

[선형대수] 선형대수는 왜 딥러닝에서 계속 등장할까

by 꿀먹은데이터 2026. 2. 1.

딥러닝을 공부하거나 모델을 설계하다 보면 이상할 정도로 같은 수학 개념들이 반복해서 등장한다.

Rank, Eigenvalue, SVD, Gradient. 처음에는 서로 다른 단원에 있는 별개의 개념처럼 느껴졌는데

실제로 여러 프로젝트를 거치며 다시 정리해보니 결국 이 모든 것들이 하나의 이야기를 하고 있다는 생각이 들었다.

 

머신러닝은 복잡한 알고리즘의 집합이라기보다, ‘벡터 공간 위에서 구조를 찾고 그 안에서 움직이는 과정’에 가깝다고 느꼈다.

그리고 이 네 가지 개념은 그 과정을 서로 다른 관점에서 설명하는 도구였다.

Vector Space

 가장 먼저 이해해야 할 것은 우리가 다루는 모든 데이터가 결국 벡터라는 사실이었다.

텍스트는 임베딩 벡터로 변환되고, 이미지는 수천 차원의 feature map으로 표현되며, 모델의 파라미터 또한 거대한 weight 벡터다. 즉 학습은 숫자 배열을 다루는 것이 아니라 고차원 좌표 공간 위의 한 점을 움직이는 과정이라고 보는 게 더 자연스러웠다.

 

수학적으로는 덧셈과 스칼라곱이 정의된 공간을 벡터스페이스라고 부르지만, 개인적으로는 ‘연산이 가능한 좌표계’ 정도로 이해하는 것이 훨씬 직관적이라고 느꼈다. 딥러닝은 결국 이 공간 위에서 방향과 거리, 그리고 구조를 계산하는 작업이었다.

Rank 

 feature 수가 많다고 해서 정보가 많은 것은 아니라는 사실이다. 서로 강하게 연관된 변수들이 많으면 차원은 높아 보여도 실제 자유도는 훨씬 작다.

 예를 들어 매출, 방문자 수, 전환율처럼 서로 종속적인 지표들은 새로운 정보를 거의 추가하지 않는다. 이때 Rank라는 개념이 의미를 갖는다. 선형적으로 독립인 방향의 개수, 즉 데이터가 실제로 표현할 수 있는 차원이다. 그래서 Rank는 ‘진짜 정보량’이라고 이해하게 됐다.

 

PCA나 차원 축소 기법이 단순한 압축이 아니라 중복을 제거하는 과정이라는 점도 이 관점에서 훨씬 자연스럽게 느껴졌다. 대부분의 데이터가 생각보다 low-rank 구조를 갖는다는 사실도 함께 깨닫게 됐다.

Eigenvalue, Eigenvector

행렬 변환을 적용하면 대부분의 벡터는 방향이 뒤틀리거나 회전한다. 그런데 유독 방향이 변하지 않고 크기만 바뀌는 특별한 축이 존재한다. 그게 고유벡터이고, 얼마나 늘어나거나 줄어드는지를 나타내는 값이 고유값이다.

처음에는 단순한 선형대수 공식처럼 보였지만, 공분산 행렬과 PCA를 연결해서 생각해보니 의미가 명확해졌다. 고유벡터는 데이터가 가장 많이 퍼져 있는 방향이고, 고유값은 그 방향의 중요도였다. 결국 데이터 구조를 가장 잘 설명하는 축을 찾는 과정이라고 느꼈다. 그래서 Eigen은 ‘변환의 본질적인 방향을 찾는 도구’라는 해석이 더 와닿았다.

 representation learning이나 embedding 역시 이런 핵심 축을 학습하는 과정과 크게 다르지 않다고 생각하게 됐다.

SVD

 SVD는 이 모든 개념을 더 일반적인 형태로 확장해주는 도구처럼 느껴졌다.

 어떤 행렬이든 A=UΣVTA = U\Sigma V^T로 분해할 수 있다는 사실은 처음엔 복잡해 보였지만, 기하학적으로 해석하니 의외로 단순했다.

모든 선형변환이 ‘회전 → 축별 스케일 → 다시 회전’으로 표현된다는 의미였기 때문이다. 즉 복잡한 변환도 결국 방향을 정렬하고, 중요도에 따라 늘리고 줄인 뒤, 다시 배치하는 과정이라는 해석이 가능했다. 그리고 0이 아닌 singular value의 개수가 곧 rank라는 점에서, SVD는 데이터의 숨겨진 구조를 직접 드러내는 도구라고 느꼈다. PCA, 추천 시스템, 이미지 압축, 노이즈 제거 같은 다양한 기법들이 전부 SVD 기반이라는 사실도 이때 자연스럽게 연결됐다.

Gradient

 앞선 개념들이 ‘구조를 이해하는 도구’라면, Gradient는 ‘어디로 움직일지 결정하는 도구’였다. 다변수 함수의 각 편미분을 모은 벡터라는 정의보다, ‘가장 가파르게 증가하는 방향’이라는 설명이 훨씬 직관적으로 다가왔다. 산 위에서 가장 급한 오르막을 가리키는 화살표라고 생각하니, 왜 gradient descent가 그 반대 방향으로 이동하는지도 자연스럽게 이해됐다. 딥러닝 학습은 결국 고차원 공간에서 손실 함수라는 지형을 따라 조금씩 내려가는 과정이라고 느꼈다. 수많은 최적화 기법들도 결국 이 경사를 얼마나 안정적이고 효율적으로 따라가느냐의 차이일 뿐이라는 생각이 들었다.

결국 하나의 관점으로 수렴했다

 이렇게 다시 정리해보니 각각 따로 배웠던 개념들이 사실 하나의 흐름 안에 있었다. 벡터스페이스는 우리가 서 있는 공간이고, Rank는 실제 정보 차원을 알려주며, Eigen과 SVD는 중요한 구조를 찾아주고, Gradient는 그 위에서 최적 방향으로 이동하게 만든다. 결국 머신러닝은 적절한 벡터 공간으로 데이터를 표현하고, 그 안에서 핵심 구조를 발견한 뒤, 경사를 따라 최적점을 탐색하는 과정이라는 생각이 들었다. 딥러닝이 복잡해 보여도 바닥에는 늘 같은 선형대수가 깔려 있다는 사실을 다시 한번 느꼈고, 그래서 이 개념들이 계속 반복해서 등장하는 게 아닐까 싶었다.

반응형