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,000∑400,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배로 향상된 것일 뿐이다.
'AI > 머신러닝 기초' 카테고리의 다른 글
(머신러닝) 22 - Online Learning (0) | 2020.05.15 |
---|---|
(머신러닝) 21 - Stochastic Gradient Descent (0) | 2020.05.15 |
(머신러닝) 20 - Recommender Systems (0) | 2020.05.15 |
(머신러닝) 19 - Anomaly Detection (0) | 2020.05.15 |
(머신러닝) 18 - Dimensionality Reduction - PCA (0) | 2020.05.15 |