경사하강법 및 확률적 경사하강법(SGD)은 함수 최소화에 사용되는 최적화 알고리즘으로, 일반적으로 모델의 오류 최소화와 관련됩니다.
둘 사이의 주요 차이점은 다음과 같습니다.
경사하강법(GD)
-
표준 경사하강법에서 알고리즘은 전체 훈련 데이터세트를 사용하여 비용 함수의 경사를 계산합니다.
-
전체 데이터 세트의 음의 기울기에 비례하는 단계를 수행하여 모델 매개변수를 업데이트합니다.
-
이 방법은 (볼록성 및 적절한 학습 속도와 같은 특정 조건이 주어지면) 최소 수렴을 보장하지만 대규모 데이터 세트의 경우 계산 비용이 많이 들 수 있습니다.
확률적 경사하강법(SGD)
-
확률적 경사하강법에서 알고리즘은 각 개별 훈련 예시에 대한 비용 함수의 경사를 사용하여 모델 매개변수를 업데이트합니다.
-
단일 또는 소규모 훈련 예제 배치를 기반으로 자주 업데이트하므로 대규모 데이터세트의 경사하강법보다 훨씬 빠릅니다.
-
그러나 시끄러운 업데이트로 인해 SGD는 더 많은 변동을 가지며 반드시 절대 최소값에 수렴하지는 않습니다. 그것은 최소값에 가까운 영역으로 수렴하여 그 주위를 진동합니다.
둘 중 하나를 사용해야 하는 경우:
-
경사하강법(GD): 데이터세트가 비교적 작으며 메모리에 들어갈 수 있는 경우에 적합합니다. 비용 함수가 매끄럽고 잘 작동한다면 GD는 효율적으로 최소값으로 수렴할 수 있습니다.
-
확률적 경사하강법(SGD): 전체 데이터세트에 대한 경사 계산이 계산 비용이 많이 드는 대형 데이터세트를 처리할 때 바람직합니다. 업데이트 시 SGD의 노이즈가 얕은 로컬 최소값을 피하는 데 도움이 될 수 있으므로 비용 함수에 로컬 최소값이 많은 시나리오에서도 유용합니다. 또한 SGD는 방대한 데이터세트와 고차원 매개변수 공간으로 인해 신경망 훈련에 일반적으로 사용됩니다.
또한 각 업데이트에 대한 데이터 하위 집합을 고려하여 GD와 SGD의 이점을 균형있게 유지하는 미니 배치 경사하강법과 같은 변형이 실제로 자주 사용됩니다. 이러한 알고리즘 간의 선택은 종종 계산 리소스, 데이터 세트 크기 및 특정 문제의 특성에 따라 달라집니다.