콘텐츠로 이동

P2-4.3 미분(derivative)과 그래디언트(gradient)

Section ID: P2-4.3 Version: v2026.09.14

한 파라미터를 늘리면 손실이 커지고, 다른 파라미터를 늘리면 작아질 수 있습니다. 조절할 값이 여러 개라면 하나의 기울기만으로는 어느 쪽으로 바꿀지 알기 어렵습니다. 편미분은 다른 변수를 고정하고 한 변수의 변화율을 구하며, 그래디언트는 그 변화율들을 파라미터 순서대로 모은 벡터입니다.

한 점의 값에서 여러 변수로

앞 절의 f(x)=x²에서 도함수 f′(x)=2x는 각 위치의 순간 변화율을 알려 주고, 미분계수 f′(2)=4는 한 위치에서의 값입니다. 여기서 4는 출력 변화량 자체가 아니라 입력 변화량에 대한 출력 변화량의 비율이 가까워지는 값입니다. 따라서 x=2에서 입력을 0.01 늘리면 출력 증가량은 약 4×0.01=0.04입니다. 실제 증가량은 2.01²−2²=0.0401로, 근사와 조금 다릅니다.

입력이 두 개면 변화율도 두 축을 따라 따로 구할 수 있습니다. 다음은 두 파라미터가 모두 0일 때 가장 작은 값을 갖도록 만든 간단한 손실 함수입니다.

\[ L(w_1,w_2)=w_1^2+w_2^2 \]

현재 위치를 [w₁,w₂]=[3,4]라고 하면 손실은 3²+4²=25입니다. 같은 손실 25라도 두 파라미터에 대한 변화율은 같지 않습니다.

편미분: 하나를 바꾸고 나머지는 고정

w₁의 영향을 보려면 w₂=4를 고정합니다. 그러면 함수는 L(w₁,4)=w₁²+16이 됩니다. w₁이 바뀌어도 16은 그대로이므로 그 항의 변화율은 0이고, w₁²의 변화율 2w₁만 남습니다. 현재 w₁=3에서 이 값은 6입니다.

반대로 w₁=3을 고정하면 L(3,w₂)=9+w₂²입니다. 상수 9의 변화율은 0이므로 w₂에 대한 변화율은 2w₂이며, 현재 w₂=4에서는 8입니다.

\[ \frac{\partial L}{\partial w_1}=2w_1,\qquad \frac{\partial L}{\partial w_2}=2w_2 \]

∂는 편미분에 사용하는 기호입니다. ∂L/∂w₁은 다른 변수를 고정한 채 w₁을 바꿀 때의 순간 변화율을 뜻합니다. 현재 위치에서 하나씩 0.01 늘려 계산하면 그 의미를 확인할 수 있습니다.

바꾼 파라미터 새 위치 실제 손실 증가량 편미분으로 근사한 증가량
w₁만 증가 [3.01,4] 0.0601 6×0.01=0.06
w₂만 증가 [3,4.01] 0.0801 8×0.01=0.08

같은 작은 증가폭에서 손실은 w₂에 더 민감하게 반응합니다. 표의 실제 증가량을 0.01로 나누면 6.01, 8.01이며, 증가폭을 0에 가깝게 줄이면 각각 편미분 값 6과 8에 가까워집니다.

그래디언트: 변화율을 벡터로 묶기

그래디언트는 스칼라값을 출력하는 함수의 편미분들을 모은 벡터입니다. ∇는 나블라(nabla)라고 읽으며, 다음 식에서는 그래디언트를 나타냅니다.

\[ \nabla L(w_1,w_2)= \left[\frac{\partial L}{\partial w_1},\frac{\partial L}{\partial w_2}\right] =[2w_1,2w_2],\qquad \nabla L(3,4)=[6,8] \]

∇L(w₁,w₂)는 위치마다 벡터를 알려 주는 함수이고, ∇L(3,4)는 현재 위치에서 얻은 벡터입니다. 성분 순서는 파라미터 순서와 같습니다. [6,8]은 새 파라미터 값이나 실제 이동량이 아닙니다.

두 파라미터를 함께 조금 바꾸는 경우에는 각각의 변화가 손실에 미치는 영향을 더해 근사할 수 있습니다. 현재 위치에서 그 계산은 다음과 같습니다.

\[ \Delta L\approx 6\Delta w_1+8\Delta w_2 =\nabla L(3,4)\cdot[\Delta w_1,\Delta w_2] \]

가운데 점 ·은 앞서 배운 내적입니다. 대응하는 성분끼리 곱하고 더합니다. 두 값을 모두 0.01 늘리면 예상 손실 증가량은 0.06+0.08=0.14이고, 실제 증가량은 3.01²+4.01²−25=0.1402입니다. 이처럼 미분 가능한 함수에서는 그래디언트로 작은 동시 변화의 영향을 근사합니다.

같은 거리에서 비교하는 증가 방향

방향을 비교하려면 이동 거리부터 맞춰야 합니다. [6,8]의 길이는 √(6²+8²)=10이므로, 10으로 나눈 [0.6,0.8]은 같은 방향을 가리키는 길이 1의 벡터입니다. 이런 벡터를 단위벡터라고 합니다. 아래 방향들은 모두 길이가 1입니다.

방향 u 내적 ∇L·u 현재 위치에서의 의미
[1,0] 6 w₁ 증가 방향의 순간 변화율
[0,1] 8 w₂ 증가 방향의 순간 변화율
[0.6,0.8] 6×0.6+8×0.8=10 그래디언트 방향의 순간 변화율
[-0.6,-0.8] −10 그래디언트 반대 방향의 순간 변화율

∇L·u는 방향 u로 움직일 때 이동 거리당 함수값의 순간 변화율이며, 방향미분이라고 합니다. 예를 들어 [0.6,0.8] 방향으로 거리 0.01만큼 이동하면 파라미터 변화는 [0.006,0.008]이고, 손실 증가량은 약 10×0.01=0.1입니다.

내적은 두 벡터가 같은 방향일 때 가장 커집니다. 따라서 미분 가능한 함수에서 그래디언트가 0이 아니면, 길이 1인 모든 방향 중 그래디언트 방향의 순간 변화율이 가장 큽니다. 이 설명은 두 좌표의 거리를 √(Δw₁²+Δw₂²)로 재는 기준입니다. 파라미터의 단위나 척도를 바꾸면 거리와 방향의 비교도 달라질 수 있습니다.

등고선에서 읽는 증가와 감소

등고선은 함수값이 같은 위치들을 이은 선입니다. L=w₁²+w₂²에서는 원점에서 같은 거리에 있는 점들의 손실이 같으므로 등고선이 원입니다. 아래 그림의 원에 적힌 숫자는 손실값입니다.

손실 등고선과 현재 위치 [3,4]. 길이 1인 축 방향과 그래디언트 방향, 반대 방향을 비교한다.

현재 점에서 파란 원의 바깥쪽으로 갈수록 손실이 커지고, 안쪽으로 갈수록 작아집니다. 빨간 화살표는 그래디언트 방향 [0.6,0.8], 초록 화살표는 반대 방향입니다. 화살표는 방향 비교를 위해 길이를 1로 맞춘 것이며, 실제 학습의 이동량을 뜻하지 않습니다.

원에 접하는 방향은 현재 점에서 그래디언트와 수직이고, 그 방향의 순간 변화율은 0입니다. 그렇다고 접선 방향으로 직진한 뒤에도 손실이 같다는 뜻은 아닙니다. 같은 손실을 유지하려면 원을 따라 방향을 계속 바꾸어야 합니다.

감소 방향과 이동량의 구분

현재 그래디언트 [6,8]의 반대 방향으로 0.01×[6,8]만큼 이동하면 새 위치는 [2.94,3.92]입니다. 손실은 25에서 24.01로 줄어듭니다. 여기서 0.01은 그래디언트에 곱하는 계수이며, 실제 이동 거리는 0.01×10=0.1입니다.

반대 방향이라고 무조건 크게 움직여도 되는 것은 아닙니다. 같은 위치에서 계수를 1.1로 정하면 새 위치는 [-3.6,-4.8]이고 손실은 36으로 커집니다. 방향 정보와 이동량 선택은 구분해야 합니다. 학습에서 이 계수를 정하는 문제는 다음 절에서 이어집니다.

그래디언트가 0이면 모든 방향의 일차 변화율이 0이지만, 그것만으로 최솟값임을 보장하지는 않습니다. 이 예시의 원점은 최솟값이지만 다른 함수에서는 최댓값이나 안장점일 수도 있습니다. 안장점은 어떤 방향으로는 값이 커지고 다른 방향으로는 작아지는 지점입니다.

추천 점수의 두 가중치

한 콘텐츠의 관심사 유사도는 0.8, 최신성은 0.4라고 가정합니다. 두 특징에 가중치 w_1, w_2를 곱해 추천 점수 S를 계산합니다.

\[ S(w_1,w_2)=0.8w_1+0.4w_2 \]

w_1 = 1, w_2 = 1이면 점수는 1.2입니다. 다른 가중치는 그대로 두고 하나만 0.05 늘려 봅니다.

바꾼 가중치 새 점수 점수 증가량 증가량 / 0.05
w_1: 1 → 1.05 1.24 0.04 0.8
w_2: 1 → 1.05 1.22 0.02 0.4

이 식은 각 가중치에 대해 선형이므로 위 변화율은 편미분과 같습니다. 그래디언트는 [0.8, 0.4]입니다. 같은 양만큼 가중치를 늘렸을 때 이 콘텐츠의 점수는 w_1에 두 배 민감하게 반응합니다.

이 계산은 한 콘텐츠의 점수 변화를 설명합니다. 추천 순위가 얼마나 바뀌는지는 다른 콘텐츠의 점수도 비교해야 하며, 점수 상승이 클릭률이나 사용자 만족의 상승을 보장하지는 않습니다.

연습: 음수 파라미터의 조정 방향

같은 손실 함수에서 현재 위치를 [-3,4]로 바꿔 보세요. 첫째, 그래디언트와 길이 1인 최대 증가 방향을 구하세요. 둘째, 계수 0.01을 곱한 그래디언트를 현재 위치에서 빼고 새 손실을 계산하세요. 셋째, 두 파라미터를 무조건 줄이는 방법과 무엇이 다른지 설명해 보세요.

계산과 해설

그래디언트는 [-6,8], 길이는 10이므로 최대 증가 방향은 [-0.6,0.8]입니다. 반대 방향으로 이동한 새 위치는 [-3,4]−0.01×[-6,8]=[-2.94,3.92]이고, 손실은 24.01입니다. w₁은 늘리고 w₂는 줄여야 합니다. 감소 방향은 모든 파라미터의 숫자를 작게 만드는 방향이 아니라 손실을 줄이는 방향입니다.

체크리스트

  • 편미분을 구할 때 고정하는 변수와 바꾸는 변수를 구분할 수 있는가?
  • 그래디언트 성분의 순서와 파라미터 순서를 맞출 수 있는가?
  • 편미분 값과 실제 손실 변화량을 구별할 수 있는가?
  • 내적으로 작은 동시 변화의 영향을 근사할 수 있는가?
  • 방향 비교에서 벡터의 길이를 맞추는 이유를 설명할 수 있는가?
  • 감소 방향과 실제 이동량을 구분하고, 음수 파라미터도 조정할 수 있는가?

출처와 참고 자료

수치 사례와 등고선 도식은 자체 구성했습니다.