Table of Contents

Class ExponentialScheduler<T>

Namespace
AiDotNet.CurriculumLearning.Schedulers
Assembly
AiDotNet.dll

Curriculum scheduler with exponential (slow start) progression.

public class ExponentialScheduler<T> : CurriculumSchedulerBase<T>, ICurriculumScheduler<T>

Type Parameters

T

The numeric type used for calculations.

Inheritance
ExponentialScheduler<T>
Implements
Inherited Members

Remarks

For Beginners: This scheduler starts slowly with easy samples and accelerates the addition of harder samples later in training. It follows an exponential curve that reaches the maximum fraction at the end.

Progression Pattern:

t = epoch / total_epochs
fraction = min + (1 - e^(-rate * t)) / (1 - e^(-rate)) * (max - min)

Growth Rate Parameter:

  • Low rate (1-2): Gradual progression
  • Medium rate (3-5): Balanced curve
  • High rate (>5): Rapid early growth, slow late growth

Best For:

  • Tasks where early easy samples are crucial
  • When the model needs time on simpler patterns first
  • Datasets with many hard samples that require solid foundations

Constructors

ExponentialScheduler(int, double, T?, T?)

Initializes a new instance of the ExponentialScheduler<T> class.

public ExponentialScheduler(int totalEpochs, double growthRate = 3, T? minFraction = default, T? maxFraction = default)

Parameters

totalEpochs int

Total number of training epochs.

growthRate double

Exponential growth rate (default 3.0).

minFraction T

Initial data fraction (default 0.1).

maxFraction T

Final data fraction (default 1.0).

Properties

Name

Gets the name of this scheduler.

public override string Name { get; }

Property Value

string

Methods

GetDataFraction()

Gets the current data fraction using exponential curve.

public override T GetDataFraction()

Returns

T

GetStatistics()

Gets scheduler-specific statistics.

public override Dictionary<string, object> GetStatistics()

Returns

Dictionary<string, object>