コード例 #1
0
        public void Train(MatrixData inputs, MatrixData targets)
        {
            var inputSignals  = inputs;
            var targetSignals = targets;

            var hiddenOutputs = Sigmoid(_weightInputHidden * inputs);
            var finalOutputs  = Sigmoid(_weightHiddenOutput * hiddenOutputs);

            var outputErrors = targets - finalOutputs;

            var hiddenErrors = _weightHiddenOutput.GetTranspose() * outputErrors;

            _weightHiddenOutput += outputErrors * _learningRate * finalOutputs * (finalOutputs - 1.0) * hiddenOutputs.GetTranspose();
            _weightInputHidden  += hiddenErrors * _learningRate * hiddenOutputs * (hiddenOutputs - 1.0) * inputs.GetTranspose();
        }