-
Notifications
You must be signed in to change notification settings - Fork 1
UndocumentedDetails
Although TMVA manual is nice in general, it does not address some important details, which should therefore be deduced from the source code. In this page I summarise some findings relevant to neural networks.
This is the recommended implementation of neural networks in TMVA.
The learning rate (set by option LearningRate, defaults to 0.02) controls the step size in the gradient descent algorithm. As the training proceeds, it is decreased using the decay rate (set by option DecayRate, defaults to 0.01). The following transformation is applied at every epoch:
learningRate *= (1. - decayRate)
except for the last 5% of epochs, when the decrease in the learning rate is accelerated:
learningRate *= (1. - sqrt(decayRate))
I am not aware of any motivation for such choice of the learning rate schedule. Sequential learning is a problem of stochastic optimisation and can be addressed by the Robbins-Monro algorithm, whose requirements impose a slower degrease in the learning rate. Instead, a typical choice of the schedule is to use at epoch t a learning rate of
learningRate0 / (1 + t / T)
where learningRate0 and T are parameters of the algorithm. Such schedule matches the requirements of the Robbins-Monro algorithm.
The default learning and decay rates are optimised for sequential learning and will lead to a poor performance with batch learning.