Stel je voor dat je software wilt maken om een taak uit te voeren. Er zijn twee hoofdmanieren om dit te doen en één tussenmanier.
De codemethode
De eerste manier is om de software te programmeren om de taak uit te voeren, wat ik de "codemethode" zal noemen. In dit geval ken je alle interacties die kunnen optreden en anticipeer je daarop in je programma. Het meest eenvoudige voorbeeld hiervan is de "Als dan" reeks, waarin je de computer vertelt, als dit gebeurt, doe dan dit. Bijvoorbeeld, als op deze knop wordt geklikt, laat dan dit scherm zien.
De coderingsmethode gebruikt geen gegevens en vereist geen training. De geprogrammeerde volgorde verloopt deterministisch, ongeacht de gegevens. Voor de duidelijkheid: programma's kunnen worden gemaakt met behulp van de codemethode, geschreven met echte code of met behulp van visuele of soortgelijke hulpmiddelen.
De treinmethode
De tweede manier is om de software te trainen om de taak uit te voeren met behulp van big data, wat ik de "trainingsmethode" zal noemen. In dit geval schrijf je een algoritme, zoals een neuraal netwerk, om de software te trainen op de gegevens. Vervolgens laat je de software los op de gegevens en leert de computer via een feedbacklus hoe hij de taak moet uitvoeren. Je kunt de software bijvoorbeeld leren katten te herkennen door het te trainen op kattenfoto's.
De trainingsmethode is natuurlijk de essentie van kunstmatige intelligentie. Het staat bekend als de big data-benadering omdat hoe meer trainingsgegevens van hoge kwaliteit beschikbaar zijn, hoe beter het resultaat zal zijn. Er is een minimum aan trainingsgegevens nodig om redelijke resultaten te krijgen.
In zijn puurste vorm kan de trainmethode ongestructureerde gegevens gebruiken en gebeurt het leren zelf op een ongesuperviseerde manier. Dit betekent dat mensen de software helemaal niet helpen met de training.
Het algoritme leert van de impliciete context (niet van expliciete labeling) of een gegeven foto van een kat is of niet. Gewone gebruikers van een platform kunnen bijvoorbeeld ad hoc en spontaan het woord kat in de beschrijving van hun foto zetten, het woord kat kan in het artikel staan waarin de foto verschijnt, of als het een video is, kunnen mensen het woord kat zeggen wanneer de kat verschijnt. Al deze gebruikersgegevens zijn natuurlijk volledig ongestructureerd (wat betekent rommelig), en het algoritme zou moeten uitzoeken wat een kat is uit deze rommelige gegevens.
Natuurlijk kan het grote voordelen hebben als een algoritme zonder supervisie werkt. Dit kan betekenen dat mensen enorm veel moeite besparen bij het labelen en categoriseren van de gegevens. Het is niet triviaal (of stimulerend trouwens) om honderdduizend foto's van katten nauwkeurig te labelen.
De problemen
Een groot probleem met de ongestructureerde trainingsmethode is dat er veel meer gegevens nodig zijn. Als de gegevens niet beschikbaar zijn, kan het niet op deze manier worden getraind. Gesuperviseerde benaderingen hebben ook veel gegevens nodig en kampen dus met hetzelfde probleem.
Dit is natuurlijk de reden waarom mensen op zoek zijn naar mogelijkheden om AI toe te passen in plaats van AI op alles toe te passen. AI-algoritmen werken het beste als er veel gegevens beschikbaar zijn om te trainen (of als ze veel gegevens kunnen genereren - in het geval van games).
Een ander probleem met de ongestructureerde, ongesuperviseerde aanpak is dat het veel moeilijker is om het algoritme te schrijven en te testen op de gegevens in kwestie. Het algoritme moet geavanceerder zijn om met ongestructureerde gegevens om te gaan dan wanneer de gegevens netjes en gecategoriseerd zijn.
Een gesuperviseerde aanpak voegt menselijke intentionaliteit toe aan het proces als het gaat om de manier waarop de gegevens worden gecategoriseerd, maar het is nog steeds een soort treinmethode, een big data-aanpak. Mensen met kennis van de algoritmen kunnen de gegevens labelen en zo het werk van het algoritme verminderen.
De methode met kleine gegevens
Er is een methode die een mix is tussen de code- en de trainmethode die ik de "small data method" zal noemen. Dit is de small data-benadering waar ik in de titel op zinspeelde. Het is mogelijk om zowel de code als de train technieken te combineren om de hoeveelheid data die nodig is om een algoritme te trainen enorm te verminderen.
Voor de small data methode codeert een ontwikkelaar een model van interacties, maar vervolgens wordt dit model getraind op een veel kleinere dataset dan nodig zou zijn voor big data benadering. Hierdoor wordt het model veel sneller getraind dan nodig zou zijn met de pure trainmethode.
Natuurlijk is deze aanpak met kleine gegevens zinvol als de tijd die nodig is om het model te coderen en de gegevens te trainen veel minder is dan de tijd die nodig is om de gegevens te verzamelen en het algoritme te trainen.
Er zijn scenario's waarin de oplossing met kleine gegevens ons in staat zou stellen om dingen te doen die op dit moment niet haalbaar zijn. De small data methode is de enige methode die beschikbaar is als de gegevens die nodig zijn voor de trainingsmethode helemaal niet bestaan. In dat geval moet het algoritme worden getraind op gegevens die handmatig worden gecreëerd. Het is normaal gesproken niet praktisch om tienduizenden records met de hand aan te maken.
De small data-benadering wordt momenteel onderzocht door AI-bedrijven, waaronder botpress.io, en ik verwacht dat het de komende jaren een mainstreamtechniek zal worden.
Deel dit op:
Bouw gratis je eigen gepersonaliseerde AI-chatbot
Begin met het bouwen van een gepersonaliseerde GPT bot met onze intuïtieve drag & drop interface.
Begin - het is gratis! 🤖Geen creditcard nodig
Blijf op de hoogte van het laatste nieuws over AI chatbots