When the weights are being updated, the incremental change is scaled down by the learning rate parameter. The choice of a small enough gradient descent step size is similar to any other optimization problem. This should ensure you don't cross the minima by taking too large steps in gradient descent.
I'm assuming your query refers to whether we should be:
- updating the weights of each layer separately and finalisefinalize each layer before proceeding to the previous layer, or,
- update weights concurrently for all layers at the end of a back propagation step step.
The error minimization optimization function used in back-propagation algorithm calculatesuses all the delta with respectweights together to each layer's output vscalculate the "error" value w. ideal outputr.t. training set and based on the derivativeadjusts them all together in one step of the error term assignsiteration. If you were to train one layer at a time then it would increase the delta of each source connection'slearning time in proportion to the current value of the weight. This ensures that even though one roundnumber of back-propagation updates all layers at once, but this is done proportionally w.r.t.of the current weightsnetwork.
See this animation for visualizing how weights change during training. You could run a simulation of both methods and observe how the learning progresses.
The biases do not need to be updated for each test case one by one; the value of the biases are always 1 for every test case, but the weight of the bias input of each layer will have to be determined by back-propagation. You can implement a vectorized back-propagation implementation which takes the entire training set and calculates the total error for the current set of weights for each neuron's input including the bias term. This is done for each iteration till the stopping criteria is reached.