머신러닝 학습 과정의 목적은 손실함수를 최소화하는 모델 함수의 파라미터를 찾는 것이다. Model Parameter 값에 대한 손실 함수 값의 변화를 나타낸 공간을 Parameter Space 라고 한다.

Parameter Space 의 개형은 모델 함수, 손실 함수, 데이터에 따라 변한다.

왼쪽은 데이터와 모델 함수를, 오른쪽은 parameter space 를 등고선 형태로 나타낸 것이다. 안쪽 등고선일수록 높이가 낮은 곳으로, 최적화의 목표 지점이 된다.

위와 같이 데이터를 더 잘 설명하는 모델 함수를 찾을수록 손실 함수 값이 줄어드는 것을 알 수 있다. 그렇다면 이 모델 함수를 찾기 위해서 어떻게 해야할까?
경사하강법은 지도학습에서 범용적으로 사용 가능한 학습 기법이다. 머신러닝의 목적함수를 최적화하기 위해 우리는 수학적으로 복잡한 식을 해결해야 하는데, 이는 손으로 푸는 것이 굉장히 어렵다. 경사 하강법은 이 때 아주 좋은 해결책이 된다.

어떤 함수가 최소가 되는 지점을 찾을 때, 우리는 함수의 미분값이 0이 되는 지점들을 추려 후보군으로 설정하고, 그 중 최솟값이 되는 지점을 찾는다. Optimization 의 목적은 손실함수를 최소화 하는 것이기 때문에, 경사하강법도 마찬가지로 함수의 Gradient 가 0이 되는 지점을 찾는다.
함수의 전체 개형을 모르는 상태에서, 함수의 미분값을 따라가며 관찰하는게 경사 하강법의 기본적인 아이디어다.
함수의 어떤 지점 $\theta_0$ 에서 시작해 기울기를 측정한다. 함수의 최소값으로 가기 위해서는 함수가 감소하는 방향으로 이동해야 하고, 이 방향은 기울기의 음의 방향이다.
$$ \theta_{i+1}=\theta_i-\alpha\nabla L(\theta_i) $$
이렇게 기울기를 바탕으로 훈련하는 방식을 Gradient Based Learning 이라고 한다. 이 방식의 장점은 우리가 이동해야 할 방향이 정해져 있다는 것이다. 이 방향으로 적절히 이동하면 우리는 수렴하는 지점 즉 최적점을 이론상 무조건 찾을 수 있다. 다만 실제 실험에서 완벽한 최적점을 찾는 것은 많은 시간과 자원이 들기에, 기울기 변화가 아주 작은 지점까지 찾기도 한다.
$$ ||w_{new}-w_{old}||\le \epsilon $$
