Answers.Body: <p>Your understanding seems to be correct (although your explanation isn't completely precise), apart from &quot;adding it to your original gradient vector&quot;. You add the gradient vector to the parameters/weights vector.</p>
  <p>(Note that back-propagation is just the algorithm that computes the gradient vector. The update of the parameters with the gradient of the loss function is the gradient descent/ascent step, even though it's true that some people, at least in the context of deep learning, refer to the combination of gradient descent and the computation of the gradients as <em>the back-propagation algorithm</em>, but this is just a terminology issue, which you should not dwell too much on.)</p>
  <blockquote>
  <p>Also, how can this be done in iterations over training examples?</p>
  </blockquote>
  <p>If I understand this question correctly, you want to know how we would update the parameters when there's more than one training example. In that case, you compute a gradient vector for each training example. Then the average of the gradient vectors (which is also a vector) is the actual gradient vector that you use to update the parameters. See <a href="https://ai.stackexchange.com/a/20380/2444">this answer</a> for more info.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-07-10T19:58:42.060Z
Answers.LastActivityDate: 2020-07-10T20:18:18.937Z
Answers.LastEditDate: 2020-07-10T20:18:18.937Z
Answers.UserDisplayName: nbro
Body: <p>I am trying to learn backpropagation and this is what I know so far.</p>
  <p>To update the weights of the neural network you have to figure out the partial derivative of each of the parameters on the loss function using the chain rule. List all of these partial derivatives in a column vector and you have your gradient vector of your current parameter's on the loss function. Then by taking the negative of the gradient vector to descend the loss function and multiplying it by the learning rate (step size) and adding it to your original gradient vector, you have your new weights.</p>
  <p>Is my understanding correct? Also, how can this be done in iterations over training examples?</p>
  
Tags: <neural-networks><machine-learning><deep-learning><backpropagation><gradient-descent>
Title: Is my understanding of back-propogation correct?
UserDisplayName: TheGubbler
ThreadText: # Is my understanding of back-propogation correct?
  
  (Asked by: username_0 on 2020-07-10)
  
  I am trying to learn backpropagation and this is what I know so far.
  
  To update the weights of the neural network you have to figure out the partial derivative of each of the parameters on the loss function using the chain rule. List all of these partial derivatives in a column vector and you have your gradient vector of your current parameter's on the loss function. Then by taking the negative of the gradient vector to descend the loss function and multiplying it by the learning rate (step size) and adding it to your original gradient vector, you have your new weights.
  
  Is my understanding correct? Also, how can this be done in iterations over training examples?
  
  **Tags:** neural-networks, machine-learning, deep-learning, backpropagation, gradient-descent
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2020-07-10. Score: 2
  
  Your understanding seems to be correct (although your explanation isn't completely precise), apart from "adding it to your original gradient vector". You add the gradient vector to the parameters/weights vector.
  
  (Note that back-propagation is just the algorithm that computes the gradient vector. The update of the parameters with the gradient of the loss function is the gradient descent/ascent step, even though it's true that some people, at least in the context of deep learning, refer to the combination of gradient descent and the computation of the gradients as *the back-propagation algorithm*, but this is just a terminology issue, which you should not dwell too much on.)
  
  > Also, how can this be done in iterations over training examples?
  
  If I understand this question correctly, you want to know how we would update the parameters when there's more than one training example. In that case, you compute a gradient vector for each training example. Then the average of the gradient vectors (which is also a vector) is the actual gradient vector that you use to update the parameters. See [this answer](https://ai.stackexchange.com/a/20380/2444) for more info.
  
  
  ---
  
  