neural networks en deep learning

Neural Networks & Deep Learning

Een Neural Network is een methode binnen Machine Learning waarmee alle standaard vraagstukken zoals regressie en classificatie opgelost kunnen worden. Daarnaast is het ook in te zetten voor complexere taken zoals beeld- geluid- en taalherkenning. Letterlijk staat Neural Network voor 'neuraal netwerk', dit komt door de overeenkomsten die er zijn tussen de werking van het menselijk brein en een Neural Network. Het concept wordt veel toegepast binnen het vakgebied data science.

Neurons en Neural Networks

Simpel omschreven is ons brein opgebouwd uit neuronen die onderling verbonden zijn en op basis van reacties op inputsignalen outputsignalen door kunnen geven aan andere neurons. Hierdoor ontstaat een netwerk van signalen die door functies al dan niet doorgegeven worden, en zo een bepaalde uitkomst tot stand komt. Op dit concept is een Neural Network gebaseerd.

Met een Neural Network wordt net zoals bij andere Machine Learning algoritmes bepaald gedrag, een bepaalde functie, gemodelleerd. Zodanig dat je een functie of model hebt met een input X en output Y. De vergelijking is dan als volgt: Y = f(X) + ϵ.

Tijdens het trainen geef je vorm aan functie f, om hierna met input X output Y te bepalen, met een bepaalde afwijking (ϵ) . Stel je dit als volgt voor dat je een model f traint om met input X, wat foto's van dieren zijn, als output Y te bepalen welk dier op de foto staat.

De praktijk is vaak complex waardoor functie f ook complex moet zijn. Neural Networks zijn hier uitermate geschikt voor doordat de meest complexe en niet-lineaire verbanden ermee gemodelleerd kunnen worden. Neural Networks worden ook wel omschreven als universal approximators (universele benaderaars). In de praktijk worden Neural Networks dan ook voor de complexere vraagstukken ingezet zoals:

  • Image recognition in afbeeldingen en video's (denk aan de Tesla autopilot)
  • Spraakherkenning (denk aan virtueel IOS assistent Siri)
  • Vertalingen (denk aan Google Translate)

Gebaseerd op het menselijke brein met neuronen is een een Neural Network opgebouwd uit componenten die ook neuronen (neurons in het Engels) genoemd worden.

Zelf machine learning modellen ontwikkelen? Schrijf je in voor een van onze data science trainingen.



Deze neurons kunnen via onderlinge connecties met elkaar verbonden zijn en zo informatie overbrengen. Hierbij is een neuron een functie die op basis van inputs een output geeft. Een connectie tussen neurons is de verbinding die een output met een bepaalde weegfactor overbrengt. Deze weegfactoren worden tijdens het trainen van het model bepaald. Neurons zijn met elkaar verbonden binnen wat layers (Engels voor lagen) genoemd worden. Hierbij zijn er tussen de verschillende layers connecties, maar niet binnen layers. In de volgende afbeelding kijken we eerst in meer detail naar een enkele neuron.

neural network neuraal netwerk neuron

We zien hier een enkele neuron met 4 inputs en 1 output. De neuron bevat een functie, waarbij indien de som van de verwerking van inputs groter is dan 15, er output 1 gegeven wordt. Elk van de inputs wordt gewogen met een weegfactor (weights). Zo is het totale ingangssignaal gelijk aan 17.6, wat groter is dan 15. Hierdoor geeft deze neuron een output: 1. 

Neural Networks zijn opgebouwd uit individuele neurons die in layers onderling verbonden zijn. Nu bekend is hoe een neuron werkt is dit voor te stellen vanuit het voorbeeld in de volgende afbeelding.

neural network neuraal netwerk voorbeeld

Hierbij is de afbeelding de input voor het Neural Network model, waarbij deze afbeelding bijvoorbeeld pixel voor pixel bekeken wordt. Vervolgens zijn er één of meerdere 'hidden layers'. Dit is waar de werkelijke neurons zich bevinden. Hierbij kan het aantal hidden layers, maar ook het aantal neurons per layer, vrij gekozen worden. Uiteindelijk geven de neurons uit de laatste layer output, in dit voorbeeld de kans dat in de afbeelding een bepaald dier aanwezig is.

Deep Learning 

De term Deep Learning is ontstaan toen door een toename aan beschikbare rekenkracht steeds grotere netwerken (meer hidden layers en meer neurons per layer) getraind en gebruikt konden worden. Deze toename in rekenkracht gaf enerzijds de mogelijkheid om door betere hardware meer te kunnen doen. Anderzijds zijn er uitstekende packages ontwikkeld voor bijvoorbeeld Python om met weinig voorwerk snel complexe Neural Networks toe te kunnen passen. Bekende Python packages waarmee met Neural Networks gemodelleerd kan worden zijn onder andere Keras, Tensorflow en PyTorch. Python leren is om deze reden een logische keuze als je iets wilt met Deep Learning.

Binnen Deep Learning wordt op verschillende wijzen gebruik gemaakt van de toepassing van Neural Networks. De twee meest bekende methoden zijn:

  • Convolutional Neural Networks (CNN)
  • Recurrent Neural Networks (RNN)

Elk van deze methoden heeft specifieke toepassingsgebieden.

Convolutional Neural Networks worden typisch gebruikt voor beeld-gerelateerde vraagstukken. Hierbij worden afbeeldingen opeenvolgend in kleinere delen opgedeeld, waarbij binnen elk van de kleine delen een te herkennen richting wordt bepaald in de verzameling pixels. Dit kan horizontaal (|), verticaal (-) of diagonaal (/ , \) zijn. Dit wordt meerdere keren (per layer) herhaald en dit concept heet convolution.

Recurrent Neural Networks worden typisch gebruikt voor taal-gerelateerde vraagstukken. Hierbij wordt bij toepassing het model herhaaldelijk gebruikt, en zijn neurons voorzien van geheugen wat eventueel overschreven kan worden. Middels dit concept kan een groep neurons bijvoorbeeld een bepaalde uitspraak of logische zinsopbouw herkennen en onthouden.

Wat je moet onthouden

We hebben geleerd dat Neural Networks gebaseerd zijn op een versimpelde werking van het menselijk brein. Neurons zijn onderling met elkaar verbonden in een netwerk waarbij ze via functies en weegfactoren signalen over kunnen brengen. Neural Networks zijn in staat de meest complexe en niet-lineaire verbanden te modelleren.

Deep Learning is de term die ontstaan is toen door toenemende rekenkracht meer complexe Neural Networks getraind en toegepast konden worden Er zijn meerdere Python packages beschikbaar waarmee je met Neural Networks aan de slag kan zoals Keras, Tensorflows en PyTorch. Binnen Deep Learning kennen we Convolutional Neural Networks (CNN) en Recurrent Neural Networks (RNN) waarbij CNNs gebruikt worden voor beeld-gerelateerde vraagstukken en RNNs voor taal-gerelateerde vraagstukken.

Neural Networks en Deep Learning met Python is onderdeel van onze data science opleiding en machine learning training. Dus wil jij je ontwikkelen of omscholen tot data scientist en in staat zijn om bijvoorbeeld beeldherkenning toe te kunnen passen? Schrijf je dan in of neem contact met ons op voor meer informatie.

Download één van onze opleidingsbrochures voor meer informatie

by: