@Override public double squaredLoss() { DoubleMatrix squaredDiff = pow(reconstruct(input).sub(input), 2); double loss = squaredDiff.columnSums().sum() / input.rows; if (this.useRegularization) { loss += 0.5 * l2 * MatrixFunctions.pow(W, 2).sum(); } return loss; }