Processing math: 100%

map reduce 는 large scale dataset 을 다루는 경우 사용하는 방법들 중 하나다.

large scale dataset을 다루는 방법들에는 stochastic gradient descent나 mini-batch gradient descent가 있었다.

이 알고리즘들은 parameter를 update 하기위해 한 대의 컴퓨터만 사용했다.

이번에 소개할 Map Reduce는 여러대의 컴퓨터가 데이터를 나누어 가져가서 학습을 시켜 다시 master computer로 결과를 보내주어 합치는 알고리즘이다.

 

1. Map Reduce


 

Batch Gradient Descent

forj=1:nθj=θjα400,000,000400,000,000i=1(hθ(x(i))y(i))x(i)j

 

Map-Reduce

Map Reduce에서는 여러대의 컴퓨터가 학습 데이터를 등분하여 학습 parameter를 계산한다.

아래는 총 4대의 컴퓨터가 4억개의 데이터를 각각 1억개씩 가져가서 학습을 시키는 경우이다.

temp(1)j=100,000,000i=1(hθ(x(i))y(i))x(i)j

temp(2)j=200,000,000i=100,000,001(hθ(x(i))y(i))x(i)j

temp(3)j=300,000,000i=200,000,001(hθ(x(i))y(i))x(i)j

temp(4)j=400,000,000i=300,000,001(hθ(x(i))y(i))x(i)j

위와 같이 계산된 값들이 master server에 전송이 되면 최종적으로 parameter는 다음과 같이 update 된다.

θj:=θjα400,000,000(temp(1)j+temp(2)j+temp(3)j+temp(4)j)

이 작업은 완전히 Batch Gradient Descent와 동일하다. 단지 여러대의 컴퓨터가 데이터를 나누어 계산을 하기때문에 계산 속도 성능이 4배로 향상된 것일 뿐이다.

+ Recent posts