경사 하강법
IT 위키
경사 하강법(Gradient Descent)은 머신러닝 및 딥러닝에서 손실 함수의 값을 최소화하기 위해 매개변수를 반복적으로 갱신하는 최적화 기법이다.
개요[편집 | 원본 편집]
경사 하강법은 손실 함수의 기울기, 즉 그래디언트(gradient)를 계산하여, 그 반대 방향으로 파라미터를 이동시킴으로써 손실 값을 점차 줄여 나가는 방식이다. 함수의 기울기가 0에 가까워질수록 최솟값에 수렴하게 된다. 이 방식은 선형 회귀, 로지스틱 회귀, 신경망 등 다양한 모델에서 널리 사용된다.
작동 원리[편집 | 원본 편집]
경사 하강법은 다음과 같은 과정을 반복한다.
- 현재 매개변수에서 손실 함수의 기울기를 계산한다.
- 기울기의 반대 방향으로 일정 비율만큼 파라미터를 이동시킨다.
- 이 과정을 원하는 수의 반복(epoch)만큼 수행한다.
여기서 이동하는 비율을 학습률(learning rate)이라고 하며, 이 값이 너무 크면 발산하고 너무 작으면 수렴 속도가 느려질 수 있다.
종류[편집 | 원본 편집]
경사 하강법은 데이터를 어떤 단위로 사용하는지에 따라 다음과 같이 나뉜다.
- 전체 배치 경사 하강법: 전체 훈련 데이터를 한 번에 사용하여 기울기를 계산한다.
- 확률적 경사 하강법(SGD): 훈련 샘플을 하나씩 사용해 기울기를 계산한다.
- 미니배치 경사 하강법: 일정한 수의 샘플(미니배치)을 사용하여 기울기를 계산한다.
특징 및 한계[편집 | 원본 편집]
- 단순하고 구현이 쉬우며, 대부분의 신경망 학습 알고리즘에서 기본이 되는 방식이다.
- 손실 함수가 볼록(convex)한 경우에는 전역 최솟값으로 수렴이 보장된다.
- 하지만 비볼록 함수에서는 지역 최솟값이나 안장점에 수렴할 수 있으며, 최적의 결과를 보장하지 않는다.
- 하이퍼파라미터인 학습률 설정에 민감하다.
같이 보기[편집 | 원본 편집]
참고 문헌[편집 | 원본 편집]
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, 《Deep Learning》, MIT Press
- Sebastian Raschka, 《Python Machine Learning》, Packt Publishing