void MLP::modifyLearningRate(realnumber &learningRate, bool adaptativeLearningRate, realnumber &oldMQE, realnumber &newMQE) { if (adaptativeLearningRate) { if (newMQE > (1+0.03/m_input.cols()) * oldMQE) { restoreWeights(); learningRate = min(max(learningRate - 0.3, realnumber(0.01)), learningRate*0.7); } else { oldMQE = newMQE; learningRate += 0.001; } } else oldMQE = newMQE; }
void OrdinalTree<T, M>::rebalanceAfterSpliceOut(Node* k, int delta) { restoreWeights(k, -1); Super::rebalanceAfterSpliceOut(k, delta); }