경사하강법
미분
- 변수의 움직에 따른 함수값의 변화를 측정하기 위한 도구로 최적화에서 많이 사용되는 기법
- 벡터가 입력인 다변수 함수의 경우 편미분을 사용
- 각 변수 별로 편미분을 계산한 그레디언트 벡터를 이용하여 경사하강/경사상승법에 사용
- 함수 f의 주어진 점 (x, f(x))에서의 접선의 기울기를 구한다
- 한 점에서 접선의 기울기를 알면 어느 방향으로 점을 움직여야 함수값이 증가 • 감소 하는지 알 수 있음
- 증가 시키고 싶다면 미분갑을 더함
- 감소 시키고 싶으면 미분값을 뺌
- 미분값을 더하면 경사상승법이라 하며 함수의 극대값의 위치를 구할 때 사용
- 미분값을 빼면 경사하강법이라 하며 함수의 극소값의 위치를 구할 때 사용
그레디언트 벡터
경사하강법 단점
- 이론적으로 경사하강법은 미분가능하고 볼록한(convex)한 함수에 대해선 적절한 학습률과 학습횟수를 선택했을 때 수렴이 보장됨
- 하지만 비선형회귀 문제의 경우, 목적식이 볼록하지 않을 수 있으므로 수렴이 항상 보장되지는 않음
확률적 경사하강법 (SGD, Stochastic Gradient Desent)
- 모든 데이터를 사용해서 업데이트하는 대신 데이터 한 개 또는 일부 활용하여 업데이트
- 데이터 일부를 가지고 패러미터를 업데이트하기 때문에 연산자원을 좀 더 효율적으로 활용하는데 도움
- 볼록이 아닌 (non-convex) 목적식은 SGD를 통해 최적화할 수 있음
- 미니배치를 가지고 그레디언트 벡터를 계산
- 미니배치는 확률적으로 선택하므로 목적식 모양이 바뀌게 됨