딥러닝

오차역전파법 - 계산 그래프

남마허 2020. 1. 27. 00:11

왜 오차역전파법을 배우나?

오차역전파법은 가중치 매개변수의 기울기를 계산하는 방법입니다.

굳이 수치미분 대신 사용하는 이유는 오차역전파법이 빠르기 때문입니다.

많은 양의 데이터를 다뤄야하므로 조금이라도 빠른 것이 좋겠죠.

 

 

 

오차역전파법은 계산 그래프를 활용하여 구현되어집니다.

그럼 계산 그래프는 무엇일까요?

 

 

 

요런 것입니다.

저 f의 자리에는 +, -, *, exp(x) 등이 들어갈 수 있겠군요!

 

 

사용예시를 봅시다.

 

 

화살표의 방향으로 진행하는 것이 순전파입니다.

이 계산 그래프의 특징은 뭘까요?

분할정복처럼 국소적 계산을 전파함으로써 최종결과를 얻을 수 있다는 것입니다.

 

그렇다면 역전파는 순전파의 역방향일 것이고..

구하고자 하는 것은 기울기이니..

계산 그래프의 저런 특징이 기울기 또한 구하기 쉽게 만드는 구나!

라고 생각할 수 있겠죠.

맞습니다.

 

합성함수 공식 기억나십니까?

 

오우 이제 기억나는군요

 

갑자기 이걸 왜 보여주냐??

이것이 적용되는 계산 그래프를 보죠!

 

오우 뭔가 알거같죠!

 

저 계산 그래프가 신경망이라고 가정해봅시다.

역으로 미분을 하며 따라가다보면 '매개변수 W에 대한 전체 값L에 대한 증분'을 알 수 있겠죠

 

 

(참고로)

이 식은 X에 대한 L의 미분이며 X가 증가할 때 L이 얼마나 증가했는지에 대한 값입니다.

 

 

 

 

 

정리해보면

매개변수의 기울기를 좀 더 빠르게 구하고 싶다.

그 방법은 오차역전파법이다.

이것은 계산그래프를 통해서 구현할 수 있다.

순전파는 그냥 그래프대로 따라가면 된다.

역전파에서는 우리의 목적인 기울기(미분값)을 구할 것이다.

이게 뜯어보니까 합성함수의 형태와 딱 들어맞더라!!

 

 

 

 

 

 

 

[참고]

-밑바닥부터 시작하는 딥러닝

-https://bhsmath.tistory.com/184

-https://ratsgo.github.io/deep%20learning/2017/05/14/backprop/

-https://excelsior-cjh.tistory.com/171

반응형