
174
1
부
머신러닝
그림
4-10
확률적 경사 하강법의 첫 20개 스텝
샘플을 무작위로 선택하기 때문에 어떤 샘플은 한 에포크에서 여러 번 선택될 수 있고 어떤 샘
플은 전혀 선택되지 못할 수도 있습니다. 알고리즘이 에포크마다 모든 샘플을 사용하게 하려면
훈련 세트를 섞은 후 (입력 특성과 레이블을 동일하게 섞어야 합니다 ) 차례대로 하나씩 선택하
고 다음 에포크에서 다시 섞는 식의 방법을 사용할 수 있습니다.
17
그러나 이렇게 하면 보통 더
늦게 수렴됩니다.
CAUTION_
확률적 경사 하강법을 사용할 때 훈련 샘플이
IID
independent
and
identically
distributed
를 만족해야 평
균적으로 파라미터가 전역 최적점을 향해 진행한다고 보장할 수 있습니다. 이렇게 만드는 간단한 방법은 훈
련하는 동안 샘플을 섞는 것입니다(예를 들어, 각 샘플을 랜덤하게 선택하거나 에포크를 시작할 때 훈련 세트
를 섞습니다). 만약 레이블 순서대로 정렬된 샘플처럼 샘플을 섞지 않은 채로 사용하면 확률적 경사 하강법이
먼저 한 레이블에 최적화하고 그다음 두 번째 레이블을 최적화하는 식으로 진행됩니다. 결국 이 모델은 최적
점에 가깝게 도달하지 못할 것입니다.
사이킷런에서
SGD
방식으로 선형 회귀를 사용하려면 기본값으로 제곱 오차 비용 함수를 최적
화하는
SGDRegressor ...