카테고리 338 [Optimization] Exponentially Weighted Average Exponentially Weighted Average 평균을 취할 때 최근의 것의 비중을 크게하고 과거로 갈수록 비중을 작게하면서 평균을 취하는 방법이다. $v_t = \beta v_{t-1} + (1-\beta)\theta _t$ * $\beta$ : hyperparameter Exponentially weighted average를 통해 noise를 줄이면서 smoothing 할 수 있다. Hyperparameter $/beta$ beta가 너무 작으면 : noise를 줄이지 못함 beta가 너무 크면 : delay가 너무 심함 여기서 사용된 $\beta$는 hyper parameter로 batch normalization에 사용된 $\beta$와 전혀 다른 것이다. $\frac{1}{1-\beta.. 2022. 4. 21. Optimization Optimization 배경 Machine learning은 매우 empirical process(iterative process)이다. 때문에 모델을 여러번 train 시켜보아야 한다. 딥러닝에서는 big data를 사용해서 어느정도 문제를 해결할 수 있다. 때문에 learning speed를 최대한 줄이는 것이 여러번 훈련시키거나 빅데이터를 사용하는데 있어서 필수적이다. 장점 Neural network의 learning speed를 더 빠르게 한다. 종류 주로 exponentially weighted average 을 기반으로 사용한다. gradient descent with momentum RMSProp adam 2022. 4. 21. [Batch Normalization] Covariate Shift Problem Covariate Shift Problem Training set과 dev/test set의 distribution이 비슷하지 않을 경우 covariate shift problem이 발생한다. 아래처럼 검은색 고양이 사진으로 training한 후 그렇지 않은 고양이 사진으로 test를 하면 정확도가 낮아진다. Solution : Batch Normalization Batch normalization을 이용해서 covariate shift problem을 어느정도 해결할 수 있다. Batch normalization을 사용하지 않았을 때 $W^{[3]}$와 $b^{[3]}$은 $a^{[2]}$에 대해 맞춰서 학습을 한다. 그런데 문제가 바뀌지 않았음에도 다음 sample에 대해서는 다른 값이 들어오게 된다.. 2022. 4. 21. Batch Normalization Batch Normalization Input을 normalization을 하는 것이 아닌 중간의 것을 normalization 한다. Normalization Target : a vs. z a(비선형변환의 결과)를 normalization하지 않고 z(선형변환의 결과)를 normalization 한다. 방법 Mini-batch의 z에 대해 normalization을 수행한다. Mini-batch에 m 개의 sample이 존재한다고 하자.(mini-batch size = m) 평균과 분산을 구해서 그것을 이용해서 normalization을 한다. 아래를 이용해서 $z^{[l](i)}$ 대신에 $\widetilde{z}^{[l](i)}$을 사용한다. Parameter $\beta$, $\gamma$ $z_.. 2022. 4. 21. Batch, Mini-batch Mini-batch 딥러닝에서 가장 중요한 알고리즘 중 하나이다. Batch vs. Mini-batch Batch는 1번 iteration(1-epoch) 할 때 사용되는 example들의 set을 말한다. Vectorization은 train example의 계산을 좀 더 효율적으로 만들어준다. 그런데 train example의 수가 너무 많아지면 단순한 batch로는 vectorization으로도 힘들어진다. 계산 시간, resource 등이 많이 필요해지기 때문이다. Mini-batch는 train sample을 disjoint하게 subset으로 나눠서 작은 사이즈로 줄인다. 이를 통해 memory와 속도 측면에서 성능을 향상시킬 수 있다. 즉, sample 기준에서 1차원으로 나열되어있는 것을 .. 2022. 4. 21. 이전 1 ··· 20 21 22 23 24 25 26 ··· 68 다음