Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door Willem de Moor

Redacteur componenten

Neurale netwerken

De beslissende kracht achter internet

Hoe werkt een neuraal netwerk?

Een van de eenvoudigste neurale netwerken, in de ruime zin van het begrip, is een netwerk dat handgeschreven cijfers kan herkennen. Uiteraard is input nodig, in dit geval een afbeelding die een raster van 28 bij 28 pixels naar het neurale netwerk stuurt. Niet geheel toevallig bevatten de grootste datasets voor het trainen van neurale netwerken op handschriften ook cijfers in afbeeldingen van 28 bij 28 pixels. Elke pixel heeft een grijswaarde en wij mensen herkennen zonder problemen elke variatie van een cijfer. Ons neurale netwerk moet echter gaan rekenen en dat doet het allereerst door alle inputs, 28 maal 28, dus 784 grijswaarden, een waarde tussen 0 en 1 te geven. Let op dat een neuraal net dus niet binair is, maar analoog; een neuron is niet 1 of 0, maar een willekeurige waarde tussen 1 en 0.

Die data wordt naar een tweede laag 'neuronen' gestuurd. Die tweede laag bestaat uit een veel kleiner aantal, zeg vijftien, neuronen en elk neuron krijgt input van elk neuron uit de eerste laag. Daarbij wordt de data, de grijswaarde, dus, een weging gegeven. De data van de tweede laag neuronen, ook weer waarden tussen 0 en 1, wordt weer naar de uitvoerneuronen gestuurd, opnieuw met een weging. Het neuron dat het dichtst bij waarde 1 komt, geeft aan welk cijfer het neurale net heeft 'gezien'. We moeten overigens opmerken dat een neuraal net meestal verschillende lagen heeft, maar voor de eenvoud houden we het op een enkele tussenlaag.

Die wegingen kun je je misschien makkelijker voorstellen als je je een neural net inbeeldt dat je wellicht dagelijks toepast: autorijden. Bij het autorijden kun je de wegingen, of hoeveel belang je hecht aan de verschillende inputs, laten variëren. Dat heeft steeds andere outputs, of rijsnelheden, tot gevolg. Met de juiste parameters of wegingen kom je veilig thuis, met de verkeerde krijg je een ongeluk. Zo kun je een neuraal netwerk ook fijn afstemmen om het succesvol te laten zijn of te laten falen.

De grote vraag is: hoe zorg je ervoor dat alle wegingen die nodig zijn om een cijfer te herkennen, aan je algoritme worden meegegeven? Om dat met de hand te programmeren is bijna onbegonnen werk. Een neuraal netwerk zoals we dat hier beschrijven, met één tussenlaag en 28 bij 28 pixels input, heeft al 784 maal 15 plus 15 maal 10 wegingen. Bovendien kan aan elk neuron nog een extra weging worden gegeven, dus dat zijn nog eens 15 plus 10 wegingen, voor een totaal van 11.935 variabelen die je moet bedenken en fijn afstemmen.

Voor een complexer neuraal net wordt het aantal variabelen vanzelfsprekend nog groter. Dus laat je het neurale netwerk zichzelf leren hoe het dingen moet herkennen, vandaar de term machinelearning, want de machine leert zichzelf. Dat is overigens niet de enige vorm van machinelearning, maar in deze context is dit wat we bedoelen.


OnePlus 7 Pro (8GB intern) Microsoft Xbox One S All-Digital Edition LG OLED C9 Google Pixel 3a XL FIFA 19 Samsung Galaxy S10 Sony PlayStation 5 Apple

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True