본문 바로가기

공부/딥러닝 (Tensorflow)

오차역전파법

반응형
Backpropagation (오차역전파법)
  • 오차를 역으로 전파하는 방법 
    • 여기서 오차란? 손실값
  • 가중치 매개변수(w1, w2)의 기울기를 효율적으로 계산하는 방법

 

Q. 언제까지 이과정을 반복?

...더보기

A. 0이 될 때 가지 하는 것이 궁극적이나 0이 될 수 없으면 오차가 내가 정한 엡실론보다 작아질 때 까지 반복한다.

 

Forward propagation (순전파)

계산을 왼쪽에서 오른쪽으로 진행

 

Computational graph (계산 그래프)
  • 계산 과정을 그래프로 나타낸 것
  • 복수의 node와 edge로 표현됨
  • 계산 그래프를 통한 역전파 미분 값 전달

 

계산 그래프의 특징

국소적 계산을 전파함으로써 최종 결과를 얻음

 

국소적계산

전체에서 어떤 일이 벌어지든 상관없이 자신과 관계된 정보만으로 결과를 출력할 수 있도록 하는 것

-> 내 주변의 계산 값만 보면 된다.

 

계산 그래프의 장점
  1. 국소적 계산: 각 노드에서의 단순한 계산에 집중하여 문제를 단순화 가능
  2. 중간 계산 결과를 모두 보관 가능
  3. 역전파를 통해 ‘미분'을 효율적으로 계산

 

Chain rule (연쇄법칙)
  • 합성함수: 여러 함수로 구성된 함수
  • 성질: 합성함수의 미분은 합성함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있음

 

역전파

덧셈 노드의 역전파

z = x + y의 미분

∂z/∂x = 1 

∂z/∂y = 1 

 

곱셈 노드의 역전파

z = xy의 미분

∂z/∂x = y  

∂z/∂y = x 

덧셈 노드의 특성 : 각 노드에 그대로 전파된다.
곱셈 노드의 특성 : 결과 값이 x, y 가 거꾸로 전파된다.

 

활성화 함수 ReLU 계층 구현하기

 

   

순전파 때의 입력인 x가 0보다 크면 역전파는 상류의 값을 그대로 하류로 흘린다.

 

    

반면, 순전파때 x가 0이하면 역전파때 하류로 신호를 보내지 않는다. (0을 보냄)

 

Affine/Softmax 계층 구현하기

Affine 계층

  • Affine transformation : 신경망의 순 전파 때 수행하는 행렬 내적 (inner product)
  • AffineLayer : 어파인 변환을 수행하는 계층

 

Softmax 함수

  • 입력값을 정규화하여 출력

 

신경망 학습 절차
  • 1단계: 미니배치
    • 훈련 데이터 중일 부를 무작위로 가져옴. 선별한 데이터(미니 배치)의
  • 2단계: 기울기 산출 - 오차역전파법이 등장하는 단계
    • 미니 배치의 손실 함숫값을 줄이기 위해 각 가중치 매개변수의 기울기를
    • 기울기는 손실 함수의 값을 가장 작게 하는 방향으로 제시함
  • 3단계: 매개변수 갱신
    • 가중치 매개변수를 기울기 방향으로 조금씩 갱신함
  • 4단계: 반복
    • 1~3단계를 반복함

 

정리

...더보기

- 계산 그래프를 이용하면 계산 과정을 시각적으로 파악할 수 있다.

- 계산 그래프의 노드는 국소적 계산으로 구성된다. 국소적 계산을 조합해 전체 계산을 구성한다.

- 계산 그래프의 순전파는 통상의 계산을 수행한다. 한편, 계산 그래프의 역전파는 각 노드의 미분을 구할 수 있다.

- 신경망의 구성 요소를 계층으로 구현하여 기울기를 효율 적으로 계산할 수 있다. 

 

 

 

참조 - 사이토 고키(2019). 밑바닥부터 시작하는 딥러닝. 서울: 한빛미디어.

반응형