이 글은 모두를 위한 딥러닝 시즌1을 기반으로 작성한 글입니다.
[머신러닝 이론] Linear Regression(선형 회귀)
이 글은 모두의 딥러닝 시즌1을 기반으로 작성한 글입니다. [머신러닝 이론] Machine Learning 개념 이 글은 모두의 딥러닝 시즌1을 기반으로 작성한 글입니다. 머신러닝은 사람이 하나하나 프로그래
chaerrylog.tistory.com
이전 글에서 선형회귀와 Loss function에 대해서 설명했다.
그 내용을 토대로 이번 글에서는 경사하강법에 대해서 설명하겠다.
Gradient Descent
Optimizer(최적화)는 Loss function을 어떤 방식으로 최소화할 지 결정하고 학습하는 방법이다. 가장 기본적인 옵티마이저 알고리즘인 Gradient descent(GD, 경사하강법)에 대해서 알아보겠다.
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 한계
위에서 Gradient descent는 어디에서 시작하든 도착하는 지점이 똑같아야 한다고 했다. 하지만 오른쪽 그림과 같은 함수는 시작점에 따라 weight와 bias의 값이 변할 수 있다. 이러한 함수에서는 Gradient descent 알고리즘이 잘 동작하지 못한다.
따라서 왼쪽 그림과 같은 그래프가 그려지는 loss function에서만 Gradient descent 알고리즘을 사용할 수 있다. 이러한 함수를 Convex function(볼록 함수)이라고 한다.
'머신러닝&딥러닝 > 모두를 위한 딥러닝' 카테고리의 다른 글
[머신러닝 이론] Multiple Linear Regression(다중 선형 회귀) (0) | 2023.09.14 |
---|---|
[머신러닝 실습] Gradient Descent(경사하강법) (0) | 2023.09.07 |
[머신러닝 실습] Linear Regression(선형 회귀) (0) | 2023.09.05 |
[머신러닝 이론] Linear Regression(선형 회귀) (0) | 2023.09.02 |
[머신러닝 이론] Machine Learning 개념 (0) | 2023.08.30 |