Wat is kennisdestillatie?
Kennisdistillatie (KD) is een compressieproces binnen Machine Learning (ML) dat kennis overdraagt van een omvangrijk Deep Learning (DL)-model naar een compacter, efficiënter model. In deze context verwijst kennis naar de patronen en gedragingen die het oorspronkelijke model tijdens de training heeft verworven.
Techopedia legt uit
Het doel van kennisdestillatie is om het geheugengebruik, de rekenvereisten en de energiekosten van een groot model te verminderen, waardoor in een omgeving met beperkte bronnen kan worden toegepast zonder aanzienlijk verlies van de prestaties.
Kennisdestillatie blijkt een doeltreffende methode om de nauwkeurigheid van een relatief compact ML-model te verbeteren. Het proces staat ook bekend als docent/leerling-leren, waarbij het grote model fungeert als de docent en het kleine model als de leerling.
Hoe kennisdestillatie werkt
Tijdens het distillatieproces genereert het docentmodel, een groot basismodel dat vooraf is getraind, soft labels op de trainingsgegevens. Deze soft labels, feitelijk kansberekeningen van de uitvoerverdeling, worden vervolgens ingezet bij de training van het leerlingmodel.
- Hard labels geven expliciet aan wat iets is. Bijvoorbeeld, wanneer het docentmodel een afbeelding van een tafel verwerkt, zou de uitvoer “tafel” moeten zijn.
- Soft labels daarentegen representeren kansverdelingen van de uitvoer, die de betrouwbaarheidsscores van het model over verschillende labels aangeven. Voor dezelfde afbeelding zou de uitvoer van het leerlingmodel bijvoorbeeld 90% “tafel”, 8% “bureau” en 2% “stoel” kunnen zijn.
Hier volgt een eenvoudig voorbeeld van hoe kennisdestillatie wordt toegepast om een leerlingmodel te trainen:
- Train het docentmodel op een dataset.
- Genereer soft labels van het docentmodel voor dezelfde dataset.
- Train het leerlingmodel op dezelfde dataset met de soft labels.
- Fine-tune het leerlingmodel op de dataset met hard labels. (Opmerking: Stappen drie en vier kunnen eventueel worden gecombineerd).
- Evalueer de prestaties van het leerlingmodel aan de hand van een verliesfunctie die meet hoe goed de voorspellingen van het model overeenkomen met de gewenste uitkomsten.
Indien het prestatieniveau van het leerlingmodel bevredigend is, kan het model in gebruik worden genomen. Als het prestatieniveau echter onacceptabel is, kan het leerlingmodel opnieuw worden getraind met aanvullende gegevens of worden geoptimaliseerd door aanpassingen aan hyperparameters, leersnelheden en/of de destillatietemperatuur.
Optimalisatietechnieken voor Kennisdestillatie
- Aandachtsoverdracht
Bij aandachtsoverdracht wordt het leerlingmodel getraind om de aandachtskaarten te repliceren die door het docentmodel worden gegenereerd. Deze kaarten markeren cruciale gebieden in een afbeelding of een reeks woorden.
- FitNets
FitNets is een techniek waarbij het leerlingmodel wordt getraind om de tussenliggende representaties van het docentmodel na te bootsen. Tussenliggende representaties zijn de verborgen lagen van het model die de onderliggende kenmerken van de invoergegevens vastleggen.
- Similarity-based destillatie
Bij similarity-based destillatie wordt het leerlingmodel getraind om overeen te komen met de similariteitsmatrix van het docentmodel. Deze matrix meet de onderlinge overeenkomsten tussen verschillende invoersamples.
- Hint-based destillatie
Hint-based destillatie is een techniek waarbij het leerlingmodel wordt getraind om het verschil te voorspellen tussen de uitvoer van het docentmodel en het leerlingmodel. Dit verschil staat bekend als de hint.
- Cross-Entropie Distillatie
Hierbij wordt het leerlingmodel getraind met een verliesfunctie die het standaard classificatieverlies combineert met een distillatieverlies dat het verschil meet tussen de uitvoerwaarschijnlijkheden van het leraar- en leerlingmodel.
Use cases
Kennisdestillatie is een cruciale techniek voor het ontwikkelen van lichte machine-learning modellen. Deze gedistilleerde modellen zijn met name handig voor aanbevelingssystemen en IoT-randapparaten met beperkte rekenkracht.
Door gebruik te maken van kennisdestillatie kunnen apparaten zoals beveiligingscamera’s, slimme thuissystemen en virtuele digitale assistenten lokaal een breed scala aan complexe taken uitvoeren, waaronder:
- Classificatie: Het toewijzen van invoergegevens aan een van de vooraf gedefinieerde categorieën.
- Natural Language Processing (NLP): Het verwerken en analyseren van grote hoeveelheden gegevens in natuurlijke taal voor taken zoals sentimentanalyse en named entity recognition.
- Objectdetectie: Het identificeren en classificeren van objecten in afbeeldingen of video’s.
- Spraakherkenning: Het omzetten van gesproken taal naar tekst.
- Machinevertaling: Het vertalen van tekst of spraak van de ene taal naar de andere.
Voordelen en nadelen
Een van de belangrijkste voordelen van kennisdestillatie is dat het mogelijk is om kleinere en snellere modellen te creëren die goed presteren op randapparaten van het Internet of Things (IoT). Er moet echter worden opgemerkt dat kennisdestillatie vaak gepaard gaat met een afweging tussen grootte en een aanvaardbaar niveau van nauwkeurigheid.
Het belang van compressie
Een van de grootste uitdagingen bij het ontwikkelen van business-to-consumer (B2C) toepassingen die gebruikmaken van kunstmatige intelligentie (AI) is dat randapparaten voor edge computing, zoals mobiele telefoons en tablets, beperkte opslag- en verwerkingsmogelijkheden hebben.
Hierdoor hebben machine learning-engineers maar één optie als ze een groot model willen uitvoeren op een randapparaat: de omvang van het model verkleinen met compressietechnieken zoals NNP (Neural Network Pruning), kwantisatie, low-rank factorisatie en kennisdestillatie.
- Pruning: Bij pruning worden bepaalde kunstmatige neuronen of gewichten uit het netwerk verwijderd die het minst bijdragen aan de prestaties van het model. Na het ‘prunen’ wordt de omvang van het model kleiner zonder dat de nauwkeurigheid significant afneemt.
- Quantisatie: Bij kwantisatie wordt de precisie van de gewichten (en soms activaties) van een model verminderd door bijvoorbeeld 16 of 8 bits te gebruiken om een gewicht weer te geven, in plaats van 32 bits. Dit verkleint de omvang van het model en kan ook de inferentie versnellen, vooral op hardware die geoptimaliseerd is voor berekeningen met lage precisie.
- Factorisatie met lage rangorde: Hierbij worden de gewichtsmatrices in een neuraal netwerk benaderd met matrices van een lagere rangorde. Het idee is dat de informatie in de gewichtsmatrices vaak kan worden vastgelegd met minder parameters.
- Kennisdistillatie: Bij kennisdestillatie wordt een kleiner, lichtgewicht machine-learningmodel getraind om het gedrag van een groter, resource-intensiever model te repliceren.
Kennisdistillatie vs. transferleren
Kennisdestillatie wordt soms beschouwd als een vorm van transferleren, maar de twee concepten hebben verschillende doelen.
Het doel van kennisdestillatie is het creëren van een kleiner machine-learning model dat dezelfde taak kan volbrengen als een groter model.
Aan de andere kant heeft transferleren als doel de benodigde tijd voor het trainen van een groot model voor een nieuwe taak te verminderen door gebruik te maken van de kennis die is opgedaan bij een eerder geleerde taak.