Example #1
0
 public SupervisedNeuron Supervised(int size,
                                    int connections,
                                    float learning,
                                    float momentum,
                                    ISupervisedOperations operations)
 {
     return(new SupervisedNeuron(size, connections, learning, momentum, operations));
 }
Example #2
0
 public SupervisedNeuron(int nodeSize,
                         int connectionSize,
                         float learningRate,
                         float momentum,
                         ISupervisedOperations operations)
 {
     _operations = operations;
     _layer      = new ActivationLayer(nodeSize, connectionSize)
     {
         LearningRate = learningRate,
         Momentum     = momentum
     };
     InitializeArrays(nodeSize, connectionSize);
     _operations.SetLayer(_layer);
 }
        private INeuron BuildSupervised()
        {
            ISupervisedOperations opr = null;
            IActivationFunction   act = null;
            IOptimizerFunction    opt = null;

            switch (activation)
            {
            case ActivationFunctionEnum.ArcTANH:
                act = new ArcTANHFunction();
                break;

            case ActivationFunctionEnum.TANH:
                act = new TANHFunction();
                break;

            case ActivationFunctionEnum.Binary:
                act = new BinaryStepFunction();
                break;

            case ActivationFunctionEnum.LeakRelu:
                act = new LeakReluFunction();
                break;

            case ActivationFunctionEnum.Relu:
                act = new ReluFunction();
                break;

            case ActivationFunctionEnum.Sigmoid:
                act = new SigmoidFunction();
                break;

            case ActivationFunctionEnum.Sinusoid:
                act = new SinusoidFunction();
                break;

            case ActivationFunctionEnum.Nothing:
                act = null;
                break;

            default:
                throw new InvalidOperationException();
            }

            switch (optmizator)
            {
            case EnumOptimizerFunction.Adagrad:
                opt = new AdagradOptimizerFunction();
                break;

            case EnumOptimizerFunction.Adadelta:
                opt = new AdadeltaOptimizerFunction();
                break;

            case EnumOptimizerFunction.Adam:
                opt = new AdamOptimizerFunction();
                break;

            case EnumOptimizerFunction.Nadam:
                opt = new NadamOptimizerFunction();
                break;

            case EnumOptimizerFunction.RmsProp:
                opt = new RMSOptimizerFunction();
                break;

            case EnumOptimizerFunction.SGD:
                opt = new SGDOptimizerFunction();
                break;

            case EnumOptimizerFunction.Momentum:
                opt = new MomentumOptmizerFunction();
                break;

            default:
                throw new InvalidOperationException();
            }

            switch (operation)
            {
            case ANNOperationsEnum.Activator:
                opr = new ANNActivatorOperations();
                break;

            case ANNOperationsEnum.SoftMax:
                opr = new ANNSoftmaxOperations();
                break;

            default:
                throw new InvalidOperationException();
            }

            opr.SetActivation(act);
            opr.SetOptimizer(opt);

            var neuron = new SupervisedNeuron(size, connections, lr, mo, opr);

            neuron.FullSynapsis(size, connections, std);

            return(neuron);
        }