Stochastic gradient descent

・위 두식을 보면 single gradient descent와 full-batch gradient descent의 차이를 알 수 있는데, 

single gradient descent(왼쪽)은 트레이닝 값(x)을 하나 넣고 최저값을 찾아간다.

full-batch gradient descent(오른쪽)은 트레이닝값을 한번에 모두 이용하여 최저값을 찾아간다.

 

 

・gradient descent : 한번에 1개의 트레이닝 데이터만을 사용해 w값을 업데이트

・full-batch gradient descent : 전체의 트레이닝 데이트터를 한번에 이용해 w값을 업데이트

・앞에서 배웠던 내용은 모두 Full-batch gradient descent 였다.

**배치(batch)**

모델 학습의 반복 1회, 즉 경사 업데이트 1회에 사용되는 트레이닝 데이터의 집합입니다.

The set of examples used in one iteration (that is, one gradient update) of model training.

・n은 feature의 개수, m은 트레이닝 데이터의 개수를 의미하므로 WtXi는 모든 데이터 셋이다.

・모든 데이터에 관하여 한번에 wi의 값을 업데이트 하기 때문에 업데이트 횟수가 감소된다.

・local optmizion이 되는 단점이 존재한다. 예를 들어 3차 함수와 같은 경우에 최저값의 변곡점이 아닌 그보다 큰 변곡점의 값(local optmizion)을 반환할 수 도 있다.

・feature가 10개, 트레이닝 데이터가 3억개일 때, 총 30억개의 데이터 한번에 이용해서 업데이트를 시행하기 때문에 메모리가 부족한 문제 발생한다.

・X : 모든 트레이닝 데이터

・트레이닝 데이터를 랜덤으로 셔플

・트레이닝 데이터에서 하나하나를 빼내 feature w값을 업데이트 시킴 (gredient descent)

\*full-batch gradient descent에서는 모든 트레이닝 데이터를 한번에 이용해 w값을 업데이트

・총 데이터가 10000건 있다고 하면, full-batch는 10000

・batch-size : 한 번에 학습되는 데이터의 개수. batch-size를 100으로 가정

full-batch를 모두 실행하기 위해선 배치를 100번 돌려야함.

full-batch가 한번 돌면 1epoch이라함.

・hyper-parameter : 사람이 직접 선정해야하는 값. 러닝레이트 같은거

 

 

・하나의 트레이닝 데이터를 사용 : gradient descent

트레이닝 데이터 전체를 한번에 사용 : full-batch gradient descent

트레이닝 데이터 전체를 몇 개의 덩어리로 나누어서 사용 : mini-batch stochastic gradient descent

+ Recent posts