본문 바로가기
Data Science/머신러닝

오차역전파 나만의 정리

by 코딩은 잼있어 2020. 9. 16.
728x90

오차역전파(Back Propagation)

Review - 수치미분 문제점

딥러닝 학습에서 사용되는 수치미분의 경우 입력이 클경우에 가중치와 bias의 수치미분연산이 오래걸린다. 이러한 문제를 해결하기 위해 오차역전파를 사용한다.

1. 오차역전파(Back Propagation) 개념 원리

가중치나 bias를 편미분 하는대신에 체인 룰을 이용하여 하나의 국소 미분으로 분리 한후에 수학적으로 계산하는방법을 오차역전파라고 한다.

쉽게 말해서 편미분 대신 행렬 표현으로 만들어서 계산하는것! 행렬로 계산하기 때문에 속도가 빠르다.

2. 오차역전파의 패턴

미분의 방법에서 행렬곱 방법으로 변환할때 복잡한 수학 증명 과정이 있습니다. 하지만 변환 결과에서 오차역전파의 일정한 패턴을 보이고 해당 공식 패턴을 잘 활용하여 각 층마다 W와 bias에 대해 구할수 있으면 됩니다.

오차역전파 공식 구하는 방법

1개 이상의 은닉층을 가진 신경망에서 출력층 손실, 가중치 변화율, 바이어스 변화율을 구해보자

img

오차역전파 공식 구하는 순서

[1] 출력층의 출력값과 정답을 이용하여, 출력층의 손실 계산

  • 출력층의 손실 = (출력층 출력 - 정답) x 출력층 출력(1-출력층출력)

[2] 은닉층에서의 손실을 계산할경우, 현재층/ 이전층 / 다음층 개념을 도입하여 동일한 패턴으로 반복계산

  • 은닉층의 현재층 손실 = (다음층 손실 * 다음층에 적용되는 가중치 W^T) x 현재층 출력(1 - 현재층출력)

[3] 계산된 각층의 출력값과 손실을 이용하여,

  • 현재층의 바이어스 변화율 = 현재층 손실
  • 현재층에 적용되는 가중치 변화율 = (이전층 출력)^T * 현재층 손실

위 방법으로 출력층에서의 손실, 가중치, bias을구해보자

loss_4 =( A4 - Target ) x A4 (1 - A4 )

W4= W4 - a x W의 변화율 = W4 - a x (A3^T * loss_4)

b4 = b4 - a x loss_4


위와 같은 방법으로 나머지 은닉층2, 은닉층 1의 가중치와 bias를 구하면

은닉층2의 W,b

img

img


은닉층 1의 W,b

img

img


3. 오차역전파를 활용한 예제

728x90