카테고리 없음

경사하강법(gradient descent) 정리

wonone11 2025. 1. 27. 11:16

경사하강법이란 간단히 말하면 함수의 기울기를 이용하여 함수의 최솟값을 찾는 방법이다.

경사하강법은 반복적으로 수행하며 정해진 반복 횟수를 다 했거나 더 이상 값을 최소화하지 못한다고 판정되면 반복을 멈춘다. 

경사하강법 예시

자료 출처

 

위 예시와 같이 경사하강법은 정해진 수식을 반복하여 함수의 최솟값을 찾는다.

 

 

기본적인 경사하강법의 수식

 

이 수식 전체를 설명하자면 최솟값을 찾고 싶은 함수 f를 x에 대해 미분하여 현재 x 좌표의 기울기를 구한 후 lr 곱하고 구한 값을 현 x 좌표에 빼주는 식이다.

 

이 말이 이상하게 들릴 수도 있지만 아래의 설명을 듣고 다시 와서 스스로 이 식이 어떻게 작동하는지 이해했으면 좋겠다.

 

수식 분해 및 해석

 

위 설명에서 기울기와 lr를 곱한 값을 뺀다.

왜 빼냐 하면

기울기 값을 보면 알 수 있다 우리는 경사면을 타고 내려가듯이 함수값을 최소화 해야한다 하지만 우리가 구한 값을 빼지않고 더한다면 경사면을 타고 올라가 듯이 수식이 만들어진다.

 

 

x 아래의 i는 현재 반복의 x 좌표라는 뜻이고 i+1은 다음 반복의 x 좌표라는 뜻이다.

 

 

수식에서 lrlearning rate(step size)를 뜻하며 lr의 크기에 따라 한 번의 경사하강법에서 얼마나 이동할지를 결정하게 된다.

 

 

이 수식은 최솟값을 찾고 싶은 함수 f에 x를 (편)미분하여 x_i 좌표의 기울기 값을 찾아 내는 수식이다.

 

local minima (지역 최소값) 문제

local minima 문제는 우리가 찾고 싶어하는 global minima가 아닌 다른 하나의 골짜기(?)에 빠지는 것을 의미한다.

위 문제를 해결하기 위해 다양한 경사하강법 기법이 등장했다.

 

다음 글은 다양한 경사하강법의 기법을 설명하도록 하겠다.

 

참고자료 : https://angeloyeo.github.io/2020/08/16/gradient_descent.html, https://hackernoon.com/life-is-gradient-descent-880c60ac1be8