카테고리 없음
경사하강법과 역전파 알고리즘
ROSEV
2021. 9. 27. 19:08
Back - propagation (BP)
오차 역전파(Back-propagation)은 Backwards Propagation of errors의 줄임말입니다.
신경망에 존재하는 가중치들을 어떻게 업데이트를 해야할지 결정하기 위해 epoch/batch마다 출력층 방향(역방향)으로 미분값을 계산하고 가중치를 업데이트 하여 신경망을 학습하는 알고리즘입니다.
알고리즘의 이해
- 학습할 신경망을 구성/선택
- 가중치 랜덤 초기화
- 순전파를 통해 출력층에 도달 및 출력값 확인
- 비용함수 계산(cost 확인)
- 해당 가중치에 대한 편미분을 진행하고, 최소화 하는 가중치를 찾는다(기울기를 낮은쪽으로 이동)
- 역전파를 통해 입력층으로 돌아오면서 비용함수를 최소화하는 가중치들로 업데이트 한다.
- 어떤 정지기준 충족 혹은 비용함수 최소화를 기준으로 반복한다.
경사하강법(gradient. descent)
: 비용함수의 최적값(최소값)을 찾아, 기울기(겅사)를 구하여 기울기가 낮은 쪽으로 계속 이동하는 것을 찾을 때까지 반복하는 것입니다.
해당 함수의 최적값을 찾기 위해 step size(학습률)을 통해 한번 기울기가 움직일 폭을 정합니다. 이를 통해 최적의 파라미터를 찾으려는 것입니다. 여기서 경사는 편미분한 벡터를 의미하며, 이를 조금씩 움직이는 것이 중요합니다.
학습률이 너무 작거나, 너무 높다면 최적값이 이르기까지 오래 걸리거나, 지나치는 경우가 있습니다. 또한, 경사하강법의 약점이 있습니다.전역 최소값에 도달하기 직전, 지역최소값에 빠지는 것을 말합니다. 이를 보완하기 위해 모멘텀, 미니배치 등 여러 방법론이 등장했습니다. 아래는 여러 방법론에 대해 어떻게 움직이는지를 볼 수 있는 그래프입니다.
다양한 경사하강법
- 기존의 경사하강법 (GD)
- 전체 데이터를 배치를 이용 1번의 반복 한번만
- 확률적 경사하강법(SGD)
- 무작위로 뽑은 관측치마다 학습
- 변화된 경사하강법
- 확률적 경사하강법 변화된 방법
- 2차최적화 알고리즘 기반 방법
- 미니배치
- 미니배치를 통해 머신러닝처럼 훈련/데이터셋을 나눈 것처럼, 예를 들면 배치를 데이터가 1000개 있다면 미니배치를 100개가 있다면 10번이고, Epoch이라는 데이터의 몇번 돌릴 것이냐, 20번이라면 총 가중치가 200번 업데이트가 되는 것
- 다양한 경사하강법의 예시
- SGD
- Momentum
- NAG
- Adagrad
- Adadelta
- Rmsprop