backPropagateLastLayerError method

void backPropagateLastLayerError(
  1. Layer<N, E, T, S> layer,
  2. int layerIndex,
  3. T expected
)
inherited

Implementation

void backPropagateLastLayerError(
  Layer<N, E, T, S> layer,
  int layerIndex,
  T expected,
) {
  var activationFunction = layer.activationFunction;

  var neurons = layer.neurons;

  var gradientsDelta = _layersGradientsDeltas[layerIndex]; // layer.deltas;

  for (var i = neurons.valuesEntriesLength - 1; i >= 0; --i) {
    var neuronsEntry = neurons.getEntry(i);
    var expectedEntry = expected.getEntry(i);
    var error = expected.entryOperationSubtract(expectedEntry, neuronsEntry);

    _outputErrors.setEntry(i, error);

    var derivative = activationFunction.derivativeEntryWithFlatSpot(
      neuronsEntry,
    );
    var gradientDelta = expected.entryOperationMultiply(error, derivative);

    gradientsDelta.setEntry(i, gradientDelta);
  }
}