1. Optimization Algorithms (Quiz) minibatch, layer, example에 대한 notation 각각 { }, [ ], ( ) 기호를 사용한다. vectorization Batch gradient descent는 한꺼번에 모든 데이터를 묶어 학습하겠다는 것이다. 따라서 memory의 문제만 없다면 vectorization을 가장 많이 수행하는 학습법일 것이다. 그러나 batch gradient descent는 progress를 진행하기 전에 전체 training set을 처리해야 한다는 문제점이 있다. 한편 stochastic gradient descent는 여러 example을 vectorization 할 수 없다는 단점이 있다. iteration - cost(J) g..
optimization
1. Learning Rate Decay Learning Rate Decay 일반적인 mini-batch를 이용하면 파란색과 같은 그래프가 그려진다. 즉, 어느 정도의 noise를 포함한 형태이면서 절대 global minimum에 convergence(수렴)하지 못하고 주변을 배회(wandering)하게 된다. 이를 해결하기 위해 제시된 것이 Learning Rate Decay로 학습이 진행됨에 따라 learning rate을 감소시키는 것을 말한다. 그러면 위 그림에서 초록색과 같은 그래프가 그려진다. 즉, 초반에는 큰 폭으로 학습이 진행되고 이후에는 그 폭을 줄이면서 global minimum에 convergence(수렴)하게 된다. Leraning rate decay epoch는 주어진 데이터를 ..
1. Gradient Descent with Momentum Gradient descent example 빨간 점을 global minimum이라고 본다면 일반적인 Gradient Descent를 수행했을 때는 파란색 그래프와 같은 양상이 나타날 것이다. 우리는 위 아래로 흔들리는 폭을 줄이면서도 보다 큰 보폭으로 global minimum에 접근할 수 있도록 하는 방법을 떠올려볼 수 있다. 대표적인 방식 중 하나가 Momentum이다. 이는 gradient descent를 수행하는 매 step이 독립적인 것이 아니라 현재 step에 이전 step이 영향을 주는 것으로 받아들이는 방식이라고 볼 수 있다. 즉, exponentially weighted averages를 구하는 방식처럼 현재항과 이전항에 가..
1. Mini-batch Gradient Descent Match vs. mini-batch gradient descent 많은 양의 데이터를 처리해야 하는 딥러닝은 연산 시간을 줄이는 여러 기법들이 필요하다. 그 중 하나가 여러 데이터를 일부씩 묶어 계산하는 방식인 mini-batch gradient descent이다. 만약 처리해야 하는 데이터의 개수가 5,000,000개라면 어떻게 될까? 이 많은 양의 데이터를 한꺼번에 forward하고 backward 하는 것은 엄청난 computing power를 필요로 할 것이고, 이것이 뒷받침된다고 하더라도 썩 좋은 시간적 효율을 보이진 못할 것이다. 따라서 우리는 이를 일정 개수(위 예에서는 1,000개)씩 묵어서 연산을 시도하기로 한다. 이때 묶인 각 b..
4. Numerical Approximation of Gradients Checking your derivative computation 미분의 정의를 통해 접선의 기울기를 계산하는 과정을 이해해보자. x = θ일 때 아주 작은 값 ε = 0.01을 더하고 빼서 함수값을 구해본다. 본래 기울기는 'y의 변화량 / x의 변화량' 이므로 {f(θ+ε) - f(θ-ε)} / 2ε 이 기울기가 된다. 이는 함수 f(θ) = θ^3을 미분하여 구한 g(θ) = 3θ^2와 근사한 결과다. 실제 값을 대입해보면 미분값이 3.0001로 기존 도함수 g를 통해 구한 3과 0.0001 차이가 나는 것을 알 수 있다. 계산은 이와 같은 방식으로 이뤄진다. 이때의 error는 O(ε^2)로 표현된다. 이를 기존 미분 정의와 ..
1. Normalizing Inputs Normalizing training sets x = [x1, x2] feature로 구성된 training set의 분포를 살펴보자. 우선 모든 x를 x의 mean(평균)만큼 빼준다(subtract). 그러면 두 번째 그림처럼 x1 feature 축에 대해 분포가 정렬된다. 다음으로는 x의 분산을 구해 x 전체를 분산으로 나눠준다. 이때 이미 평균을 뺀 값이므로 x 제곱의 평균을 구하는 것이 바로 분산이 된다. (분산을 구하는 기존 식은 'x-m' 제곱의 평균을 구하는 것이기 때문) 그러면 마지막 그림처럼 분산을 반영한 분포로 변형된다. 이러한 변형을 train set에 대해 적용했다면 test set에도 동일한 평균과 분산값으로 변형을 해줘야 한다. 즉, 두 s..