본문 바로가기

AI시작

3.1 Back Propagation

역전파는 신경망 훈련의 본질입니다.

이전 에포크 (, 반복)에서 얻은 오류율 (, 손실)을 기반으로 신경망의 가중치를 미세 조정하는 방법입니다. 가중치를 적절하게 조정하면 오류율이 낮아지고 일반화를 통해 모델을 신뢰할 수 있습니다.

 

우선 우리는 Forward Propagation 에서 오차율이 최소화되는 W 값을 찾는 과정을 Gradient Descent 라고 합니다.

 

 

짚고 넘어가는 사전 지식

참고 1 : 미분으로 function 의 변화량을 알 수 있다

참고 2 편미분이란?

하나 이상의 변수를 갖는 함수 f 주어졌다고 가정하자. 예를 들어,

이 함수의 그래프는 유클리드 공간 속 곡면을 정의한다. 곡면 속 점마다 무한히 많은 접선이 존재한다. 편미분은 이런 접선 가운데 하나를 골라, 그 기울기를 구하는 것이다.

 

  (x, y) 에서 x z 평면과 평행하는 접선의 기울기를 구하자y 상수로 , 곡면 위에 놓인 곡선을 얻는다.

곡선 방정식에서 y 상수로 보아 미분 구하면,  (x, y)에서 곡선의 기울기가 다음과 같다는 것을 있다.

대입 통해,  (x, y) 에서 x z 평면과 평행하는 접선의 기울기는 3이라는 것을 있다.

,  (1, 1)에서 z x 대한 편미분은 3이다.

Chain rule

Question:

만약 f(x) = 2x 이g(x) = x^2 일때

F(g(x)) 의 미분값은 무엇일까?

 

Answer:

체인룰의 솔루션 : F(g(x)) 의 미분은 g(x)의 미분 곱하기 f(x)의 미분 값과 같다

f(x) = 2x의 미분값은 2

g(x) = x^2 의 미분값은 2x

따라서 F(g(x)) 의 미분값은 4x 이다.

Forward Propagation 에서는 Input weight 백터와 이전 layer output 이다.

따라서 Back Propagation 에서는 우리 error function 의 편미분값으로 네트워크 안의 각 개별 weight 업데이트시킬 수 있다.

에러의 백프로파게이션은 gradient descent 를 이용한 weight 의 개선을 하기 위해서 필요하다.

어떠한 weight 편미분은 네트워크 안의 에러의 기울기이고

우리는 체인룰을 에러의 gradient 인 편미분을 계산하기 위해

weight propagation 를 모든 네트워크 안의 가능한 path 에서 체인룰을 적용함으로써 이용할 수 있다.

 

심플하게 보는 Back Propagation 절차

이 딥러닝 네트워크의 백워드를 살펴보면, 현재 레이어의 에러는 현재 아웃풋의 미분값과 현재 히든레이어의 에러와 weight 합산곱을 곱해서 얻습니다.

Weight 의 미분은 아웃풋과 그 error 를 곱해서 얻을 수 있습니다.

인풋 W의 미분값의 합을 아래와 같다고 할 때

현재 W값들은 위의 값에 러닝레이트를 곱하여 업데이트할 수 있습니다.

이것을 반복하였을때 W 값들이 개선되는 것을 볼 수 있습니다.

참고 사이트

 : https://www.youtube.com/watch?v=q555kfIFUCM