부스트캠프 AI Tech 1기 [T1209 최보미]/U stage

Day7 학습정리 - 경사하강법

B1001101 2021. 1. 26. 23:50

강의 복습

1. 경사하강법 (순한맛)

더보기

1) 미분 (differentiation)

  • 변수의 움직임에 따른 함수값의 변화를 측정하기 위한 도구
  • 주어진 점에서의 접선의 기울기
  • 경사상승법(gradient ascent): 미분값을 더하여 함수의 극대값의 위치를 구할 때 사용
  • 경사하강법(gradient descent): 미분값을 빼서 함수의 극소값의 위치를 구할 때 사용
  • 경사상승/경사하강 방법은 극값에 도달하면 움직임을 멈춤

2) 경사하강법 알고리즘

  • input
    • gradient: 미분을 계산하는 함수
    • init: 시작점
    • lr: 학습률 (업데이트 속도 조절)
    • eps: 알고리즘 종료조건
  •  
  • 컴퓨터로 계산할 때 미분이 정확히 0이 되는 것은 불가능하므로 eps보다 작을 때 종료하는 조건이 필요

3) 편미분 (partial differentiation)

  • 벡터가 입력인 다변수 함수의 경우 편미분을 사용
  • 각 변수 별로 편미분을 계산한 그레디언트(gradient) 벡터를 이용하여 경사하강/경사상승법에 사용 가능
  • 그레디언트 벡터는 각 점에서 가장 빨리 증가하는 방향으로 흐름
  • 경사하강법 알고리즘은 그대로 적용되지만 절대값 대신 norm을 계산해서 종료조건 설정

2. 경사하강법 (매운맛)

더보기

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

  • np.linalg.pinv를 이용하면 데이터를 선형모델로 해석하는 선형회귀식 찾을 수 있음
  • 선형회귀의 목적식은 ||y-Xβ||2이고 이를 최소화하는 β를 찾아야 하므로  그라디언트 벡터 𝛁β||y-Xβ||를 구해야 함

2) 경사하강법 기반 선형회귀 알고리즘

  • input: X, y, lr, T
    • norm: L2-norm 계산하는 함수
    • lr: 학습률
    • T: 학습횟수
  • output: beta

3) 경사하강법은 만능일까?

  • 이론적으로 경사하강법은 미분가능하고 볼록(convex)한 함수에 대해선 적절한 학습률과 학습횟수를 선택했을 때 수렴이 보장
  • 선형회귀의 경우 목적식은 회귀계수 β에 대해 볼록함수이기 때문에 수렴 보장
  • 비선형회귀의 경우 수렴이 항상 보장되지 않음

4) 확률적 경사하강법 (stochastic gradient descent)

  • 모든 데이터를 사용하는 대신 데이터 한 개 또는 일부만 활용하여 업데이트 → 연산자원을 좀 더 효율적으로 활용 가능
  • 볼록이 아닌 목적식은 SGD를 통해 최적화할 수 있음
  • 딥러닝의 경우 SGD가 경사하강법보다 더 효율적
  • 미니배치를 가지고 그레디언트 벡터 계산 → 미니배치는 확률적으로 선택하므로 목적식 모양이 바뀜

코멘트

오늘은 경사하강법에 대해 배웠다. 이제부터 슬슬 어려운 내용이 나오는 것 같다. 확률적 경사하강법은 처음 보는 것 같은데 더 자세히 공부해봐야겠다.