void CreateOutputArray(int numOutputs)
        {
            Outputs = new List<Connection>();
            var outputList = Outputs as List<Connection>;

            for (int i=0; i<numOutputs; i++)
            {
                Connection newOutput = new Connection(1);
                outputList.Add(newOutput);
            }
        }
        void CreateInputArray(int numInputs)
        {
            Inputs = new List<Connection>();
            var inputList = Inputs as List<Connection>;

            for (int i=0; i<numInputs; i++)
            {
                Connection newInput = new Connection(1);
                inputList.Add(newInput);
            }
        }
        public void SetUp()
        {
            _testInput1 = new Connection (1, 0.1);
            _testInput2 = new Connection (2, 0.2);
            _testInputs = new List<Connection> { _testInput1, _testInput2 };

            _testOutput = new Connection (0, 1.0);
            _testOutputs = new List<Connection> { _testOutput };

            _sigmoidAlpha = TunableParameterService.Instance.SigmoidAlpha;

            _testNeuron = new MlpNeuron (_testInputs, _testOutputs, FunctionType.Sigmoid);
        }
        void AddConnections()
        {
            for (int i=0; i<Layers.Count-1; i++)
            {
                var layer = Layers[i];
                var nextLayer = Layers[i + 1];

                foreach (var fromNeuron in layer)
                {
                    foreach (var toNeuron in nextLayer)
                    {
                        var connection = new Connection();
                        fromNeuron.Outputs.Add(connection);

                        if (! (toNeuron is BiasNode))
                        {
                            toNeuron.Inputs.Add(connection);
                        }
                    }
                }
            }
        }