본문 바로가기
Study/DL

[밑시딥1] Chapter 5. 오차역전파법

by hyeon827 2024. 1. 10.
  • 계산 그래프의 역전파 (오른쪽 -> 왼쪽 신호 전달)

 

[연쇄법칙의 원리]

  • 합성 함수의 미분은 합성 함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있다

[연쇄법칙과 계산 그래프]

  • 입력 = z / ∂z  = 1
  • 이에 대한 국소적 미분 z / ∂t
  • 연쇄법칙에 따라 맨 왼쪽 역전파  'x에 대한 z의 미분'이 됨
  • 역전파가 하는 일 = 연쇄법칙의 원칙

 

 

 

[덧셈 노드의 역전파]

  • z = x + y 의 편미분

  • 최종적으로 L이라는 값을 출력하는 큰 계산 그래프 가정
  • 연쇄법칙으로 상류로부터 ∂L / ∂z 값이 전달
  • 다시 하류로 ∂L / ∂x 과  ∂L / ∂y 값 전달
  • 덧셈 노드의 역전파는 1을 곱하기만 할 뿐이므로 입력된 값 그대로 다음 노드로 전달

 

[곱셈 노드의 역전파]

  • z = xy 의 편미분

  • 곱셈 노드 역전파는 상류의 값에 순전파 때 입력 신호들을 '서로 바꾼 값'을 곱해서 하류로 보냄
  • 순전파 때 x였다면 역전파에서는 y , 순전파 때 y였다면 역전파에서는 x로 바꿈

 

[총 예시]

 

[ReLU 계층]

  • (x > 0) 상류값 그대로 하류로 전달
  • (x ≤ 0) 하류로 신호 전달 X

 

[Sigmoid 계층]

  • x = 함수의 입력을 추상화
  • 'exp' 노드는 y= exp(x) 계산 수행
  • '/' 노드는 y= 1/x 계산 수행

 

  • 1단계

  • 2단계 (덧셈 노드는 상류의 값을 그대로 전달)

  • 3단계

  • 4단계 (곱셉 노드는 순전파 때 값을 '서로 바꿈')

  • 결과(입력 x와 출력 y만으로 계산 가능)

 

[Affine 계층]

  • Affine 변환 = 신경망의 순전파 때 수행하는 행렬의 곱
  • 입력데이터 X 하나만 고려
  • X와  ∂L / ∂X 같은 형상
  • W와  ∂L / ∂W도 같은 형

[배치용 Affine 계층]

  • 배치 = 데이터 N개를 묶음
  • 기존과 다른 부분은 입력 X 형상이 (N,2)가 된 것 뿐
  • (편향의 합)-> 역전파 때는 각 데이터의 역전파 값이 편향의 원소에 모여야 됨 -> 0번째 축의 합

 

[Softmax-with-Loss 계층]

  • 소프트맥스 함수 + 교차 엔트로피 오차
  • Softmax 계층은 입력 (a1,a2,a3)를 정규화하여 (y1,y2,y3) 출력
  • Cross Entropy Error 계층은 Softmax의 출력(y1,y2,y3)와 정답 레이블(t1,t2,t3)를 받고 손실 L 출력
  • Softmax 계층의 역전파 = (y1-t1, y2-t2, y3-t3)
  • 신경망 학습 목적 = 신경망 출력이 정답 레이블과 가까워지도록 가중치 매개변수  값 조정
  • 해당 목적을 위해 (y1-t1, y2-t2, y3-t3) 결과를 효율적으로 앞 계층에 전달해야 함

 

[오차역전파법으로 구한 기울기 검즘하기]

  • 수치 미분의 단점 = 느림
  • But, 수치 미분은 오차역전파법에 비해 구현하기 쉬워 실수가 적음
  • 그래서 수치 미분의 결과와 오차역전파법의 결과를 비교하여 오차역전파법을 제대로 구현했는지 검증(=기울기 확인)

[정리]

  • 계산 그래프를 이용하여 계산 과정을 시각적으로 파악
  • 계산 그래프의 노드는 국소적 계산으로 구성됨. 국소적 계산을 조합해 전체 계산을 구성
  • 계산 그래프의 순전파는 통상의 계산 수행
  • 한편, 계산 그래프의 역전파로는 각 노드의 미분을 구할 수 있음
  • 신경망의 구성 요소를 계층으로 구현하여 기울기를 효율적으로 계산할 수 있음(오차역전파법)
  • 수치 미분과 오차역전파법의 결과를 비교하면 오차역전파법의 구현에 잘못이 없는지 확인할 수 있음