STUDY/ML DL

딥러닝 개념

sed 2026. 7. 23. 19:45
SMALL

딥러닝을 아주 간단히 표현하면

우리가 딥러닝을 하는 이유는 데이터로부터 복잡한 규칙을 스스로 학습해 새로운 입력을 잘 예측하기 위해서이다.

 

이는 입력으로부터 예측값을 얻고 싶다는 뜻이다.

따라서 현재 가중치를 사용해서 순전파로 예측값을 계산한 뒤, 예측값과 정답을 비교해 손실을 계산한다.

그리고 각 가중치를 실제로 하나씩 바꿔 시험하는 대신, 역전파와 체인룰을 사용해 각 가중치가 손실에 미치는 영향을 그래디언트로 계산한다. 그리고 그 그래디언트를 이용해 손실을 감소하는 방향으로 가중치를 수정한다.

 

신경망도 합성함수다

  • x: 입력
  • w: 가중치
  • b: 편향
  • z: 선형 계산 결과
  • \sigma: 활성화 함수
  • a: 활성화 함수의 출력. 이 예제에서는 최종 예측값으로 사용한다.
  • y: 실제 정답
  • L: 예측값과 정답의 차이를 수치화한 손실

$$ z=wx+b $$

$$ a=\sigma(z) $$

$$ L=(a-y)^2 $$

 

이렇게 신경망이 있을 때, 계산 흐름은 다음과 같다.

$$ w
\longrightarrow
z
\longrightarrow
a
\longrightarrow
L $$

 

우리가 알고 싶은 것은 이 값이다.

$$\frac{\partial L}{\partial w}$$

 

그래디언트(gradient)란?

그래디언트의 가장 중요한 특성은 그래디언트 값이 곧 함수가 가장 가파르게 증가하는 방향을 가리킨다는 것이다.

편미분하고자 하는 변수만의 변화에 따른 함수의 변화율을 모아놓은 벡터이기 때문이다.

 

$\frac{\partial L}{\partial w}$ 는 현재 가중치 w를 아주 조금 변화시켰을 때 손실 $L$이 얼마나 변하는지를 나타낸다.

 

이 예제에서는 가중치가 w 하나뿐이므로 하나의 미분값만 계산하면 된다. 그러나 실제 신경망에는 매우 많은 가중치가 존재한다. 가중치가 w₁, w₂, …, wₙ개라면 각 가중치에 대한 손실의 편미분을 모두 계산해야 한다.

$$
\frac{\partial L}{\partial w_1},
\frac{\partial L}{\partial w_2},
\ldots,
\frac{\partial L}{\partial w_n}
$$

이 편미분값들을 하나의 벡터로 모은 것을 그래디언트라고 한다.

$$
\left(
\frac{\partial L}{\partial w_1},
\frac{\partial L}{\partial w_2},
\ldots,
\frac{\partial L}{\partial w_n}
\right)
$$

그래디언트는 현재 위치에서 손실이 가장 빠르게 증가하는 방향을 가리킨다. 따라서 손실을 줄이려면 그래디언트의 반대 방향으로 가중치를 이동해야 한다.

 

다만 앞쪽 레이어의 가중치는 손실 L에 직접 연결되어 있지 않다. 가중치가 중간 계산들을 차례로 변화시키고, 그 결과가 최종 손실에 영향을 준다. 따라서 각 가중치에 대한 그래디언트를 구하려면 체인룰이 필요하다.

체인룰 Chain rule

$$ \frac{\partial L}{\partial w} $$

 

이 값은 가중치 $w$를 아주 조금 바꾸면 손실 $L$이 얼마나 바뀌는가?를 의미한다.

하지만 $L$은 $w$로 직접 계산되지 않는다.

 

$w$가 $z$를 바꾸고, $z$가 $a$를 바꾸고 $a$가 $L$을 바꾼다.

따라서 체인룰을 적용하면 다음과 같이 되며, 이 식이 역전파(backpropagation)의 핵심 구조이다.

$$\frac{\partial L}{\partial w}
=
\frac{\partial L}{\partial a}
\frac{\partial a}{\partial z}
\frac{\partial z}{\partial w}$$ 

 

각 항의 의미는 다음과 같다.

$\frac{\partial L}{\partial a}$ 는 예측값 $a$가 바뀔 때 손실이 얼마나 변하는 지 나타낸다.

$
\frac{\partial a}{\partial z}$ 는 활성화 함수에 들어가는 값 $z$가 바뀔 때 예측값인 $a$ 가 얼마나 변하는지를 나타낸다.

$
\frac{\partial z}{\partial w}$ 는 가중치 $w$가 바뀔 때 선형 계산 결과인 $z$가 얼마나 변하는지를 나타낸다.

 

왜 역전파인지?

신경망의 실제 계산은 입력에서 출력 방향으로 진행된다.

$$x
\rightarrow
z
\rightarrow
a
\rightarrow
L$$

이를 순전파(forward propagation)이라고 한다.

순전파에서는 입력을 이용해 예측값과 손실을 계산한다.

 

반면 미분값은 반대 방향으로 계산된다.

$$L
\rightarrow
a
\rightarrow
z
\rightarrow
w$$

먼저 손실이 예측값에 얼마나 민감한지 계산하고, $\frac{\partial L}{\partial a}$ 그 다음 앞 단계로 이동하며 $
\frac{\partial a}{\partial z}$  를 곱하고 다시 앞 단계로 이동하며 $
\frac{\partial z}{\partial w}$ 를 곱한다.

 

즉, 손실에서 출발하여 계산 과정을 거꾸로 추적하기에 역전파라고 한다.

 

실제 계산 예제

$ x=2,\qquad w=3,\qquad b=0 $ 가 존재할 때 계산을 해보자.

(활성화 함수는 단순화를 위해 그대로 값을 내보내는 함수로 하겠다. $a=z$)

정답은 $ y=10 $ 이라고 하겠다.

 

순전파

먼저 $z=wx+b$ 이므로 z = 3 * 2 + 0 = 6 이다.

활성화 함수는 $a=z$ 이므로 a = 6 이다.

손실함수는 $L=(a-y)^2$ 이므로, L = (6 - 10)^2 = 16 이다.

 

역전파

이제 $\frac{\partial L}{\partial w}$를 구해 보겠다.

체인룰에 따라 $ \frac{\partial L}{\partial w}
=
\frac{\partial L}{\partial a}
\frac{\partial a}{\partial z}
\frac{\partial z}{\partial w}$ 이다.

먼저 $L=(a-y)^2$ 이므로 $\frac{\partial L}{\partial a}=2(a-y)$ 이다.

현재 $a=6,\ y=10$이므로 $\frac{\partial L}{\partial a}
=
2(6-10)=-8$ 이다.

활성화 함수가 a=z이므로 $\frac{\partial a}{\partial z}=1$ 이다.

그리고 $z=wx+b$ 이므로 $\frac{\partial z}{\partial w}=x$ 이다.

현재 x=2이므로 $\frac{\partial z}{\partial w}=2$ 이다.

따라서 $\frac{\partial L}{\partial w}
=
(-8)\cdot1\cdot2=-16$ 가 된다.

 

 

미분값이 -16이라는 것은 현재 가중치 주변에서 w를 아주 조금 증가시킬 경우 손실이 감소하며, w가 1만큼 변할 때 손실은 일차적으로 약 16만큼 반대 방향으로 변한다는 뜻이다.

(경사하강법은 그래디언트의 반대 방향으로 이동하니까 -16이기에 가중치가 증가한다)

 

경사하강법에서는 $ w_{\text{new}}
=
w_{\text{old}}
-\eta\frac{\partial L}{\partial w}$ 로 가중치를 수정한다.

여기서 $\eta$는 학습률이다.

학습률을 0.01이라고 하면 $ w_{\text{new}}
=
3-0.01(-16) =3.16$ 이 되며, 가중치가 3에서 3.16으로 증가했다.

실제로 새 예측값은 $a=3.16\cdot2=6.32$ 가 되고, 정답 10에 조금 더 가까워진다.

새 손실은 $(6.32-10)^2=13.5424$ 로, 기존 손실 16보다 작아진다.

 

즉, 체인룰로 구한 미분값을 이용하여 손실이 줄어드는 방향으로 가중치를 움직일 수 있다.

이는 본질적으로 여러 함수의 합성과 같다.

각 층의 국소 미분을 체인룰로 연결하여, 최종적으로 각 가중치와 편향에 대한 손실의 그래디언트를 계산한다.

 

결론

신경망은 여러 함수가 연속적으로 연결된 합성함수이다. 순전파에서는 현재 가중치를 사용해 입력으로부터 예측값을 계산하고, 예측값과 정답을 비교해 손실을 구한다.

 

모델을 학습하려면 각 가중치를 어떻게 수정해야 손실이 줄어드는지 알아야 한다.

이를 위해 손실을 각 가중치에 대해 미분하여 그래디언트를 계산한다.

앞쪽 레이어의 가중치는 손실에 직접 연결되어 있지 않기 때문에, 각 계산 단계의 미분값을 체인룰로 연결해야 한다.

 

체인룰은 합성함수를 미분하는 수학적 원리이고, 역전파는 이 원리를 신경망의 계산 그래프에 효율적으로 적용하는 알고리즘이다.

역전파로 구한 그래디언트를 이용해 가중치를 손실이 감소하는 방향으로 수정하며, 이 과정을 반복하면서 신경망이 데이터의 규칙을 학습하게 된다.

LIST