SGD(Stochastic Gradient Descent)

우리는 $\theta$를 최적화해야하니, $\theta$에 대한 미분을 구해서 Gradient Descent해야하는 것이 일반적이다. (x와 y는 입력값과 예측결과값)

⇒ $\nabla_\theta J(\theta) = \frac{1}{m} \sum_{i=1}^{m}\nabla_{\theta}L(x^{(i)},y^{(i)},\theta)$

⇒ 각각의 데이터에 대한 그래디언트 로스를 더한 값

위 계산식에 대한 연산량은 $O(m)$이 되겠다.

만약 데이터 개수가 너무 크면 연산량이 그만큼 크게 된다.

이를 개선하기 위해 MiniBatch라는 개념을 사용한다.

$B = ({x^{(1)},...x^{(m')}})$ ⇒ 트레이닝 데이터셋에서 uniform 하게 m개의 데이터셋에서 데이터 m’개 만큼을 끌어온다.

⇒ 첫 미니배치만큼 Gradient Descent 반영하고 그 다음 미니배치만큼 Gradient Descent를 반영,… 쭉쭉쭉 끝까지 미니배치만큼 Gradient Descent를 반영한다. ($\theta_{i+1}= \theta_i-eg$)


The curse of Dimensionality

우리에게 주어진 Input의 Dimension이 많아지면 많아질 수록 추정하기 힘들어진다.