역전파/BP
역전파의 정의
역전파(Backpropagation)는 "오류 역전파(Error Back Propagation)"의 줄임말로, 인공 신경망을 훈련하기 위해 최적화 방법과 함께 사용되는 일반적인 방법입니다. 이 방법은 네트워크의 모든 가중치에 대한 손실 함수의 기울기를 계산합니다.
이 기울기는 손실 함수를 최소화하도록 가중치를 업데이트하기 위해 최적화 방법으로 피드백됩니다.
역전파에는 손실 함수의 기울기를 계산하기 위해 각 입력 값에 대한 알려진 원하는 출력이 필요합니다. 이는 다층 피드포워드 네트워크에 대한 델타 규칙의 일반화입니다. 체인 규칙을 사용하면 각 계층의 기울기를 반복적으로 계산할 수 있습니다. 역전파 알고리즘은 인공 뉴런(또는 "노드")의 활성화 함수가 미분 가능해야 합니다.
역전파 단계
역전파 알고리즘은 주로 인센티브 전파와 가중치 업데이트의 두 단계로 구성됩니다.
1단계: 보급에 대한 인센티브 제공
각 반복의 전파 단계는 두 단계로 구성됩니다.
(전방 전파 단계) 자극 반응을 얻기 위해 네트워크에 학습 입력을 공급합니다.
(역전파 단계) 훈련 입력에 해당하는 목표 출력에서 자극 응답을 빼서 출력 계층과 은닉 계층의 응답 오차를 얻습니다.
2단계: 체중 업데이트
각 시냅스 가중치에 대해 업데이트는 다음과 같이 수행됩니다.
입력 자극과 응답 오차를 곱하여 가중치의 기울기를 얻습니다.
이 기울기를 스케일로 곱하고, 반전한 후 가중치에 추가합니다.
이 비율은 훈련 과정의 속도와 효과에 영향을 미칩니다. 기울기의 방향은 오차가 확대되는 방향을 나타냅니다. 따라서 가중치로 인해 발생하는 오류를 줄이기 위해 가중치를 업데이트할 때 이를 부정해야 합니다.
1단계와 2단계는 네트워크가 입력에 대한 응답을 만족스럽게 미리 정해진 목표 범위에 도달할 때까지 반복적으로 반복될 수 있습니다.
역전파의 한계
결과는 극단적인 값으로 수렴할 수 있습니다. 최소값이 하나만 있는 경우 경사 하강의 "언덕 등반" 전략은 확실히 효과가 있을 것입니다.
경사 하강법은 전역 최소값 대신 지역 최소값을 찾을 수 있습니다.
역전파 학습을 통해 얻은 수렴은 느립니다.
역전파 학습의 수렴은 보장되지 않습니다.
역전파 학습에는 입력 벡터의 정규화가 필요하지 않습니다. 하지만 정규화를 통해 성능을 향상시킬 수 있습니다.