역전파
역전파, 오차 역전파법(Backpropagation) 또는 오류 역전파 알고리즘은 다층 퍼셉트론 학습에 사용되는 통계적 기법을 의미한다. 경사 하강법의 확장 개념이며, 다층 퍼셉트론에서의 최적화 과정이다.
일반적인 다층 퍼셉트론의 형태는 [입력층 - 은닉층 - 은닉층 - ... - 출력층]으로 구성되며, 각 층은 서로 교차되는 가중치 값으로 연결되어 있다. 신경망 내부의 가중치는 오차 역전파 방법을 사용해 수정한다.
주어진 문제를 해결하기 위해 구성한 모델에서 수많은 가중치를 무작위로 설정한 뒤 결과값을 도출하고, 이를 정답과 비교하여 동일 입력층에 대해 원하는 값이 출력되도록 개개의 가중치를 조정하는 방법으로 사용되며, 속도는 느리지만 안정적인 결과를 얻을 수 있는 장점이 있어 기계 학습에 널리 사용되고 있다.
구동 방식
1 | 임의의 초기 가중치(w)를 준 뒤 결과(y(out))를 계산.
2 | 계산 결과와 우리가 원하는 값 사이의 오차를 구함.
3 | 경사 하강법을 이용해 바로 앞 가중치를 오차가 작아지는 방향으로 업데이트.
4 | 위 과정을 더이상 오차가 줄어들지 않을 때까지 반복.
‘오차가 작아지는 방향으로 업데이트한다’는 의미는 미분 값이 0에 가까워지는 방향으로 나아간다는 의미이다. 즉, '기울기가 0이 되는 방향’으로 나아가야 하는데, 이 말은 가중치에서 기울기를 뺐을 때 가중치의 변화가 전혀 없는 상태를 말한다. 오차 역전파를 다른 방식으로 표현하면 가중치에서 기울기를 빼도 값의 변화가 없을 때까지 계속해서 가중치 수정 작업을 반복하는 것이다.