해당 포스트에서는 손실 함수(loss function)을 최적화하는 경사하강법들을 비교하여 설명합니다.
INTRO
SGD(Stochastic gradient descent), Batch, mini-Batch는 모두 경사하강법(Gradient Descent) 방식의 일종으로,
아래에서는 먼저 각 방법론을 설명한 후, 세 방법론들을 비교하여 차이를 설명합니다.
경사하강법(Gradient Descent)?
경사 하강법(Gradient Descent)은 기계 학습 및 최적화에서 가장 일반적으로 사용되는 최적화 알고리즘 중 하나입니다. 함수의 기울기(gradient)를 이용하여 함수의 최솟값을 찾는 알고리즘으로, 기울기는 해당 지점에서 함수 값이 가장 빠르게 증가하는 방향을 나타내므로, 함수의 최솟값을 찾으려면 기울기의 반대 방향으로 이동해야 합니다.
경사 하강법은 시작점에서 시작하여, 기울기를 구하고 그것의 반대 방향으로 이동하여 함수의 값을 줄입니다. 이 과정을 반복하면서 함수의 최솟값에 근접한 값을 찾게 되는데, 기울기가 0인 지점에서 수렴하면 함수의 최솟값에 도달한 것으로 간주합니다.
참고
경사 하강법은 주로 선형 회귀, 로지스틱 회귀 및 인공 신경망에서 가중치(weight)를 최적화하는 데 사용됩니다.
SGD? Batch? mini-Batch?
SGD(Stochastic gradient descent)는 일반적으로
반면에 Batch는 SGD와 달리
mini-Batch는 SGD와 Batch의 장점을 조합한 방법으로,
마지막으로, SGD, Batch, mini-Batch 모두 과적합(overfitting)을 방지하기 위해 학습 데이터를 무작위로 섞어서 사용합니다. 이는
마무리
위에서 설명한 SGD(Stochastic gradient descent), Batch, mini-Batch는 각각 장단점이 있습니다. 따라서,
관련 링크
[1] SGD(Stochastic gradient descent)
[2] Gradient Descent
[3] Overfitting