경사하강법까지 이해하고 나면 자연스럽게 이런 의문이 생깁니다. 실제 AI는 데이터가 하나가 아니라 수백만 개인데, 그걸 어떻게 한꺼번에 처리하는 걸까요. 저도 이 부분에서 한동안 막혔습니다. 미분으로 방향을 찾는다는 건 알겠는데, 데이터가 100만 개면 미분을 100만 번 따로 계산하는 건지 의문이었거든요.
답은 행렬이었습니다. 행렬을 쓰면 100만 개의 계산을 사실상 한 번에 처리할 수 있습니다. 미분이 방향을 알려준다면, 행렬은 그 방향으로 동시에 달려가는 엔진입니다. 오늘은 이 둘이 실제로 어떻게 결합되는지 따라가 보겠습니다.

데이터가 많아지면 생기는 문제
경사하강법 글에서 w = 3 하나를 가지고 계산했는데, 현실은 다릅니다. ChatGPT 같은 모델은 가중치가 수천억 개고, 학습 데이터도 수억 개입니다. 가중치 하나씩, 데이터 하나씩 순서대로 미분을 계산하면 어떻게 될까요.
간단히 계산해 봐도 답이 나옵니다. 가중치 1억 개 × 데이터 1억 개면 연산 횟수가 10의 16승입니다. 현대 CPU가 초당 수십억 번 연산한다고 해도 이 방식으로는 학습이 끝나지 않습니다. 뭔가 다른 방법이 필요했고, 그 답이 행렬 연산입니다.

행렬이 해결하는 방식
행렬은 숫자들을 격자 형태로 묶어놓은 구조입니다. 예를 들어 데이터 3개를 각각 [2, 4, 6]이라는 행렬로 묶으면, 가중치 w = 3과의 곱을 한 번의 연산으로 계산할 수 있습니다.
행렬 계산: [2, 4, 6] × 3 = [6, 12, 18] → 1번 연산
데이터가 100만 개여도 행렬 연산은 구조상 1번입니다.
실제 딥러닝에서는 입력 데이터, 가중치, 편향 모두 행렬로 표현됩니다. 신경망의 한 층을 통과하는 연산 전체가 행렬 곱셈 하나로 표현되는 거죠. 이 구조 덕분에 수백만 개의 데이터를 사실상 동시에 처리할 수 있습니다.
단일 변수 미분과 행렬 기반 미분의 효율성 차이입니다.
| 구분 | 단일 변수 미분 | 행렬 기반 미분 |
|---|---|---|
| 처리 대상 | 하나의 입력값 | 대량의 데이터 셋 |
| 연산 방식 | 순차적 처리 | 병렬 처리 (GPU) |
| 주요 용도 | 기초 개념 이해 | 실제 딥러닝 학습 |
| 확장성 | 낮음 | 매우 높음 |
편미분이란 무엇인가
가중치가 하나일 때는 그냥 미분하면 됩니다. 그런데 가중치가 w1, w2, w3… 수만 개라면 어떻게 할까요. 이때 쓰는 게 편미분입니다.
편미분은 간단합니다. 다른 변수는 전부 상수로 고정하고 딱 하나의 변수에 대해서만 미분하는 겁니다. 예를 들어 L = w1² + w2²라는 손실 함수가 있을 때 w1에 대한 편미분은 이렇습니다.
∂L/∂w2 = 2w2 (w1은 상수 취급해서 사라짐)
이렇게 각 가중치에 대한 편미분을 따로따로 계산하면, 어느 가중치를 얼마나 어떤 방향으로 바꿔야 하는지 알 수 있습니다. 가중치가 수만 개여도 방식은 동일합니다.
그레디언트 — 편미분을 모아놓은 지도
편미분 값들을 하나의 벡터로 모아놓은 게 그레디언트(Gradient)입니다. 위의 예시라면 그레디언트는 [2w1, 2w2]가 됩니다. 이 벡터가 가리키는 방향이 손실이 가장 빠르게 커지는 방향입니다.
경사하강법은 이 방향의 반대로 이동합니다. 손실이 커지는 방향의 반대면 손실이 줄어드는 방향이니까요. 그레디언트를 나침반이라고 보면, 경사하강법은 그 나침반이 가리키는 반대 방향으로 걸어가는 과정입니다.

야코비안 행렬 — 역전파의 실제 도구
그레디언트는 출력이 하나일 때 쓰는 개념입니다. 그런데 신경망은 층이 여러 개고 각 층마다 출력이 여러 개입니다. 이때 등장하는 게 야코비안 행렬입니다.
야코비안 행렬은 쉽게 말해 "여러 출력 각각이 여러 입력 각각에 대해 어떻게 변하는지"를 한 번에 담은 표입니다. 입력이 2개, 출력이 2개라면 야코비안은 이런 구조입니다.
| ∂y2/∂x1 ∂y2/∂x2 |
각 칸은 "해당 출력이 해당 입력에 대해 얼마나 변하는가"를 담습니다.
역전파가 출력층에서 입력층으로 거슬러 올라가면서 모든 가중치의 미분을 계산할 때 이 야코비안 행렬을 연속으로 곱합니다. 층이 깊어질수록 야코비안 곱셈이 쌓이는 구조입니다. 연쇄법칙이 행렬 형태로 구현된 것이 바로 역전 파입니다.

GPU가 이 모든 걸 빠르게 만드는 이유
행렬 연산이 아무리 효율적이어도 이걸 처리하는 하드웨어가 따라주지 못하면 의미가 없습니다. CPU는 복잡한 연산을 순서대로 빠르게 처리하는 데 강합니다. 하지만 행렬 곱셈처럼 단순한 연산을 동시에 엄청나게 많이 해야 하는 상황에서는 GPU가 훨씬 유리합니다.
GPU는 원래 게임 그래픽 처리용으로 만들어졌습니다. 화면의 수천만 픽셀을 동시에 계산해야 하니까 수천 개의 코어를 병렬로 작동시키는 구조입니다. 그런데 이 구조가 행렬 곱셈과 완벽하게 맞아떨어졌습니다. AI 학습에 GPU를 쓰기 시작하면서 학습 속도가 수십 배 빨라진 이유입니다.
PyTorch와 TensorFlow가 하는 일
지금까지 설명한 편미분, 그레디언트, 야코비안 행렬 계산을 매번 직접 손으로 구현하면 어떻게 될까요. 코드 수천 줄이 필요하고, 실수 하나에 모델 전체가 망가집니다. PyTorch와 TensorFlow가 존재하는 이유가 여기 있습니다.
이 프레임워크들은 연산 과정을 자동으로 기록해 뒀다가 역전파 때 자동으로 미분을 계산해 줍니다. 이걸 자동 미분(Autograd)이라고 합니다. 개발자는 신경망 구조만 설계하면 되고, 모든 행렬 미분 계산은 프레임워크가 처리합니다.
다만 내부 원리를 모르면 문제가 생겼을 때 원인을 찾기 어렵습니다. 기울기 소실(Gradient Vanishing)이나 과적합(Overfitting) 같은 문제는 야코비안 행렬 값이 너무 작아지거나 학습 구조에서 비롯되는 경우가 많습니다. 도구를 쓰더라도 원리를 알아야 하는 이유입니다.
미분이 방향을 찾고, 행렬이 그 방향으로 한꺼번에 달려가고, GPU가 그 속도를 만들어줍니다. 이 세 가지가 맞물려서 지금의 AI가 작동합니다. 라이프니츠가 dy/dx를 만들었을 때 이 끝이 어디까지 이어질지 상상이나 했을까요.
'데이터 과학 수학' 카테고리의 다른 글
| 제약 조건 속 최적의 해법, 라그랑주 승수법의 원리 (0) | 2026.04.04 |
|---|---|
| 함수 최적화의 열쇠, 임계점과 극대·극소 판정법 원리 (0) | 2026.04.03 |
| [라이프니츠 미분학 연재 #10] 라이프니츠 미분학의 의미, 변화의 개념이 만든 현대 기술 (0) | 2026.04.03 |
| [라이프니츠 미분학 연재 #9] 역전파란 무엇인가, 연쇄법칙이 딥러닝을 가능하게 한 방식 (0) | 2026.04.03 |
| [라이프니츠 미분학 연재 #8] 경사하강법이란 무엇인가, 인공지능이 학습하는 핵심 원리 (0) | 2026.04.03 |