경사하강법의 개념

Vincent·2023년 1월 11일
0

경사하강법

목록 보기
1/2

미분(differentiation)은 변수의 움직임에 따른 함수값의 변화를 측정하기 위한 도구로 최적화에서 제일 많이 사용하는 기법

기울기가 앞으로 가야할 방향을 정한다!

미분은 접선의 기울기를 구한다.
접선의 기울기가 음수 : 왼쪽으로 움직이면(미분값을 더하면) loss함수값이 커지고, 오른쪽으로 움직이면 (미분값을 빼면) loss 함수값이 작아짐
접선의 기울기가 양수 : 왼쪽으로 움직이면(미분값을 빼면) loss함수값이 작아지고, 오른쪽으로 움직이면 (미분값을 더하면) loss함수값이 커짐

미분값을 더하면 경사상승법(gradientascent)이라 하며 함수의 극대값의 위치를 구할 때 사용함
미분값을 빼면 경사하강법(gradientdescent)이라 하며 함수의 극소값의 위치를 구할 때 사용함
경사상승/경사하강법은 극값에 도달하면 움직임을 멈춘다.

벡터가 입력인 다변수함수의 경우 편미분(partialdifferentiation)을 사용한다.

  • 편미분 : 하나의 변수만 남겨놓고 나머지를 상수 취급하는 미분 방법

• 각 변수별로 편미분을 계산한 그레디언트(gradient)벡터를 이용하여 경사하강/경사상승법에 사용할 수 있다.

딥러닝의 목표는 예측값과 정답의 차이인 손실함수의 크기를 최소화할 수 있도록 가중치를 업데이트하는 것 이다. 경사하강법은 최적값을 찾기 위해서 손실함수를 편미분한 기울기(Gradient)에 학습률을 곱한 값을 빼서 업데이트를 진행한다. 여기서 학습률(에타)는 해당 기울기가 얼만큼 이동할 지를 결정하는 중요한 하이퍼파라미터이다 (step size).

너무 큰 learning rate에서는 loss가 발산할 수 있음.
너무 작은 learning rate에서는 loss의 수렴이 너무 늦어질 수 있음.
그래서 고민할 바에 그냥 아주 작은 값으로 오래 돌려도 괜찮다.

Learning Rate Scheduling

  • 보통 학습 초반에는 큰 LR, 후반에는 작은 LR으로 최적화
    • 학습 초반의 너무 작은 learning rate는 진행이 더디게 되고,
    • 학습 후반의 너무 큰 learning rate는 더 좋은 loss를 얻지 못하게됨
  • 방법
    1) 현재 epoch에서 loss가 과거 epoch의 loss보다 더 나아지지 않을 경우,
    일정 비율(보통 0.5)으로 decay.
    2) 정해진 epoch가 지날 때마다 일정 비율로 decay

profile
Frontend & Artificial Intelligence

0개의 댓글