수치미분보다 더 효율적으로 매개변수의 기울기를 계산할 수 있는 오차역전파에 대해 알아봤습니다.
다음과 같은 합성함수가 있을 때
\[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\]
즉, 합성함수의 미분은 각 함수의 미분의 곱으로 구할 수 있습니다. 신경망 또한 층을 쌓아가며 만든 합성함수로 볼 수 있으므로 연쇄법칙을 이용하여 미분값을 구할수 있습니다.
\[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}\]
시그모이드 함수를 \(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)\]
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} }