activationFunction = $activationFunction ?: new Sigmoid(); } public function addSynapse(Synapse $synapse): void { $this->synapses[] = $synapse; } /** * @return Synapse[] */ public function getSynapses() { return $this->synapses; } public function getOutput(): float { if ($this->output === 0.0) { $sum = 0.0; foreach ($this->synapses as $synapse) { $sum += $synapse->getOutput(); } $this->output = $this->activationFunction->compute($sum); } return $this->output; } public function reset(): void { $this->output = 0.0; } }