/// <summary>
        ///   Initializes a new instance of the <see cref="HiddenGradientDescentLearning&lt;T&gt;"/> class.
        /// </summary>
        /// 
        /// <param name="model">The model to be trained.</param>
        /// 
        public HiddenGradientDescentLearning(HiddenConditionalRandomField<T> model)
        {
            Model = model;

            convergence = new RelativeConvergence();

            calculator = new ForwardBackwardGradient<T>(model);
            gradient = new double[Model.Function.Weights.Length];
        }
        /// <summary>
        ///   Initializes a new instance of the <see cref="HiddenResilientGradientLearning{T}"/> class.
        /// </summary>
        /// 
        /// <param name="model">Model to teach.</param>
        /// 
        public HiddenResilientGradientLearning(HiddenConditionalRandomField<T> model)
        {
            Model = model;

            calculator = new ForwardBackwardGradient<T>(model);
            convergence = new RelativeConvergence(iterations: 100, tolerance: 0, checks: 3);

            int parameters = Model.Function.Weights.Length;
            gradient = new double[parameters];
            previousGradient = new double[parameters];
            weightsUpdates = new double[parameters];

            // Initialize steps
            Reset(initialStep);
        }
예제 #3
0
        /// <summary>
        ///   Constructs a new <see cref="MonteCarloIntegration">Monte Carlo integration method</see>.
        /// </summary>
        ///
        /// <param name="parameters">The number of parameters expected by the integrand.</param>
        ///
        public MonteCarloIntegration(int parameters)
        {
            if (parameters <= 0)
            {
                throw new ArgumentOutOfRangeException("parameters",
                                                      "Number of parameters must be higher than zero.");
            }

            this.NumberOfParameters = parameters;
            this.Range = new DoubleRange[parameters];

            for (int i = 0; i < Range.Length; i++)
            {
                Range[i].Max = 1;
            }

            this.convergence = new RelativeConvergence();
        }
        /// <summary>
        ///   Initializes a new instance of the <see cref="HiddenGradientDescentLearning&lt;T&gt;"/> class.
        /// </summary>
        ///

        public HiddenGradientDescentLearning()
        {
            convergence = new RelativeConvergence();
        }
        /// <summary>
        ///   Constructs a new <see cref="MonteCarloIntegration">Monte Carlo integration method</see>.
        /// </summary>
        /// 
        /// <param name="parameters">The number of parameters expected by the integrand.</param>
        /// 
        public MonteCarloIntegration(int parameters)
        {
            if (parameters <= 0)
            {
                throw new ArgumentOutOfRangeException("parameters",
                    "Number of parameters must be higher than zero.");
            }

            this.NumberOfParameters = parameters;
            this.Range = new DoubleRange[parameters];

            for (int i = 0; i < Range.Length; i++)
                Range[i].Max = 1;

            this.convergence = new RelativeConvergence();
        }
 /// <summary>
 ///   Initializes a new instance of the <see cref="HiddenResilientGradientLearning{T}"/> class.
 /// </summary>
 /// 
 public HiddenResilientGradientLearning()
 {
     convergence = new RelativeConvergence(iterations: 100, tolerance: 0, checks: 3);
 }