public function update(array $gradient)
{
if (!$this->means) {
$this->means = array_fill(0, count($gradient), 0.0);
$this->variances = array_fill(0, count($gradient), 0.0);
}
foreach ($gradient as $i => $slope) {
$this->means[$i] = $this->meanBeta * $this->means[$i] + (1.0 - $this->meanBeta) * $slope;
$this->variances[$i] = $this->varianceBeta * $this->variances[$i] + (1.0 - $this->varianceBeta) * pow($slope, 2);
}
$this->iteration++;
$this->gradient = $gradient;
}