kwan's note

Mini batch gradient descent 본문

ML and AI/Machine learning - Andrew Ng

Mini batch gradient descent

kwan's note 2021. 2. 7. 23:53
반응형

출처: machine learning by andrew ng, stanford cousera lecture

수강일시: 2021.02.07

 

reminder-by-kwan.tistory.com/109

 

Stochastic gradient descent(SGD) -확률적 경사 하강법

출처: machine learning by andrew ng, stanford cousera lecture 수강일시: 2021.02.06 reminder-by-kwan.tistory.com/89?category=962582 gradient descent(경사하강법) 출처: machine learning by andrew ng, s..

reminder-by-kwan.tistory.com

 

이번시간에도 저번시간에 이어 데이터가 매우 많은경우 작업량을 줄이기 위한 방법에 대해 알아보도록 하겠습니다.

이는 일반적인 gradient descent 방법과 stochastic gradient descent 방법의 중간 방법으로도 볼 수 있습니다.

즉 한번의 스텝마다 모든 m에 대해 학습을 하는것이 아닌 작은 부분에 대해서 학습을 진행하고 다음으로 넘어가는 방식입니다. 즉 stochastic 한 방법의 성공확률을 높이기 위한 방법정도로 생각해 볼 수 있습니다.

SGD방법은 원하지 않는 방향으로 진행할 확률이 너무 높기 때문에 b를 2~100개정도로 batch size를 정하고 이에대한 평균 방향으로 step을 정의하는 것 입니다.

 

아래 예시는 b=10 일때의 예시입니다.

 

이로써 SGD와 minibatchGD를 알아보았습니다.

이제 이러한 방법들의 성능을 평가하는 방법에 대해 알아보겠습니다.

실제로 잘 학습되는지 보려면 J를 그려보면 되는데 그냥 그려봐도 되지만 일반적으로는 매 p번마다 그 평균값만큼을 plot 합니다. 이는 batch 의 사이즈가 작으면 J가 커지는경우가 자주 발생하므로 매 점마다 찍으면 성능 혹은 경향성 파악이 어렵기 때문입니다.

너무 움직임이 많으면 p를 더 높여서(ex) 5000정도로)  다시 그려서 경향을 파악하는것도 좋다.

 

SGD 나 미니배치에서는 마지막에 수렴시 진동이 발생하는데 이를 방지하기 위한 방법으로 step의 크기 즉 a의 크기를 조금씩 줄이는 방법도 가능하다.

반응형