답변:
간단한 간단한 설명 :
그래디언트 디센트 (GD)와 확률 적 그래디언트 디센트 (SGD) 모두에서 오류 함수를 최소화하기 위해 반복적으로 매개 변수 집합을 업데이트합니다.
GD에서 특정 반복의 매개 변수에 대한 단일 업데이트를 수행하려면 훈련 세트의 모든 샘플을 실행해야합니다. 반면 SGD에서는 훈련 세트의 훈련 샘플 중 하나 또는 서브 세트 만 사용합니다. 특정 반복에서 매개 변수에 대한 업데이트를 수행합니다. SUBSET을 사용하는 경우이를 Minibatch Stochastic gradient Descent라고합니다.
따라서 훈련 샘플 수가 많고 실제로는 매우 큰 경우, 파라미터 값을 업데이트 할 때 모든 반복에서 전체 훈련 세트를 실행하기 때문에 기울기 하강을 사용하는 데 너무 오래 걸릴 수 있습니다. 반면에 하나의 학습 샘플 만 사용하므로 첫 번째 샘플에서 즉시 개선되기 시작하므로 SGD를 사용하는 것이 더 빠릅니다.
SGD는 종종 GD에 비해 훨씬 빠르게 수렴되지만 오류 기능은 GD의 경우만큼 최소화되지 않습니다. 대부분의 경우 매개 변수 값에 대해 SGD에서 얻는 근사값은 최적의 값에 도달하고 계속 진동하므로 충분합니다.
실제 사례와 함께 이에 대한 예가 필요한 경우 Andrew NG의 메모를 확인하여 두 사례 모두에 관련된 단계를 명확하게 보여줍니다. cs229 노트
출처 : Quora Thread
확률론 (stochastic) 이라는 단어를 포함 한다는 것은 훈련 데이터로부터 의 무작위 샘플이 각 실행에서 선택되어 기울기 하강 의 틀 내에서 최적화 동안 매개 변수를 업데이트 함을 의미 합니다 .
이렇게하면 계산 된 오류뿐만 아니라 빠른 반복에서 가중치가 업데이트 될뿐만 아니라 (작은 샘플을 한 번에 처리하기 때문에) 최적의 방향으로 빠르게 이동하는 데 도움이됩니다. 이 여기에 대한 답변에서보기를 제공 장점을 훈련에 대한 확률 minibatches를 사용하는 이유에 대한 자세한 내용은.
아마도 단점 중 하나는 최적 경로 (항상 동일한 최적이라고 가정)가 훨씬 시끄럽다는 점입니다. 따라서 기울기 감소의 각 반복에서 오류가 어떻게 감소하는지 보여주는 멋진 부드러운 손실 곡선 대신 다음과 같은 것을 볼 수 있습니다.
우리는 시간이 지남에 따라 손실이 감소하는 것을 분명히 볼 수 있지만, 에포크에서 에포크로 (트레이닝 배치에서 트레이닝 배치로)에 큰 변화가 있으므로 곡선에 노이즈가 있습니다.
이는 단순히 각 반복에서 전체 데이터 세트에서 확률 적으로 / 무작위로 선택된 하위 집합에 대한 평균 오류를 계산하기 때문입니다. 일부 샘플은 오류가 많고 일부 오류는 낮습니다. 따라서 평균적으로 기울기 하강의 한 반복에 무작위로 사용한 샘플에 따라 평균이 달라질 수 있습니다.
Gradient Descent 또는 Batch Gradient Descent에서는 에포크 당 전체 교육 데이터를 사용하는 반면 Stochastic Gradient Descent에서는 에포크 당 단일 교육 예제 만 사용하고 Mini-batch Gradient Descent는이 두 극단 사이에 있습니다. 에포크 당 교육 데이터의 미니 배치 (작은 부분), 미니 배치의 크기를 선택하기위한 썸 규칙은 32, 64, 128 등 2의 거듭 제곱입니다.
자세한 내용은 cs231n 강의 노트