경사하강법(Gradient Descent) 간단 정리

유상준·2022년 9월 22일
0

경사하강법 : 미분계수, 즉 접선의 기울기를 이용하여 함수의 최소, 최대값을 찾아 갈 수 있다.

  1. 단변량 변수
  • ex) 2차원 기준 설명 (x,y)

  • 함수의 값(y)을 증가 시키고 싶다면, x에 f’(x)값을 더하라 (경사 상승법)

  • 함수의 값(y)을 감소 시키고 싶다면, x에 f’(x)값을 빼라 (경사 하강법)

  • 2차원 기준의 경우, 눈으로 쉽게 방향을 설정할 수 있지만, 고차원으로 갈 수록 그렇게 할 수 없고 그럴 때 미분값을 이용하여 방향을 찾아 나갈 수 있다. 이는 딥러닝 모델의 학습 방법에도 이용되는 방법이다.

  • 위와 같은 작업을 반복하면서, 극 값에 도달하면 미분계수가 0이되므로 이동을 멈추게 된다.

    • 이 작업에서, 컴퓨터로 미분을 진행할 시에 정확히 0이란 값이 나올 수 없으므로 임계값을 설정해두고 (ex: eps) 미분 값이 |eps|보다 작은 경우 동작을 멈추도록 한다.
    • x에 f’(x)값을 더하고 빼면서, 몇 배수 하여금 뺄 것이냐 정하게 되는데, 그것을 lr(learning rate)라고 한다. (ex: x - lr * f’(x), lr = 0.01)
      • lr은 극값에 수렴하는데에 있어서 중요한 parameter이기 때문에 조심스럽게 다루어야 한다.

2.다변량 변수

  • 벡터와 같이 다변량 변수가 입력으로 주어지면, 편미분을 통하여 계산

  • ex) d차원 기준 설명 (벡터의 원소의 개수가 d개, 즉 차원이 d차원)

  • gradient vector 생성 : (1번째 변수에 대한 편미분 값, 2번째 변수에 대한 편미분 값, …. ,d번째 변수에 대한 편미분 값)

  • 원래 벡터 x에 gradient vector를 더하거나 빼줘서 경사 상승법, 하강법 반복

    • 가장 빨리 극점으로 접근하는 경로를 따라가게 된다
  • eps값 설정해서 norm(eps)보다 작거나 같으면 수렴했다고 판단하고 정지

  • 선형 모델의 경우, cost function이 2차식이기 때문에 충분한 반복수가 주어진다면, 무조건 최소값으로 수렴이 가능하다.

  • 하지만 비선형 모델의 경우, cost function이 2차식이 아니기 때문에, local minimum의 값이 global minimum의 값과 일치하지 않을 수도 있기 때문에, 다른 형식의 경사하강법을 사용한다.

    • ex) mini-batch를 이용한 확률적 경사하강법 (SGD)
    • 이 때, mini-batch size 또한 하나의 parameter로 중요하게 작용한다
profile
데이터 사이언티스트 지망생

0개의 댓글