4
$\begingroup$

I have been doing machine learning for a while, but bits and pieces come together even after some time of practicing.

In neural networks, you adjust the weights by doing one pass (forward pass), and then computing the partial derivatives for the weights (backward pass) after each training example - and subtracting those partial derivatives from the initial weights.

in turn, the calculation of the new weights is mathematically complex (you need to compute the partial derivative of the weights, for which you compute the error at every layer of the neural net - but the input layer).

Is that not by definition an online algorithm, where cost and new weights are calculated after each training example?

Thanks!

$\endgroup$
1
$\begingroup$

You can train after each example, or after each epoch. This is the difference between stochastic gradient descent, and batch gradient descent. See pg 84 of Sebastian Raschka's Python Machine Learning book for more.

|improve this answer|||||
$\endgroup$
  • $\begingroup$ thanks a lot Russell. Very helpful response - will definitely check the book. $\endgroup$ – Alejandro Simkievich Jan 9 '16 at 16:50
3
$\begingroup$

There are three training modes for neural networks

  • stochastic gradient descent: Adjust the weights after every single training example
  • batch training: Adjust the weights after going through all data (an epoch)
  • mini-batch training: Adjust the weights after going through a mini-batch. This is usually 128 training examples.

Most of the time, mini-batch training seems to be used.

So the answer is:

No, the neural network learning algorithm is not online algorithm.

|improve this answer|||||
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.