카테고리 없음

DL study - 5장 오차역전파법

seunng 2024. 1. 30. 21:35
반응형
SMALL

밑바닥부터 시작하는 딥러닝 5단원 -  오차역전파법

p 148 - 187

 

 

신경망의 가중치 매개변수의 기울기 -> 수치 미분을 사용하여 구현함

 

수치 미분은 단순하고 구현하기도 쉽지만 계산 시간이 오래 걸린다는 것이 단점

 

따라서 가중치 매개변수의 기울기를 효율적으로 계산하는 '오차역전파법'에 대해 학습해보자.

 

 


 

오차역전파법

: 오차를 역으로 전파하는 방법 (Backward propagation of errors)

 

계산 그래프  (computational graph)

 

 

계산 그래프 문제의 예시

 

 

국소적 계산

 

각 노드는 자신과 관련한 계산 외에는 아무것도 신경 쓸 게 없다 

전체 계산이 아무리 복잡하더라도 각 단계의 국소적인 계산은 단순함.

 

 

 

계산 그래프의 이점 ?

1. 국소적 계산
2. 중간 계산 결과를 모두 보관 가능
3. 역전파를 통해 '미분'을 효율적으로 계산 가능




 

이 상황에서 만약 사과 가격이 오르면 최종 금액에 어떠한 영향을 미칠까 ?

-> '사과 가격에 대한 지불 금액의 미분'을 구하는 문제에 해당

 

을 구하는 문제

 

-> 이 미분 값은 사과 값이 '아주 조금' 올랐을 때 지불 금액이 얼마나 증가하느냐를 표시한 것

역전파에 의한 미분 값의 전달


연쇄법칙 (Chain Rule)

 

연쇄법칙이란?
함성 함수의 미분은 합성 함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있다.

 

연쇄법칙을 계산 그래프로 나타냄

 

 


 

 

 

덧셈 노드의 역전파

 

 

z = x + y

 

최종적으로 L 이라는 값을 출력하는 계산 그래프

 

 

순전파 (왼)                                                                      역전파 (오)

 

 

 

 

 


 

 

곱셈 노드의 역전파

 

z = x y 

 

 

 

 


 

사과 쇼핑 예시

 

사과의 가격, 사과의 개수, 소비세라는 세 변수 각각이 최종 금액에 어떻게 영향을 주는가 !

 

'사과 가격에 대한 지불 금액의 미분'

'사과 개수에 대한 지불 금액의 미분'

'소비세에 대한 지불 금액의 미분'

구하기

 

 

 

 

 

 

 

해결해보기!


단순한 계층 구현하기

 

  • 곱셈 노드: 'MulLayer'
  • 덧셈 노드: 'AddLayer'

 

 


활성화 함수 계층 구현하기

계산 그래프 신경망에 적용하기!

 

ReLU 계층

 

ReLU 수식

 

x 에 대한 y 의 미분

 

 

 

 

 

 

Sigmoid 계층

 

시그모이드 함수

 

 

  • 1단계

 

역전파 때는 상류에서 흘러온 값에 -y^2 을 곱해서 하류로 전달한다

 

 

 

 

  • 2단계

'+' 노드는 상류의 값을 여과 없이 하류로 내보낸다

 

 

 

  • 3단계

상류의 값에 exp(-x) 를 곱해 하류로 전파한다

  • 4단계

‘×' 노드는 순전파 때의 값을 서로 바꿔 곱한다

 

 

 

 

 

 


 

Sigmoid 계층 계산 그래프 간소화 버전 

 

 

 

 


 

Affine/Softmax 계층 구현하기

 

 

 

 

 

 

 

 

 

 

반응형
LIST