Your step's explanations feel redundant, for example, you say "initialize weights and biases: initialize weights and biases to random values" but you don't say how to do that or provide any code examples on how that could be done. Please improve your response to incorporate my updated request.