Does every layer of a Neural Network require weight initialization or just the first? Does the first layer feed into the next layer and initialize itself? My intuition is that every layer needs its own initialization but I'm finding it hard to see that said explicitly. Thanks!
Yes, every layer that contains weights needs to be initialised.
Every weight is just a number (usually a decimal, floating point number). It has to be initialised with some value so that the algorithm (e.g. backpropagation) has some values to work with.
Any learned parameters need to be initialised, as they will be adapted during training. This means you can inialised e.g. the parameters of momentum, and it is changed over time.
There are "layers" that don't need initialisation. I mean layers that perform some operations, but don't have dynamic weights; weights that are altered during training.
An example would be a standard dropout layer (with no learned parameters). This is called a layer, but doesn't require initialisation as it doesn't have any weights that are changed during training.
The weights of every single layer need to be initialized. I think you are confusing between the input and the weights of the network.
During the forward pass, the input passes thru the first layer, gets transformed by the layer's weights (usually convolved or multiplied by them), and then the output of the layer is passed as input to the next layer, where again it is transformed by its weights (and so on and on). So before the initial first forward pass, all weights must be initialized.