경사하강법

경사하강법(영어: Gradient descent)은 함수최솟값을 가지도록 하는 매개변수를 찾아내기 위한 알고리즘이다. 산을 내려가기 위해서는 가장 기울기가 가파른 방향으로 계속해서 내려가면 된다는 것이 기본적인 아이디어이다. 대부분의 기계 학습 방법이 이 경사하강법을 이용해 파라미터들을 찾아낸다.

설명[편집 | 원본 편집]

함수의 어떤 지점에서 기울기를 미분을 통해 구한다. 이 기울기에 일정한 비율(learning rate)을 곱해 파라미터에서 빼준 뒤, 그 지점에서 다시 기울기를 구해 빼주는 것을 반복한다.

한계[편집 | 원본 편집]

경사하강법 Local minima.png

경사하강법은 국소적인 최솟값(local minima)을 찾을 수 있지만, 이것이 전역 최솟값(global minimum)이라는 보장은 없다. 어느 지점에서 시작했느냐에 따라 최적화의 결과가 완전히 다를 수 있다는 말이기도 하다. 언덕에서 공을 굴렸는데 맨 아래로 내려가지 않고 중간에 파인 부분에서 멈춰버리는 상황을 생각해보면 된다. 이 문제를 해결하기 위해 다양한 방법들이 등장했는데, 모멘텀(momentum)이라는 개념을 도입하여, 각 반복시 이전에 이동하던 방향으로 어느 정도 계속 이동하게 만드는 방법이 있다. 이를 통해 작은 언덕에 걸리지 않고 전역 최적해를 찾아 갈 수 있도록 한다.