1. Initialize params for the model 2. Compute the cost function 3. Compute the gradients 4. Update params, using a learning rate 5. Repeat steps 2-4