본문 바로가기
Computer Science/AL, ML

Gradient Descent

by Gofo 2021. 8. 6.

Gradient Descent

Minimize Cost

우리의 목표는 cost(error의 합)을 최소화하는 것이다.

더 정확히는 cost가 최소가 되는 W와 b를 찾는 것이다.

 

이를 위해 gradient descent 방법을 이용한다.

 

Gradient Descent

Gradient가 최소가 되는 방향으로 이동하며 optimal을 찾는 방법이다.

즉, 경사를 따라 내려가면서 cost가 최솟값일 때의 W를 찾는 방법이다.

 

Cost function $J(w, b)$를 최소화하는 $w$와 $b$를 찾는 것이 training의 목표이다.

이를 위해 임의의 지점에서 gradient가 감소하는 방향으로 이동함으로써 목표지점 $(w, b)$ 로 이동할 수 있다.

 

이상적인 상황에서 목표지점(optimal)에서의 gradient는 0이 되어 더이상 update 되지 않고 멈추게 된다.

 

gradient descent

 

방법

미분을 이용하여 값을 update하며 optimal value를 찾는다.

최소 지점에 도착하면 기울기가 0에 가까워지기 때문에 값이 update 되지 않고 수렴하게 된다.

 

 

증명

$W = \frac{1}{2m} \Sigma_{i=1}^{m}(W(x_i)-y_i)^2$

$W := W - \alpha \frac{\partial}{\partial W} ( \frac {1}{2m} \Sigma_{i=1}^{m} (W(x_i) - y_i)^2)$

$W := W - \alpha \frac{1}{m} \Sigma_{i=1}^{m} (W(x_i) - y_i)x_i$

 

Learning Rate

Learning rate는 update하는 가중치이다.

적절한 $\alpha$ 값을 찾는 것도 하나의 문제가 된다.

 

보통 학습 초기에는 크게 지정하여 여기저기 움직이면서 볼 수 있게 하고, 어느정도 중요 지점 근처에 오면 fine tuning을 통해 미세하게 update 되게 한다.

 

$w$가 살짝 이동하였을 때 $J$가 어떻게 바뀌는지를 통해 $\frac{dJ(w, b)}{dw}$를 볼 수 있다.

마찬가지로 $b$가 살짝 이동하였을 때 $J$가 어떻게 바뀌는지를 통해 $\frac{dJ(w, b)}{db}$를 볼 수 있다.

 

Convex Function

그래프에서 초기값에서 시작해서 기울기를 따라서 내려가면서 최소값을 찾게 된다.

 

그런데 local minimum이 여러 개 있는 그래프의 경우, 해당하는 local minimum이 전체에서 가장 낮은 것인지 확신할 수 없다.

* 그래프로 봤을 때 주변에서 가장 작은 값을 가지는 점은 local minimum 이라 한다.

 

Convex function은 local minimum이 하나만 있는 그래프로 기울기를 따라서 내려가면 무조건 최솟값을 찾을 수 있다.

따라서 적절한 함수를 cost function으로 설정하는 것이 중요하다.

 

local minima (출처 : 위키백과)

 

'Computer Science > AL, ML' 카테고리의 다른 글

Logistic Regression  (0) 2022.04.07
Computation Graph (Forward/Backward Propagation)  (0) 2022.04.06
Loss Function, Cost Function  (0) 2021.08.06
Matrix Notation  (0) 2021.08.05
Neural Network의 배경  (0) 2021.08.05

댓글