29. Normalizing Activations in a Network

2023. 9. 12. 12:36Google ML Bootcamp/2. Improving Deep Neural Networks

우리는 이전에 m개의 훈련예제를 벡터화를 통해 학습속도를 높일 수 있었다.

또, 이보다 mini batch를 통해 n개만 벡터화를 진행하고, gradient descent를 우선 수행하는 것이 더 빠르다고 알 수 있었는데 m개의 훈련예제를 벡터화했을 때 1/m으로 noramlize 했던것을 기억해보자.

- 벡터화(1/m의 noramlize)를 통해 Z를 더 빨리 얻을 수 있었다. 

- 같은 이유로 다음 layer에게 전달되는 Z[l] 값에 대해 벡터화(mini-batch) 및 normalize(1/n)을 통해 더 빨리 전달할 수는 없을까?

 

따라서 Z[l]에서 평균, 분산을 구한 후 normalize를 수행한다.

- 이는 Z[l](norm)이 평균값 0, 분산이 1을 가지게끔하게 만드는데 모든 hidden unit이 해당 분포를 가지는건 어색하다.

- 따라서 a*Z[l] + b (a는 감마, b는 베타)를 통해 Z[l]을 update한다. (이때 a,b는 parameter로 학습 가능하다.)

 

**중요 : input(X or Z)를 정규화함으로써 학습 속도를 높일 수 있다.**