/// <summary> /// Initializes a new instance of the <see cref="HiddenGradientDescentLearning<T>"/> 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); }
/// <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<T>"/> 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); }