(* DeepLearning from scratch2 서적을 학습한 후 정리한 내용임 )
신경망은 학습과정을 거쳐 손실값을 얻어낼 수 있다.
얻어진 손실값을 이용해 학습과정에 사용된 가중치 행렬의 기울기를 계산해낸다.
그리고 그 기울기를 이용해 가중치 각 원소값들을 조정한 후 학습을 진행한다. 그 결과로 나온 손실값을 이용해 기울기 계산을 하고 가중치 값을 조정한 후 다시 학습과정을 거친다. 이런 과정들을 반복하여 손실값을 줄여나가는 방향으로 가중치 값들을 최적화한다.
앞 절까지 과정에서 손실값을 얻어낼 수 있었다.
이제 가중치 행렬의 기울기를 계산해낼 차례다.
기울기를 계산하기 위해 오차역전파법(back - propagation)을 사용하게 된다.
오차역전파법의 핵심은 연쇄법칙이다.
예를 들어 연쇄법칙을 설명한다.
y = f(x) 와 z = g(y) 라는 두 함수가 있다고 가정한다.
z = g( f(x) ) 가 된다.
이 합성함수의 미분(x에 대한 z의 미분)은 다음의 공식이 된다.
즉 y에 대한 z 미분값과 x에 대한 y 미분값을 곱하면 x에 대한 z 미분값이 된다.
정리하면, 위의 가정이 조건으로 주어진 경우에 대해,
x가 z에 미치는 영향도를 계산하기 위해서는 y에 대한 z 미분값과 x에 대한 y 미분값을 곱하면 된다.
이 법칙을 이용하게 되면 학습 과정이 합성함수들로 복잡하게 구성되어 있더라도 개별과정의 함수들을 미분한 값을 곱하면 전체 과정의 미분을 구할 수 있다.
'인공지능 > DeepLearning from Scratch 2' 카테고리의 다른 글
CBOW 모델의 흐름도 (속도개선버전) (0) | 2019.08.01 |
---|---|
DeepLearning from scratch2 - 1.3.4 계산그래프 (딥러닝 학습) (0) | 2019.07.12 |
DeepLearning from scratch2 - 1.3.2 미분과 기울기 (딥러닝 학습) (0) | 2019.07.11 |
DeepLearning from scratch2 - 1.3.1 손실함수 (딥러닝 학습) (0) | 2019.07.09 |
DeepLearning from scratch2 - 1.2.2 계층으로 클래스화 및 순전파 구현 (딥러닝 학습) (0) | 2019.07.07 |