Answers.Body: <p>One issue is that a normalized set of initial weights may not stay normalized as learning progresses; so given that we adjust weights proportionately according to their relative values and also when working on a subset of the learning data the model may become convinced that one subset of features is important and others not, this can result in the weights becoming unbalanced again. In the learning curve we may see this as a plateau, where the learning becomes convinced that a few features are much more important than they really are and fails to find new features that can contribute even more because tiny proportionate changes did not move them far, or quickly, enough into a noticeable range.</p>
  
  <p>So when we re-sample from the database to get the next batch we need to be fully open to the possibility that the previous batch learning was too heavily biased towards its own favoured set. In effect we are trading accuracy for openness to new feature combinations, and at the same time assisting generalization.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-12-11T11:00:57.020Z
Answers.LastActivityDate: 2019-12-11T11:00:57.020Z
Answers.UserDisplayName: Colin Beckingham
Body: <p>In most current models, the normalization layer is applied after each convolution layer. Many models use the block <span class="math-container">$\text{convolution} \rightarrow \text{batch normalization} \rightarrow \text{ReLU}$</span> repeatedly. But why do we need multiple <a href="https://arxiv.org/abs/1502.03167" rel="nofollow noreferrer">batch normalization</a> layers? If we have a convolution layer that receives a normalized input, shouldn't it spit out a normalized output? Isn't it enough to place normalization layers only at the beginning of the model?</p>
  
Tags: <deep-learning><convolutional-neural-networks><batch-normalization>
Title: Why do current models use multiple normalization layers?
UserDisplayName: Kasia
ThreadText: # Why do current models use multiple normalization layers?
  
  (Asked by: username_0 on 2019-12-11)
  
  In most current models, the normalization layer is applied after each convolution layer. Many models use the block $\text{convolution} \rightarrow \text{batch normalization} \rightarrow \text{ReLU}$ repeatedly. But why do we need multiple [batch normalization](https://arxiv.org/abs/1502.03167) layers? If we have a convolution layer that receives a normalized input, shouldn't it spit out a normalized output? Isn't it enough to place normalization layers only at the beginning of the model?
  
  **Tags:** deep-learning, convolutional-neural-networks, batch-normalization
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2019-12-11. Score: 2
  
  One issue is that a normalized set of initial weights may not stay normalized as learning progresses; so given that we adjust weights proportionately according to their relative values and also when working on a subset of the learning data the model may become convinced that one subset of features is important and others not, this can result in the weights becoming unbalanced again. In the learning curve we may see this as a plateau, where the learning becomes convinced that a few features are much more important than they really are and fails to find new features that can contribute even more because tiny proportionate changes did not move them far, or quickly, enough into a noticeable range.
  
  So when we re-sample from the database to get the next batch we need to be fully open to the possibility that the previous batch learning was too heavily biased towards its own favoured set. In effect we are trading accuracy for openness to new feature combinations, and at the same time assisting generalization.
  
  
  ---
  
  