Broccoli's House
#4-(1) 오차역전파법 : 소개 본문
※ 이 글의 내용은 O'REILLY의 <밑바닥부터 시작하는 딥러닝> 책을 기반으로 한다.
오차역전파법 : 소개
- 오차역전파법
- 수식적으로 생각해보면, 학습하는 과정에서 다음 매개변수(가중치)의 값을 구할 때 손실함수를 가중치에 대해 미분한 값을 현재의 가중치에서 빼준다. 손실함수를 가중치에 대해 미분한 값은 수식적으로 가중치의 변화에 따른 손실함수의 변화로 생각할 수 있고, 바꿔말하면 이것은 손실함수에 현재의 가중치가 얼마나 많은 영향을 끼치는가 정도로 해석할 수 있다. 단일 퍼셉트론일 때는, 뉴런이 하나이므로 매개변수 가중치도 하나이다. 단일 퍼셉트론의 출력에는 하나의 가중치 값이 출력에 100% 영향을 끼치기 때문에, 손실함수의 최소화를 하기 위한 가중치의 변화 계산도 단순해진다. 그러나 뉴런이 많아지고, 층이 깊어지면 얘기가 달라진다. 각 뉴런이 모두 각각의 가중치를 가지고 있기 때문에, 출력에 대한 각각 가중치의 영향력을 알아야만 각 가중치의 다음 값이 결정이 된다.
- 위의 그림에서 가중치 값은 출력에 영향을 주고 출력은 가중치 변화량에 영향을 주는데, 가중치가 여러 개라면 각각의 가중치가 출력에 얼마나 영향을 끼치는가를 알아야 그 가중치의 변화량이 결정되는 것이다. 예를 들어 두 개의 뉴런(가중치)을 가진 모델이 있을 때를 생각해본다. 두 뉴런의 가중치는 출력에 끼치는 영향력이 각각 다르다고 가정한다. 출력의 오차가 크면 영향력이 큰 가중치를 변화시켜 오차를 크게 줄일 수 있을 것이다. 출력의 오차가 작다면 영향력이 큰 가중치는 거의 변화시키지 않고, 영향력이 작은 가중치를 변화시켜 오차를 서서히 줄일 수 있을 것이다. 즉, 출력에 대한 각 가중치의 영향력에 따라 각 가중치의 변화량도 달라지는 것이다. 이것이 우리가 학습 시에 출력에 대한 가중치의 영향력의 정량적 값을 알아야 하는 이유이다.
- 출력에 대한 영향력을 알기 위하여 오차역전파법(Back Propagation)을 사용한다. 이 알고리즘은 학습 시에 입력부터 출발하여 각 노드의 매개변수를 통한 계산 후 출력으로 나오는 순전파(Forward Propagation)와 반대로 출력으로부터 입력까지 연쇄법칙(Chain Rule)을 통해 거슬러 올라간다. 이 연쇄법칙을 이용하면 출력에 대한 각 노드 매개변수의 미분 값이 계산되는데, 이 미분 값이 바로 특정 매개변수가 전체 출력에 주는 영향력이 되는 것이다.
'공부 > 딥러닝' 카테고리의 다른 글
#5-(1) 학습 관련 기술 : 매개변수 갱신 (0) | 2018.03.14 |
---|---|
#4-(2) 오차역전파법 : 역전파 및 예시 (0) | 2018.03.11 |
#3-(3) 학습 : 경사 하강법 (0) | 2018.02.25 |
#3-(2) 학습 : 손실 함수 (0) | 2018.02.25 |
#3-(1) 학습 : 신경망 학습 (0) | 2018.02.07 |