Chapter 08
편미분과 그라디언트: 여러 변수의 세계, 경사 하강의 방향
변수가 여러 개일 때 한 변수만 움직이며 미분하는 편미분, 그걸 모은 그라디언트를 배워요. 경사하강법의 기초예요.
챕터별 수학 도식화
챕터를 선택하면 아래 도식이 해당 챕터 내용으로 바뀌어요. 기초 수학 흐름을 한눈에 보세요.
x만 움직일 때의 기울기, y만 움직일 때의 기울기가 편미분이에요. 두 편미분을 합친 방향이 그라디언트예요.
가로 화살표 = x만 바꿀 때 기울기, 세로 = y만 바꿀 때 기울기. 대각선이 둘을 합친 그라디언트 — 값이 가장 빨리 커지는 방향이에요.
- 가로 화살표: 를 고정하고 만 움직일 때의 기울기 → 편미분
- 세로 화살표: 를 고정하고 만 움직일 때의 기울기 → 편미분
- 대각선 화살표: 두 편미분을 합친 방향 → 그라디언트 (값이 가장 빨리 커지는 쪽)
편미분과 그라디언트란
우리가 다루는 현실과 AI 모델은 변수가 하나()가 아니라 여러 개()인 경우가 대부분입니다. 편미분(Partial Derivative)은 변수가 여러 개인 함수에서 '딱 하나의 변수만 변화시키고, 나머지는 모두 정지(상수 취급)'시킨 상태에서 기울기를 재는 것입니다. 기호로는 대신 구부러진 (라운드 디)를 사용하여 와 같이 씁니다.
직관적 예시: 산을 오를 때(는 높이, 는 평면 좌표), 동쪽()으로 한 걸음 갈 때의 높이 변화와 북쪽()으로 한 걸음 갈 때의 높이 변화는 다릅니다. 동쪽 기울기(에 대한 편미분)와 북쪽 기울기(에 대한 편미분)를 각각 따로 구하는 것이 편미분입니다. 그라디언트(Gradient, )는 이 편미분들을 하나로 묶은 벡터 로, '정상으로 가는 가장 가파른 방향'을 화살표로 나타낸 것입니다.
예를 들어 이라는 그릇 모양의 함수가 있다면, 로 편미분할 때 는 상수(예: 숫자 )처럼 취급되어 항은 이 되므로 결과는 가 됩니다. 반대로 로 편미분하면 가 되죠. 점 에서의 그라디언트는 가 되며, 이 방향이 값이 가장 빨리 커지는 '최단 오르막길' 방향입니다.
방향(Direction)이 핵심입니다. 그라디언트 벡터가 가리키는 곳은 오르막길의 정점입니다. 반대로 그라디언트에 마이너스()를 붙이면 가장 가파른 내리막길이 됩니다. AI는 오차를 줄여야 하므로, 항상 이 그라디언트의 반대 방향을 따라 이동하며 학습합니다.
숫자로 보는 예: 라 하면 가 1 커질 때 는 1 커지고( 편미분 1), 가 1 커질 때 는 2 커집니다( 편미분 2). 그라디언트는 입니다. 산에서 쪽보다 쪽이 2배 더 가파르다는 뜻이며, 방향으로 갈 때 가장 빨리 정상에 도착할 수 있습니다.
딥러닝 모델의 학습 원리 그 자체이기 때문입니다. AI 모델에는 수천만, 수억 개의 파라미터(가중치 )가 있습니다. 우리는 '어떤 가중치를 어떻게 조절해야 오차가 줄어들지?'를 알아내야 하는데, 수억 개의 변수를 한꺼번에 생각하기는 너무 어렵습니다. 이때 편미분을 통해 '다른 가중치는 그대로 두고 만 바꿨을 때의 영향력'을 하나씩 쪼개어 분석할 수 있습니다.
그라디언트는 모든 가중치에 대한 수정 지침서입니다. "은 조금 키우고, 는 많이 줄여라"라는 모든 정보를 담고 있는 벡터 을 구하면, AI는 한 번의 계산으로 수억 개의 가중치를 동시에 올바른 방향으로 수정할 수 있습니다.
편미분과 그라디언트는 다변수 최적화의 기본 언어입니다. 손실 함수의 그라디언트를 구하고 그 반대 방향으로 한 스텝씩 이동하는 과정이 바로 경사 하강법이며, 이를 통해 AI는 복잡한 데이터 속에서도 정답을 향한 길을 찾아냅니다.
경사 하강법(Gradient Descent)의 엔진으로 쓰입니다. 눈을 가리고 산을 내려갈 때, 발끝에서 느껴지는 사방의 경사 중 가장 아래로 향하는 쪽으로 발을 내디디는 것과 같습니다. 그라디언트는 '값이 가장 빨리 커지는' 방향을 가리키므로, 오차를 줄이려면 그 반대 방향(마이너스)으로 가야 합니다. 수식으로는 새 파라미터 = 이전 파라미터 - (학습률 그라디언트) 형태로 구현됩니다. 여기서 가 붙는 이유가 바로 '오차를 줄이는' 방향으로 가기 위해서예요.
- 상황오차 줄이기
- 쓰는 것손실 함수 에 대해 각 가중치 로 편미분()하여, 이 가중치가 오차를 키우는 주범인지 아닌지 알아냅니다.
- 상황최적의 방향 찾기
- 쓰는 것모든 파라미터의 편미분을 모은 그라디언트를 구하고, 그 반대 방향으로 이동하여 오차라는 골짜기의 바닥을 찾아갑니다.
- 상황효율적인 대량 학습
- 쓰는 것데이터 전체를 다 보지 않고 일부(미니배치)만 보고 대략적인 그라디언트를 구해 빠르게 이동하는 SGD(확률적 경사 하강법)에 사용됩니다.
- 상황다변수 영향력 분석
- 쓰는 것경제학에서 수요가 가격과 소득에 동시에 영향을 받을 때, '소득은 그대로 두고 가격만 올리면 어떻게 될까?'를 분석하는 것처럼 한 요인의 영향력만 추출합니다.
| 상황 | 쓰는 것 |
|---|---|
| 오차 줄이기 | 손실 함수 에 대해 각 가중치 로 편미분()하여, 이 가중치가 오차를 키우는 주범인지 아닌지 알아냅니다. |
| 최적의 방향 찾기 | 모든 파라미터의 편미분을 모은 그라디언트를 구하고, 그 반대 방향으로 이동하여 오차라는 골짜기의 바닥을 찾아갑니다. |
| 효율적인 대량 학습 | 데이터 전체를 다 보지 않고 일부(미니배치)만 보고 대략적인 그라디언트를 구해 빠르게 이동하는 SGD(확률적 경사 하강법)에 사용됩니다. |
| 다변수 영향력 분석 | 경제학에서 수요가 가격과 소득에 동시에 영향을 받을 때, '소득은 그대로 두고 가격만 올리면 어떻게 될까?'를 분석하는 것처럼 한 요인의 영향력만 추출합니다. |
AI 자동 학습 시스템: 우리가 PyTorch나 TensorFlow를 쓸 때 `loss.backward()`를 호출하면, 컴퓨터는 내부적으로 모든 가중치에 대한 편미분을 수행하여 그라디언트 벡터를 계산해 줍니다. 이 그라디언트가 있어야만 옵티마이저(Optimizer)가 가중치를 업데이트할 수 있습니다. 챗GPT 같은 대규모 언어 모델부터 이미지 인식 AI까지, 모든 현대 인공지능은 이 그라디언트를 따라 똑똑해집니다.
편미분할 때는 미분하는 변수만 변수로 보고 나머지는 상수로 두면 돼요. 그라디언트는 편미분을 순서대로 벡터로 모은 거예요. 팁: 는 를 숫자처럼 보고 만 미분해요.
가장 쉬운 예: . 로만 미분할 때 는 그냥 숫자로 보면 돼요 → . 로만 미분할 때 는 숫자 → . 그래서 . 점 에서의 그라디언트도 예요.
쉬운 예부터 표로 정리했어요. 한 변수만 보면 Ch06 도함수와 같은 공식이에요.
- 문제,
- 풀이 상수 → 3
- 문제,
- 풀이 상수 → 2
- 문제,
- 풀이 상수 →
- 문제,
- 풀이
| 문제 | 풀이 |
|---|---|
| , | 상수 → 3 |
| , | 상수 → 2 |
| , | 상수 → |
| , |
문제 유형별 풀이
- 유형로 편미분
- 설명
- 답 구하는 법를 상수로 보고 만 미분. 일차식이면 계수, 면 .
- 유형로 편미분
- 설명
- 답 구하는 법를 상수로 보고 만 미분.
- 유형그라디언트
- 설명
- 답 구하는 법두 편미분을 순서대로 벡터로. 점 에서 값 구할 때는 , 대입.
| 유형 | 설명 | 답 구하는 법 |
|---|---|---|
| 로 편미분 | 를 상수로 보고 만 미분. 일차식이면 계수, 면 . | |
| 로 편미분 | 를 상수로 보고 만 미분. | |
| 그라디언트 | 두 편미분을 순서대로 벡터로. 점 에서 값 구할 때는 , 대입. |
예시 (x로 편미분)
일 때 를 구하고, 점 에서의 값을 구하세요.
풀이
를 상수로 보면 . 에서도 3. → 정답 3
예시 (y로 편미분)
일 때 를 구하고, 점 에서의 값을 구하세요.
풀이
를 상수로 보면 . 에서도 2. → 정답 2
예시 (그라디언트)
일 때 를 구하고, 점 에서의 그라디언트를 구하세요.
풀이
, . 따라서 . 에서 . → 정답 (2, 4) 또는 성분별로 2, 4