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
TThe 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
totalEpochsintTotal number of training epochs.
growthRatedoubleExponential growth rate (default 3.0).
minFractionTInitial data fraction (default 0.1).
maxFractionTFinal data fraction (default 1.0).
Properties
Name
Gets the name of this scheduler.
public override string Name { get; }
Property Value
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()