Curriculum learning
Træningsstrategi hvor data præsenteres i en stigende sværhedsgrad for at forbedre læring og konvergens.
Kort fortalt
En teknik hvor man starter med at træne på nemme eksempler og gradvist introducerer sværere, ligesom i en undervisningsplan.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /kəˈrɪkjʊləm ˈlɜːnɪŋ/
Betydninger
1- 1
En maskinlæringsstrategi hvor træningsdata præsenteres i en ordnet rækkefølge fra let til svær, for at guide modellen til at lære gradvist mere komplekse mønstre.
- Ved at anvende curriculum learning i en neurale oversættelsesmodel opnåede man hurtigere konvergens og bedre BLEU-score. — forskningsartikel, 2018
- Curriculum learning kan implementeres ved at sortere billeder efter objektstørrelse, så modellen først lærer at genkende store objekter. — tutorial, 2020
Hvornår bruges det
Curriculum learning bruges ofte i sprogmodeller og billedgenkendelse for at stabilisere træning og opnå bedre generalisering. Det kan implementeres ved at sortere træningsdata efter en sværhedsmetrik eller dynamisk generere eksempler.
Kodeeksempel
import torch
def curriculum_scheduler(epoch, total_epochs, easy_ratio=0.3):
# Returner andelen af nemme eksempler i batch
if epoch < total_epochs * easy_ratio:
return 1.0 # kun nemme
else:
return max(0.0, 1.0 - (epoch - total_epochs*easy_ratio) / (total_epochs*(1-easy_ratio)))Eksempel på en simpel curriculum scheduler der gradvist reducerer andelen af nemme eksempler over tid.
Oprindelse
Begrebet er overført fra pædagogisk teori, hvor et curriculum beskriver en plan for undervisning. Inden for maskinlæring blev det introduceret af Bengio et al. i 2009.
Afledte ord
1Kilder
1- Curriculum learning (Bengio et al., 2009)