Hello COCOBALL!

[DL] 경사 하강법(Gradient descent) 본문

Deep Learning

[DL] 경사 하강법(Gradient descent)

coco_ball 2024. 6. 25. 21:01

경사 하강법

최적화 알고리즘 중 하나로, 함수의 값이 낮아지는 방향으로 독립변수들의 값을 변형시키면서 함수의 최소값을 갖는 독립변수의 값을 탐색하기 위해 사용된다. 주로 기계 학습 및 딥러닝 모델의 학습 과정에서 비용 함수를 최소화하는 데 사용된다. 경사 하강법의 기본 아이디어는 함수의 기울기를 활용하여 함수 값이 가장 작은 지점으로 이동하는 것이다.

 

최소값을 찾기 위해 손실 함수를 미분하여 미분계수가 0인 지점을 찾는 방법을 사용할 수 있지만, 일반적으로 사용되는 함수들은 간단한 함수가 아니라 대부분 복잡하고 비선형적인 패턴을 가지는 함수이기 때문에 미분을 통해 최소값을 찾기가 어려운 경우가 많아 손실 함수의 최소값을 찾을 때 경사 하강법을 주로 사용한다.

https://daebaq27.tistory.com/35
https://hackernoon.com/life-is-gradient-descent-880c60ac1be8

특정 위치에서의 기울기가 양수인 경우 x를 음의 방향으로 옮기고, 반대의 경우에는 x를 양의 방향으로 옮겨 함수의 최소값을 찾는 것이 가능하다.

다만, 기울기만을 통해 특정 위치에서 손실 함수의 최소값이 존재하는지 보장할 수 없다. 그러나 특정 위치에서 옮겨야 하는 방향으로 이동해야 손실 함수의 값이 줄어드는 것은 확정적이기 때문에 최소값을 찾기 위해 기울기 정보를 활용하고 나아갈 방향을 찾아야 한다.

 

문제점

1. Step size

  • Step size를 크게 설정할 경우에는 한 번에 이동하는 크기가 커지기 때문에 최소값에 빠르게 수렴할 수 있다는 장점이 있다. 그러나 크기를 과도하게 크게 설정할 경우, 최소값에 수렴하지 못하고 다른 곳으로 발산하는 현상이 발생할 수 있다.
  • Step size를 너무 작게 설정할 경우에는 발산하지 않는 대신 최소값에 수렴하는 시간이 오래걸릴 수 있다.

2. Local minima

실제로 찾고자 하는 것은 전역 최소값이지만, 경사 하강법은 알고리즘이 시작되는 위치가 랜덤이기 때문에 특정 경우에는 지역 최소값에 빠져 탈출하지 못하고 해당 위치로 수렴할 수 있는 가능성이 존재한다.