머신러닝&딥러닝/모두를 위한 딥러닝

[머신러닝 이론] Gradient descent(경사하강법)

Chaerry._o 2023. 9. 6. 16:02
반응형

이 글은 모두를 위한 딥러닝 시즌1을 기반으로 작성한 글입니다.

 

 

[머신러닝 이론] Linear Regression(선형 회귀)

이 글은 모두의 딥러닝 시즌1을 기반으로 작성한 글입니다. [머신러닝 이론] Machine Learning 개념 이 글은 모두의 딥러닝 시즌1을 기반으로 작성한 글입니다. 머신러닝은 사람이 하나하나 프로그래

chaerrylog.tistory.com

이전 글에서 선형회귀와 Loss function에 대해서 설명했다.

그 내용을 토대로 이번 글에서는 경사하강법에 대해서 설명하겠다.


Gradient Descent

Optimizer(최적화)는 Loss function을 어떤 방식으로 최소화할 지 결정하고 학습하는 방법이다. 가장 기본적인 옵티마이저 알고리즘인 Gradient descent(GD, 경사하강법)에 대해서 알아보겠다.

 

https://www.analyticsvidhya.com/blog/2020/10/how-does-the-gradient-descent-algorithm-work-in-machine-learning/

 

W값에 따른 Loss(=Cost) 값을 구해 그래프로 나타냈더니 위에 그림처럼 2차 함수의 모양이 나왔다.

따라서 Gradient descent 초기 W를 임의로 정한 후, 경사가 있는 쪽으로 점점 내려가면서 Loss 값이 최소가 되는 Weight를 구하는 방법이다.

이 방법은 어디에서 시작하든 Loss 값이 최소가 되는 weight와 bias의 값은 똑같다는 특징이 있다.

 

Gradient descent 수식

경사하강법을 수식으로 나타내면 Gradient는 기울기를 의미하므로 아래처럼 나타낼 수 있다.

$$ Gradient = \frac{\partial loss}{\partial \omega} $$

여기서 loss 값은 $$ loss = (\hat{y}-y)^{2} = (x\omega -y)^{2} $$ 이므로 weight에 대해서 미분하면

$$ \therefore 2x(x\omega-y) $$

위와 같은 식이 나온다.

 

 

따라서 최적화하고자 하는 함수 f(x)를 아래 수식과 같이 쓸 수 있다.

$$ x_{i+1} =  x_{i}-\alpha \frac{df( x_{i})}{dx} $$

 

Gradient descent 한계

https://blog.paperspace.com/intro-to-optimization-in-deep-learning-gradient-descent/

 

위에서 Gradient descent는 어디에서 시작하든 도착하는 지점이 똑같아야 한다고 했다. 하지만 오른쪽 그림과 같은 함수는 시작점에 따라 weight와 bias의 값이 변할 수 있다. 이러한 함수에서는 Gradient descent 알고리즘이 잘 동작하지 못한다.

 

따라서 왼쪽 그림과 같은 그래프가 그려지는 loss function에서만 Gradient descent 알고리즘을 사용할 수 있다. 이러한 함수를 Convex function(볼록 함수)이라고 한다.

반응형