Copyright © 2025, ECOLS - All rights reserved.
2025-01-30: Initial upload featuring Curriculum Learning and Self-Paced Learning.
Data Distribution-based Curriculum Learning (DDCL) or Static DDCL uses the data distribution of a dataset to build a curriculum based on the order of samples. It includes two types of scoring methods known as DDCL (Density) and DDCL (Point) which determine the difficulty of training samples and thus their order among other samples during training. DDCL (Density) uses the sample density to assign scores while DDCL (Point) utilises the Euclidean distance for scoring.
The Static DDCL approach was developed by Shonal Chaudhry with guidance from Anurag Sharma while being a member of the ECOLS research group.
Paper: S. Chaudhry and A. Sharma, Data Distribution-Based Curriculum Learning, IEEE Access, vol. 12, pp. 138429–138440, 2024, doi: 10.1109/ACCESS.2024.3465793.
Dynamic DDCL extends DDCL by adding a dynamically generated curriculum through self-paced learning. It adds two additional scoring methods known as Self-Paced DDCL (Density) and Self-Paced DDCL (Point) which use a combination of curriculum learning and self-paced learning.
The Dynamic DDCL approach was developed by Shonal Chaudhry with guidance from Anurag Sharma while being a member of the ECOLS research group.
Paper: S. Chaudhry and A. Sharma, Dynamic Data Distribution-based Curriculum Learning, Information Sciences, vol. 702, p. 121924, 2025, doi: (https://doi.org/10.1016/j.ins.2025.121924).
- Python 3.12.7
- Tensorflow 2.17.0
- Pandas 2.2.2
- Scikit-Learn 1.5.1
- Imbalanced-Learn 0.12.3
- Matplotlib 3.9.2
- Seaborn 0.13.2
- Run the code through the
main.py
file. Program behaviour can be altered by changing the options inconfig.ini
. - There are two sub-program options,
DDCL
andPlot
, which run the DDCL code or generate plots using output files obtained from theDDCL
sub-program respectively.
Some examples for running a specific DDCL
configuration:
- In
config.ini
, select one of theselearning_model
options: Neural Network, SVM or Random Forest. - Select a
training_strategy
option. - Use train_and_predict for the
nn_task
option.
- In
config.ini
, select one of thelearning_model
options: Neural Network, SVM, Random Forest, DDCL Ensemble or Standard Ensemble. - Select a
training_strategy
option. Note: selecting DDCL Ensemble in Step 1 will use all options. - Use train_and_save for the
nn_task
option.
- In
config.ini
, select either DDCL Ensemble or Standard Ensemble for thelearning_model
option.- For DDCL Ensemble, the
training_strategy
option is ignored. - For Standard Ensemble, select a
training_strategy
option that has a saved model available.
- For DDCL Ensemble, the
- Use load_and_predict for the
nn_task
option.