728x90

그래디언트(gradient)

: 텐서 연산의 변화율

  • 가장 작은 손실 함수의 값을 만드는 가중치의 조합을 해석적으로 찾는다.
  • 그래디언트의 반대방향으로 가중치를 조정한다.
1. 훈련 샘플 배치 x와 이에 상응하는 타깃 y를 추출한다.
2. x로 네트워크를 실행하고 예측 y_pred를 구한다.
3. 이 배치에서 y_pred와 y사이의 오차를 측정하여 네트워크의 손실을 계산한다.
4. 네트워크의 파라미터에 대한 손실 함수의 그래디언트를 계산한다.
5. 그래디언트의 반대 방향으로 파라미터를 조금 이동시킨다.

 

미니 배치 확률적 경사 하강법

  • 미니 배치 SGD (mini-batch stochastic gradient descent)
  • 배치 : 데이터 분할 시의 배치 사이즈
  • 확률적 : 각 배치 데이터가 무작위로 선택됨을 의미
    🌟 step값을 적절하게 고르는 것이 중요하다!
    • step 이 너무 작을 경우
    • 지역 최솟값(local minimum) 에 갇힐 수 있다.
      → 지역 최솟값이 아닌 전역 최솟값을 찾아야하므로
    • step 이 너무 클 경우
      함수 곡선 내의 완전한 임의 위치로 이동할 수 있다.

 

옵티마이저 (최적화 방법)

: 최소 손실 방향으로 하이퍼 파라미터를 업데이트하는 과정

  • 모멘텀(Momentum)
    : 현재 기울기 값뿐만 아니라 현재 속도 또한 함께 고려를 하여 값을 조정하는 것
    • 모멘텀은 SDG의 local minimum을 해결해줄 수 있다.
    • 최적점을 찾아가며 해당 최적점에 연관된 방향으로 가속화를 시키는 역할을 한다.

 

Adagrad

  • 과거 gradient를 제곱하여 계속 더해간다. 학습이 덜 된 변수는 학습을 더 빨리, 학습이 많이 된 변수는 학습 참여 횟수를 줄이는 식으로 하여 랜덤값들을 효율적으로 빠르게 학습시켜, 최적화하는 방법이다.
  • 무한히 학습을 진행하다보면 값이 무한히 커져, 최소값에 도달하기도 전에 0에 수렴하게 되어 갱신이 이루어지지 않을 수도 있다.

 

RMSProp

  • 지수 가중 이동 평균(Exponentially weighted moving average)
  • gradient의 단순 누적이 아닌 최신 gradient의 누적 비율을 늘려서 반영하는 방법이다.

 

Adam

  • 학습률을 변경하는 RMSProp과 최적화에 의한 갱신 경로를 변경하는 Momentum을 조합하여 만들어진 옵티마이저
  • Momentum처럼 지금까지 계산해온 기울기의 지수 평균을 저장하고 RMSProp처럼 기울기의 제곱 값의 지수 평균을 저장한다.

🌟 Optimizer에 대해서 쉽게 정리해두신 그림

 

출처 :  https://www.slideshare.net/yongho/ss-79607172

 

 

728x90