오차역전파(backpropagation)

수치미분보다 더 효율적으로 매개변수의 기울기를 계산할 수 있는 오차역전파에 대해 알아봤습니다.

nackta true
2022-06-21

연쇄법칙

다음과 같은 합성함수가 있을 때

\[t=x+y \\ z=t^2\]

x에 대한 t의 미분은 다음과 같이 계산할 수 있습니다.

\[\frac{\partial z}{\partial t} = 2t \\ \frac{\partial t}{\partial x} = 1 \\ \frac{\partial z}{\partial x} = \frac{\partial z}{\partial t}\frac{\partial t}{\partial x} = 2t\]

즉, 합성함수의 미분은 각 함수의 미분의 곱으로 구할 수 있습니다. 신경망 또한 층을 쌓아가며 만든 합성함수로 볼 수 있으므로 연쇄법칙을 이용하여 미분값을 구할수 있습니다.

활성화 함수의 미분

ReLU

\[y = \begin{cases} x,(x>0) \\ 0,(x\leq0) \end{cases}\]

\[\frac{\partial y}{\partial x} = \begin{cases} 1,(x>0) \\ 0,(x\leq0) \end{cases}\]

Sigmoid

시그모이드 함수를 \(x\)에 대해 미분하기 위해서는 연쇄법칙을 이용해야합니다.

\[ y = \frac{1}{1+exp(-x)} = \frac{1}{z} \\ z =1+exp(-x)\]

\[ \frac{\partial y}{\partial z} = -\frac{1}{z^2} \\ \frac{\partial z}{\partial x} = exp(-x) \\ \frac{\partial y}{\partial x} = \frac{\partial y}{\partial z}\frac{\partial z}{\partial x} = -\frac{1}{z^2}exp(-x) = -\frac{1}{(1+exp(-x))^2}exp(-x) = \frac{1}{1+exp(-x)}\frac{exp(-x)}{1+exp(-x)} \\ = y(1-y)\]

Citation

For attribution, please cite this work as

nackta (2022, June 21). nackta blog: 오차역전파(backpropagation). Retrieved from https://nackta.github.io/til/2022-06-21-dlfromscratchch5/

BibTeX citation

@misc{nackta2022오차역전파(backpropagation),
  author = {nackta, },
  title = {nackta blog: 오차역전파(backpropagation)},
  url = {https://nackta.github.io/til/2022-06-21-dlfromscratchch5/},
  year = {2022}
}