Day_3 07. 경사하강법 - 매운맛

작성일

1 분 소요

경사하강법 - 매운맛

1. 경사하강법으로 선형회귀 계수 구하기

  • 선형회귀의 목적식은 $   y - X\beta   _2$ 이고 이를 최소화하는 $\beta$를 찾아야 하므로 다음과 같은 그레디언트 벡터를 구해야 함

  • 목적식을 최소화하는 $\beta$를 구하는 경사하강법 알고리즘은 다음과 같음

  • L2 노름의 제곱을 목적식으로 해도 목적식을 최소화하는 것은 같음
# Input: X, y, lr, T, Output: beta
# norm: L2-노름을 계산하는 함수
# lr: 학습률, T: 학습횟수
for t in range(T):
    error = y - X @ beta
    grad = - transpose(X) @ Error
    beta = beta - lr * grad
  • 이 알고리즘을 이용하면 무어펜로즈 역행렬을 이용하지 않아도 회귀계수를 계산 가능
  • 학습횟수를 작게 잡으면 목표로하는 값으로 수렴하지 않음
  • 학습률을 너무 작게 잡으면 수렴이 잘 안되고 크게 잡으면 발산할 수 있음

2. 경사하강법은 만능인가?

  • 이론적으로 경사하강법은 미분가능하고 볼록(convex)한 함수에 대해선 적절한 학습률과 학습횟수를 선택했을 때 수렴이 보장되어 있음
  • 볼록한 함수는 그레디언트 벡터가 항상 최소점을 향함
  • 특히 선형회귀의 경우 목적식 $   y - X\beta   _2$은 회귀계수 $\beta$에 대해 볼록함수이기 때문에 알고리즘을 충분히 돌리면 수렴이 보장
  • 하지만 비선형회귀 문제의 경우 목적식이 볼록하지 않을 수 있으므로 수렴이 항상 보장되지는 않음
  • 특히 딥러닝을 사용하는 경우 목적식은 대부분 볼록함수가 아니므로 수렴이 보장되지 않음

3. 확률적 경사하강법

  • 확률적 경사하강법(stochastic gradient descent)은 모든 데이터를 사용해서 업데이트하는 대신 데이터 한개 또는 일부(mini-bach) 활용하여 업데이트 함
  • 볼록이 아닌(non-convex) 목적식은 SGD를 통해 최적화할 수 있음
  • SGD라고 해서 만능은 아니지만 딥러닝의 경우 SGD가 경사하강법보다 실증적으로 더 낫다고 검증 되었음
  • 데이터의 일부를 사용해서 계산한 그레디언트 벡터값의 기대값이 전부를 사용한 그레디언트 벡터와 유사하다고 확률적으로 보장됨
  • SGD는 데이터의 일부를 가지고 패러미터를 업데이트하기 때문에 연산자원을 좀 더 효율적으로 활용하는데 도움

3.1 확률적 경사하강법의 원리: 미니배치 연산

  • 경사하강법은 전체데이터 $D = (X, y)$ 를 가지고 목적식의 그레디언트 벡터인 $\nabla L(D, \theta)$를 계산
  • SGD는 미니배치 $D_(b) = (X_(b), y_(b)) \subset D$를 가지고 그레디언트 벡터를 계산
  • 그레디언트 값이 다르기 때문에 완전히 같진 않지만 방향은 비슷할거라는 아이디어
  • 미니배치는 확률적으로 선택하므로 목적식 모양이 바뀌게 됨

  • 목적식의 모양이 확률적으로 변하기 때문에 극소점에서도 탈출이 가능
  • SGD는 볼록이 아닌 목적식에서도 사용 가능하므로 경사하강법보다 머신러닝 학습에 더 효율적

Further Question

강의영상 03:47부터 소개되는 내용인, d-차원 벡터(베타)에 대한 그레디언트 벡터를 구하는 계산을 각자 직접 손으로 해보기 바랍니다!

댓글남기기