더북(TheBook)

배치 경사 하강법(Batch Gradient Descent, BGD)은 전체 데이터셋에 대한 오류를 구한 후 기울기를 한 번만 계산하여 모델의 파라미터를 업데이트하는 방법입니다. 즉, 전체 훈련 데이터셋(total training dataset)에 대해 가중치를 편미분하는 방법입니다.

배치 경사 하강법은 다음 수식을 사용합니다.

배치 경사 하강법은 한 스텝에 모든 훈련 데이터셋을 사용하므로 학습이 오래 걸리는 단점이 있습니다. 배치 경사 하강법의 학습이 오래 걸리는 단점을 개선한 방법이 확률적 경사 하강법입니다.

확률적 경사 하강법(Stochastic Gradient Descent, SGD)은 임의로 선택한 데이터에 대해 기울기를 계산하는 방법으로 적은 데이터를 사용하므로 빠른 계산이 가능합니다. 다음 오른쪽 그림과 같이 파라미터 변경 폭이 불안정하고, 때로는 배치 경사 하강법보다 정확도가 낮을 수 있지만 속도가 빠르다는 장점이 있습니다.

텐서플로 2에서는 다음과 같이 구현할 수 있습니다.

model.fit(X_train, y_train, batch_size=1) ------ 임의로 선택한 데이터의 기울기를 계산하므로 batch_size=1이 됩니다.

▲ 그림 4-20 배치 경사 하강법과 확률적 경사 하강법

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.