encog
Version:
Encog is a NodeJs ES6 framework based on the Encog Machine Learning Framework by Jeff Heaton, plus some the of basic data manipulation helpers.
27 lines (24 loc) • 743 B
JavaScript
const UpdateRule = require('./updateRule');
const ArrayUtils = require(PATHS.PREPROCESSING + 'array');
class Momentum extends UpdateRule {
/**
* @inheritDoc
*/
init(theTraining) {
this.lastDelta = [];
this.training = theTraining;
this.lastDelta = ArrayUtils.newFloatArray(theTraining.getFlat().getWeights().length);
}
/**
* @inheritDoc
*/
update(gradients, weights) {
let delta;
for (let i = 0; i < weights.length; i++) {
delta = (this.training.getLearningRate() * gradients[i]) + (this.training.getMomentum() * this.lastDelta[i]);
weights[i] += delta;
this.lastDelta[i] = delta;
}
}
}
module.exports = Momentum;