- 계산 그래프의 역전파 (오른쪽 -> 왼쪽 신호 전달)
[연쇄법칙의 원리]
- 합성 함수의 미분은 합성 함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있다
[연쇄법칙과 계산 그래프]
- 입력 = ∂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, 수치 미분은 오차역전파법에 비해 구현하기 쉬워 실수가 적음
- 그래서 수치 미분의 결과와 오차역전파법의 결과를 비교하여 오차역전파법을 제대로 구현했는지 검증(=기울기 확인)
[정리]
- 계산 그래프를 이용하여 계산 과정을 시각적으로 파악
- 계산 그래프의 노드는 국소적 계산으로 구성됨. 국소적 계산을 조합해 전체 계산을 구성
- 계산 그래프의 순전파는 통상의 계산 수행
- 한편, 계산 그래프의 역전파로는 각 노드의 미분을 구할 수 있음
- 신경망의 구성 요소를 계층으로 구현하여 기울기를 효율적으로 계산할 수 있음(오차역전파법)
- 수치 미분과 오차역전파법의 결과를 비교하면 오차역전파법의 구현에 잘못이 없는지 확인할 수 있음
'Study > DL' 카테고리의 다른 글
[모두를 위한 딥러닝 시즌2] lab 9-1~9-4 (0) | 2024.01.12 |
---|---|
[밑시딥1] Chapter 6. 학습 관련 기술들 (0) | 2024.01.10 |
[밑시딥1] Chapter 4. 신경망 학습 (1) | 2024.01.09 |
[밑시딥1] Chapter 3. 신경망 (2) | 2024.01.09 |
[밑시딥1] Chapter 2. 퍼셉트론 (1) | 2024.01.09 |