Transfer Learning in ML - jstack
Artificial intelligence & Data Science Python TensorFlow
Transfer Learning bouwt voort op het idee dat kennis van de ene taak van nut kan zijn bij een andere taak. Hoe meer de taken op elkaar lijken hoe meer de kennis van de ene bruikbaar zal zijn voor de andere. Denk aan het leren van een nieuwe taal die erg lijkt op een taal die je al spreekt, vergeleken met het leren van een totaal vreemde taal.
Bij machine learning werkt dit ook zo: een model dat een goed onderscheid kan maken tussen honden en katten, kan snel leren om ook een onderscheid te maken tussen leeuwen en tijgers. Snel leren betekend in deze context dat er relatief weinig data en weinig computerkracht nodig is om het model de nieuwe taak te laten uitvoeren.
Hierboven staat het verschil tussen training from scratch, waarbij het model in een willekeurige staat begint en transfer learning, waarbij een model wordt gebruikt dat eerder op een andere taak is getraind. Omdat in de regel de eerste lagen van het model naar de details kijken, en de verdere lagen meer naar het geheel (en dus de uiteindelijk classificatie), wordt het eerste deel hergebruikt. Dit komt in het figuur terug als pre-trained CNN. De verdere lagen worden getraind op de nieuwe taak, op deze manier wordt de kennis van een vorige taak gebruikt om een nieuwe classificatie te leren.
Deze techniek is extra nuttig wanneer data of computerkracht schaars is, omdat op deze manier data of computerkracht van eerdere modellen hergebruikt kan worden.