Exemplo n.º 1
0
    private void FeedForward(int layerIndex)
    {
        var layer = Layers[layerIndex];
        var input = Layers[layerIndex - 1].Select(neuron => neuron.Output).ToArray();

        foreach (var neuron in layer)
        {
            var weightedSum = neuron.InputSynapses
                              .Select((synapse, synapseIndex) => synapse.Weight * input[synapseIndex])
                              .Sum();
            neuron.Output = NeuralNetworkHelper.Sigmoid(weightedSum + neuron.Bias);
        }
        if (layerIndex < Layers.Count - 1)
        {
            FeedForward(layerIndex + 1);
        }
    }