Gradient Descent with Large Datasets
Learning With Large Datasets
$J_{CV}$ 와 $J_{train}$ 이 $m$ 에 따라 변하는 값을 비교하면, $m$ 이 큰 것이 필요한지 여부를 판별할 수 있습니다.
Stochastic Gradient Descent
대용량 데이터를 다룰 때 계산을 빠르게할 방법이 필요합니다. Gradient descent 의 문제는 $m$ 이 매우 클 때 계산이 어려운 점입니다. 모든 트레이닝 데이터에서 파라미터를 업데이트할 때 모든 데이터를 고려하는 것이 아니라, 각각의 데이터 포인트에 대해서 파라미터 업데이트를 합니다.
Mini-Batch Gradient Descent
Stochastic gradient descent 와 batch gradient descent (오리지널 gradient descent) 의 사이의 방식이다. Stochastic gradient descent 에서 한 개의 데이터를 선택하는 것이 아니라, $b$ 개의 mini-batch 를 선택한다. 예를 들어, $b=10, m=1,000$ 를 선택할 수 있다. 이러한 방식을 사용하는 이유는 벡터 형태로 계산을 빠르게 할 수 있기 때문이다.
Stochastic Gradient Descent Convergence
수렴하는지를 확인하는 방법은 cost 를 그래프에 그려보는 것이다. Iteration 숫자가 늘어남에 따라서 감소하면 수렴하는 것으로 볼 수 있다. 하지만, iteration 이 늘어남에 따라 cost 값이 증가하면 값을 늘려야 한다.
Advanced Topics
Online Learning
예를 들어, 웹사이트 같은 곳에서 유저에 대해서 지속적으로 이해하게 되는 것이다. 유저의 새로운 $(x,y)$ 정보가 들어왔을 떄, 파라미터 $\theta$ 를 업데이트한다. 유저가 서치를 했을 때, 해당 쿼리의 제품과 유사한 제품을 보여줄 수 있다. 이 때, CTR (Click-through-rate) 를 $y$ 값으로 생각할 수 있다.
Map Reduce and Data Parallelism
하나의 머신이 아니라 여러 개의 머신에서 계산을 할 수 있는 방법에 대해서 다룹니다. 데이터를 나눕니다. 예를 들어, 첫 번째 100개의 데이터로 $\sum_{i=n}^{n+99} (h_\theta (x^{(i)})) - y^{(i)}) (x^{(i)})$ 를 각각 계산한 후 합칩니다. 일반적으로, 합으로 이루어진 경우에 나눌 수 있습니다.