Wat is een artificieel neuraal netwerk?
Vanaf het moment dat je een leermethode gebruikt om een toestel te trainen, spreken we van machine learning en laat je de eenvoudigere AI-algoritmes van de jaren 80 achter je. Wie nog een stapje verder gaat en zijn software traint met behulp van bekrachtiging komt bij deep learning terecht en kan een artificieel neuraal netwerk creëren. De droom van iedere AI-specialist is om de trainingsmethodes achter zich te laten en een machine te creëren die – net zoals de mens – op zichzelf nieuwe taken kan aanleren. Voorlopig is AI-software echter nog nutteloos wanneer je deze niet naar behoren traint.
Neuronen
Deep learning is een vorm van machine learning die een computermodel gebruikt dat geïnspireerd is door de structuur van onze hersenen. Het neurale netwerk bestaat net als ons brein uit neuronen, die elk een set inputs hebben en een output genereren. Iedere neuron in een artificieel neuraal netwerk geeft zijn inputs verschillende gewichten en past hier een functie op toe om een correct resultaat te genereren. Deze gewichten en functies worden getraind met behulp van bekrachtiging.
De functie die vaak door neuronen wordt gebruikt, is de logistische functie. Een neuron berekent de gewogen som van alle inputs en zorgt er daarna voor dat het resultaat tussen nul en één ligt. Een logistische functie zorgt ervoor dat grote, positieve waardes een output dicht bij 1 genereren, terwijl grote, negatieve waardes voor een waarde dicht bij nul zorgen. De gegenereerde output wordt hierna aan de volgende neuron doorgegeven.
Netwerk
Je verkrijgt een neuraal netwerk wanneer je verschillende neuronen aan elkaar koppelt. Doorgaans worden lagen gevormd in het netwerk door neuronen in een bepaalde laag slechts aan neuronen in een volgende laag te koppelen. De laag die de originele input ontvangt, wordt de inputlaag genoemd, terwijl de laatste laag de outputlaag is. Alle neuronen die hiertussen zitten, bevinden zich in de verborgen laag. Deze laag kan bestaan uit slechts één reeks neuronen, of verschillende lagen. Bovendien hoeven de verschillende lagen niet uit hetzelfde aantal neuronen te bestaan.
Dieren herkennen
Stel dat we als input een afbeelding van een kat of een hond gebruiken en vragen aan een artificiële intelligentie welk dier hij ziet. Als inputdata worden de pixels van de afbeelding gebruikt, terwijl we twee outputneuronen hebben: de kans dat het een hond betreft en de kans dat het om een foto met een kat gaat. Wanneer we dit probleem op een typische machinelearning-aanpak oplossen, zouden we alle kenmerken van de dieren moeten overlopen. Heeft het dier snorharen? Zijn de oren gepunt? Pas wanneer we in detail alle kenmerken van een hond en een kat hebben beschreven, is de AI in staat om de dieren uit elkaar te houden.
Deep learning vindt daarentegen zelf de kenmerken die verschillen tussen een hond en een kat. De neuronen in de eerste lagen zullen op zoek gaan naar randen in de afbeelding, waarna de volgende neuronen deze randen combineren om bepaalde gezichtskenmerken, zoals snorharen, te vormen. De laatste neuronen bepalen aan de hand van de kenmerken die in de foto zitten wat de kans is dat het een hond of een kat betreft. De twee outputneuronen geven bijgevolg percentages: de kans dat de afbeelding een hond of een kat bevat.