https://www.coursera.org/learn/machine-learning/lecture/CipHf/learning-with-large-datasets

Learning With Large Datasets

image

위그림의 좌하단의 그림은 high variance 된 알고리즘이며 이런 경우 더 많은 데이터가 알고리즘 개선에 도움이 된다. 오른쪽의 경우는 high biase 된 경우이며 이런경우는 더이상의 데이터가 도움이 되지 않는다. 

자세한 내용은 week 6 강의를 참조한다. 


https://www.coursera.org/learn/machine-learning/lecture/DoRHJ/stochastic-gradient-descent

Stochastic Gradient Descent

image

이제까지 사용했던 일반 gradient descent ( batch gradient descent )에 대한 그림이다. 데이터의 양이 엄청 많아지면 ( m의 크기가 커짐) 작은 gradient descent step하나 지나가는데에 엄청난수의 데이터 총합을 매번 구해야 한다. 이렇게 되면 성능에 문제가 생긴다. 그래서 임의의 데이터 하나당 한번의 gradient descent step을 밟는 stochastic gradient descent 방법을 택한다. stochastic gradient descent는 꼭 linear regression아니더라도 다양한 알고리즘과 함께 사용 가능하다. 

image
image

빨간색은 일반 gradient descent 궤적이다.

보라색은 stochastic gradient descent 궤적이다. 결과적으로 local minimum에 도착할수도 있고 아닐수도 있지만 근처에 도착하는 것은 맞다. for loop를 감싸는 repeat은 보통 1-10정도 수행한다. 다만 엄청난 수의 데이터가 있는 경우 1번에도 좋은 결과는 만들어낸다.


https://www.coursera.org/learn/machine-learning/lecture/9zJUs/mini-batch-gradient-descent

Mini-Batch Gradient Descent

image

일반 batch gradient는 모든 데이터값에대한 cost의 총합을 구하고 이에 대한 partial derivative 를 통해 기울기를 구하고 이에 learning rate을 구해서 새로운 theta를 구하는 과정을 거친다. 데이터의 수가 많아지면 성능에 문제가 생기므로 무작위 데이터 하나를 가져와 그에 대한 cost를 이용하는 stocastic gradient descent 방법을 이용할수 있다. 또 몇몇 데이터를 이용하는 mini batch gradient descent를 이용할수도 있다. 좋은 선형대수 라이브러리의 경우 vectorization을 이용한 작업에 병렬연산을 제공하므로 하나의 데이터를 이용하는 것이나 여러데이터를 이용하는 것이나 큰차이가 없다. 

image


https://www.coursera.org/learn/machine-learning/lecture/fKi0M/stochastic-gradient-descent-convergence

Stochastic Gradient Descent Convergence

image

Stochastic Gradient descent 가 잘 작동하는지 ( cost 가 점점 감소하는지) 확인 하는 작업을 설명한다. 일정 수의 데이터 cost결과를 중간 중간 확인하는 방식으로 한다. 이 강의에서는 1000개의 데이터를 사용하고 있다. 

image

위위 그림에서 말하던 확인(plot) 결과를 보여주는 그래프이다. 좌상단의 그림의 경우 파란 그래프는 빨간 그래프보다 큰 알파값을 사용했으며 점차 cost가 줄어드는 것을 알수 있다. 

우상단의 경우 빨간 그래프는 파란 그래프보다 큰 숫자의 데이터를 이용 cost를 측정한 경우이다. 그래프가 부드럽게 바뀐것을 볼수 있으며 cost는 점차 줄고 있다.

좌하단 파란 그래프의 경우 cost가 전반적으로 줄고 있는지 알수 없다. 이런 경우 보다 많은 수의 데이터를 이용 보라색, 빨간색 그래프처럼 결과가 나오게 수정한다. 이렇게 바꾸면 미세하게 줄거나 늘고 있는 것을 볼수 있다. 

우하단의 그래프는 cost가 점차 상승하고 있으며 이런 경우 작은 값의 알파를 사용해 본다.

image

점차 minimum에 접근하다가 minimum근처를 배회하는 것을 위그림에서 볼수있다. 이를 보완하기 위한 작업을 아래그림에서 설명한다. 

image

두 상수를 이용해서 점차 learning rate값을 작게 만들어서 조금더 minimum에 다가가고 그곳에 머물게 하는 방법이다.


https://www.coursera.org/learn/machine-learning/lecture/ABO2q/online-learning

online learning

image

저장된 data 이용하기 보다 끊임없이 제공되는 데이터를 이용할수 있는 경우 사용하는 방법으로 데이터는 한번 사용하고 버린다. 그래서 그림 하단 알고리즘을 보면 x i , y i 가 아닌 x y를 사용한다. 이런 경우 사용자의 preferece 변화에 신속하게 대응할수 있다.

image

위와 같은 영역에서 사용될수 있다. 순간적으로 발생하는 데이터에 반응하는 경우에 online learning 를 사용할수 있다.


https://www.coursera.org/learn/machine-learning/lecture/10sqI/map-reduce-and-data-parallelism

Map Reduce and Data Parallelism

대용량의 데이터를 처리해야 하는 경우 이를 여러부분으로 나누어 처리하는 방법을 이용할수 있다. map- reduce, data parallelism을 이용할수 있다.

theta j에서 j는 feature이다. n은 feature의 총갯수.

위 그림은 여러 컴퓨터를 이용한 병렬 처리를 보여주고 있다.

한 컴퓨터내의 여러 코어를 이용한 병렬 처리를 보여주고 있다.

때로는 라이브러이에서 기본적으로 병렬처리를 제공하는 경우도 있다. 선형대수 처리를 하는 경우 병렬처리를 제공하는 경우도 있다.

https://www.coursera.org/learn/machine-learning/lecture/CipHf/learning-with-large-datasets

Learning With Large Datasets

image

위그림의 좌하단의 그림은 high variance 된 알고리즘이며 이런 경우 더 많은 데이터가 알고리즘 개선에 도움이 된다. 오른쪽의 경우는 high biase 된 경우이며 이런경우는 더이상의 데이터가 도움이 되지 않는다. 

자세한 내용은 week 6 강의를 참조한다. 


https://www.coursera.org/learn/machine-learning/lecture/DoRHJ/stochastic-gradient-descent

Stochastic Gradient Descent

image

이제까지 사용했던 일반 gradient descent ( batch gradient descent )에 대한 그림이다. 데이터의 양이 엄청 많아지면 ( m의 크기가 커짐) 작은 gradient descent step하나 지나가는데에 엄청난수의 데이터 총합을 매번 구해야 한다. 이렇게 되면 성능에 문제가 생긴다. 그래서 임의의 데이터 하나당 한번의 gradient descent step을 밟는 stochastic gradient descent 방법을 택한다. stochastic gradient descent는 꼭 linear regression아니더라도 다양한 알고리즘과 함께 사용 가능하다. 

image
image

빨간색은 일반 gradient descent 궤적이다.

보라색은 stochastic gradient descent 궤적이다. 결과적으로 local minimum에 도착할수도 있고 아닐수도 있지만 근처에 도착하는 것은 맞다. for loop를 감싸는 repeat은 보통 1-10정도 수행한다. 다만 엄청난 수의 데이터가 있는 경우 1번에도 좋은 결과는 만들어낸다.


https://www.coursera.org/learn/machine-learning/lecture/9zJUs/mini-batch-gradient-descent

Mini-Batch Gradient Descent

image

일반 batch gradient는 모든 데이터값에대한 cost의 총합을 구하고 이에 대한 partial derivative 를 통해 기울기를 구하고 이에 learning rate을 구해서 새로운 theta를 구하는 과정을 거친다. 데이터의 수가 많아지면 성능에 문제가 생기므로 무작위 데이터 하나를 가져와 그에 대한 cost를 이용하는 stocastic gradient descent 방법을 이용할수 있다. 또 몇몇 데이터를 이용하는 mini batch gradient descent를 이용할수도 있다. 좋은 선형대수 라이브러리의 경우 vectorization을 이용한 작업에 병렬연산을 제공하므로 하나의 데이터를 이용하는 것이나 여러데이터를 이용하는 것이나 큰차이가 없다. 

image


https://www.coursera.org/learn/machine-learning/lecture/fKi0M/stochastic-gradient-descent-convergence

Stochastic Gradient Descent Convergence

image

Stochastic Gradient descent 가 잘 작동하는지 ( cost 가 점점 감소하는지) 확인 하는 작업을 설명한다. 일정 수의 데이터 cost결과를 중간 중간 확인하는 방식으로 한다. 이 강의에서는 1000개의 데이터를 사용하고 있다. 

image

위위 그림에서 말하던 확인(plot) 결과를 보여주는 그래프이다. 좌상단의 그림의 경우 파란 그래프는 빨간 그래프보다 큰 알파값을 사용했으며 점차 cost가 줄어드는 것을 알수 있다. 

우상단의 경우 빨간 그래프는 파란 그래프보다 큰 숫자의 데이터를 이용 cost를 측정한 경우이다. 그래프가 부드럽게 바뀐것을 볼수 있으며 cost는 점차 줄고 있다.

좌하단 파란 그래프의 경우 cost가 전반적으로 줄고 있는지 알수 없다. 이런 경우 보다 많은 수의 데이터를 이용 보라색, 빨간색 그래프처럼 결과가 나오게 수정한다. 이렇게 바꾸면 미세하게 줄거나 늘고 있는 것을 볼수 있다. 

우하단의 그래프는 cost가 점차 상승하고 있으며 이런 경우 작은 값의 알파를 사용해 본다.

image

점차 minimum에 접근하다가 minimum근처를 배회하는 것을 위그림에서 볼수있다. 이를 보완하기 위한 작업을 아래그림에서 설명한다. 

image

두 상수를 이용해서 점차 learning rate값을 작게 만들어서 조금더 minimum에 다가가고 그곳에 머물게 하는 방법이다.


https://www.coursera.org/learn/machine-learning/lecture/ABO2q/online-learning

online learning

image

저장된 data 이용하기 보다 끊임없이 제공되는 데이터를 이용할수 있는 경우 사용하는 방법으로 데이터는 한번 사용하고 버린다. 그래서 그림 하단 알고리즘을 보면 x i , y i 가 아닌 x y를 사용한다. 이런 경우 사용자의 preferece 변화에 신속하게 대응할수 있다.

image

위와 같은 영역에서 사용될수 있다. 순간적으로 발생하는 데이터에 반응하는 경우에 online learning 를 사용할수 있다.


https://www.coursera.org/learn/machine-learning/lecture/10sqI/map-reduce-and-data-parallelism

Map Reduce and Data Parallelism

대용량의 데이터를 처리해야 하는 경우 이를 여러부분으로 나누어 처리하는 방법을 이용할수 있다. map- reduce, data parallelism을 이용할수 있다.

theta j에서 j는 feature이다. n은 feature의 총갯수.

위 그림은 여러 컴퓨터를 이용한 병렬 처리를 보여주고 있다.

한 컴퓨터내의 여러 코어를 이용한 병렬 처리를 보여주고 있다.

때로는 라이브러이에서 기본적으로 병렬처리를 제공하는 경우도 있다. 선형대수 처리를 하는 경우 병렬처리를 제공하는 경우도 있다.