Beispiel #1
0
        public ISupervisedOperations SupervisedOperations(EActivationFunction act,
                                                          EErrorFunction err,
                                                          EOptimizerFunction opt)
        {
            IActivationFunction activationFunction = null;
            IErrorFunction      errorFunction      = null;
            IOptimizerFunction  optimizerFunction  = null;

            switch (act)
            {
            case EActivationFunction.Sigmoid:
                activationFunction = new SigmoidFunction();
                break;

            case EActivationFunction.LeakRelu:
                activationFunction = new LeakReluFunction();
                break;
            }

            switch (err)
            {
            case EErrorFunction.Dense:
                errorFunction = new DenseErrorFunction();
                break;

            case EErrorFunction.Desired:
                errorFunction = new DesiredErrorFunction();
                break;
            }

            switch (opt)
            {
            case EOptimizerFunction.SGD:
                optimizerFunction = new SGDOptimizerFunction();
                break;
            }

            return(new AnnBasicOperations(activationFunction,
                                          errorFunction,
                                          optimizerFunction));
        }
        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);
        }