AutorÃa | Ultima modificación | Ver Log |
<?phpdeclare(strict_types=1);namespace Phpml\NeuralNetwork\Node\Neuron;use Phpml\NeuralNetwork\Node;class Synapse{/*** @var float*/protected $weight;/*** @var Node*/protected $node;/*** @param float|null $weight*/public function __construct(Node $node, ?float $weight = null){$this->node = $node;$this->weight = $weight ?? $this->generateRandomWeight();}public function getOutput(): float{return $this->weight * $this->node->getOutput();}public function changeWeight(float $delta): void{$this->weight += $delta;}public function getWeight(): float{return $this->weight;}public function getNode(): Node{return $this->node;}protected function generateRandomWeight(): float{return (1 / random_int(5, 25) * random_int(0, 1)) > 0 ? -1 : 1;}}