Module 2B - Neurale Netwerken Flashcards
Wat zijn neurale netwerken?
- Neurale netwerken bestaan uit een aantal neuronen (units) en verbindingen tussen de neuronen. Een neuraal netwerk kan een “echt” biologisch neuraal netwerk zijn, zoals dat in je hersenen, of een “artificieel” neuraal netwerk dat wordt gesimuleerd in een computer.
- Ze zijn geïnspireerd door neuronen uit ons brein.
Uit wat bestaat een biologisch neuraal netwerk?
- Een groot aantal eenvoudige eenheden = neuronen of zenuwcellen, die bestaan uit een cellichaam en draden die de neuronen met elkaar verbinden. Via die draden ontvangen de neuronen signalen en geven ze deze aan elkaar door.
- Dendrieten = draden of uitlopers van de neuronen die informatie (of input) ontvangen: axonen.
- Synapsen: Elk axon via contactpunten die synapsen heten, verbonden zijn met een of meerdere dendrieten.
Hebben we een eindige hoeveelheid neuronen?
- Nee, op basis van informatie die binnenkomst, afkomstig uit bijvoorbeeld onze zintuigen, maken onze hersenen constant nieuwe neuronen aan, of hersencellen bij (neurogenese). Afhankelijk van de signalen die er binnenkomen, kan een neuron soms een signaal afgeven voor de andere neuronen, en soms niet.
Wat is synaptogenese?
- Tussen neuronen en uitlopers vormen er zich ook regelmatig nieuwe verbindingen (synaptogenese). Met dit proces versterken we verbindingen die we regelmatig gebruiken. Kennis die we vaak aanspreken, halen we dus sneller op dan kennis die we minder vaak gebruiken.
- Als je zo bepaalde dingen niet meer doet, verzwakt die kennis of verdwijnt ze zelfs helemaal. Connecties tussen neuronen sterven dus mogelijk af.
Uit wat bestaat een artificieel neuraal netwerk?
- Net zoals de biologische neuronen de fundamentele bouwstenen vormen van het brein, vormen kunstmatige neuronen de elementaire eenheden in een artificieel neuraal netwerk.
- Artificiële neurale netwerken zijn dus netwerken die bestaan uit kunstmatige neuronen of rekeneenheden, wiskundige functies, die een of meer inputs ontvangen en deze optellen om een output te produceren.
Zijn neuronen binair?
- Nee, ze kunnen dus, in tegenstelling tot bits, een variabele waarde hebben tussen 0 en 1.
Hoe kun je een neuraal netwerk beschrijven?
- Als een grote rekensom omdat die neuronen informatie aan elkaar doorgeven en analyseren op een manier die vergelijkbaar is met onze hersenen.
- Neurale netwerken hebben ook de mogelijkheid om zelfstandig te leren = complexe adaptieve systemen → ze zijn in staat om hun interne structuur te veranderen op basis van data, gewoonlijk door het aanpassen van gewichten.
Wat zijn de gewichten binnen een neuraal netwerk?
- Elke verbinding tussen neuronen heeft een gewicht en een getal dat het signaal ertussen regelt. Dat gewicht bepaalt hoe sterk het signaal via die connectie aankomt bij het doelneuron, en kan positief (stimulerend) of negatief (remmend) zijn.
- Uiteindelijk is voor ieder paar neuronen in het netwerk een functie met gewichten gedefinieerd, die aangeeft hoe het vuren van één neuron invloed heeft op het andere neuron.
Hoe passen de gewichten zich aan?
- Als het netwerk de juiste output genereert, worden gewichten niet aangepast. Als het netwerk een foute output genereert, dan past het systeem de gewichten aan om toekomstige resultaten te verbeteren.
Hoe ontstaat een neuraal netwerk?
- Een neuraal netwerk ontstaat wanneer je verschillende neuronen aan elkaar koppelt. Doorgaans vormen onderzoekers hierbij lagen in het netwerk door één laag van neuronen aan de volgende te koppelen. De laag die de originele input ontvangt, noemen we de invoerlaag (inputlaag), terwijl de laatste laag de uitvoerlaag (outputlaag) is.
- Alle neuronen die hiertussen zitten, bevinden zich in één of meerdere verborgen verwerkingslagen → zo krijgen we diepe neurale netwerken (deep learning of deep neural networks) omwille van hun verschillende, diepe lagen. Hoe meer tussenlagen een netwerk bevat, hoe meer nuances het kan onderscheiden. Als er genoeg data beschikbaar zijn, ontdekt een neuraal netwerk op deze manier mogelijk zeer complexe relaties tussen de input- en outputlaag.
Wat is de architectuur van een neuraal netwerk?
- De architectuur van het netwerk bestaat vaak uit lagen. De inputlaag bestaat uit neuronen die hun input direct uit de gegevens krijgen. Bij het herkennen van afbeeldingen gebruikt de inputlaag bijvoorbeeld de pixelwaarden van de input als input. Het netwerk heeft doorgaans ook verborgen lagen die de output van andere neuronen als input gebruiken, en waarvan de output weer als input van andere lagen neuronen wordt gebruikt.
- De outputlaag genereert ten slotte de output van het gehele netwerk. Alle neuronen van een bepaalde laag krijgen input van neuronen uit de eerdere laag en geven hun output aan de volgende laag.
Wat is een doel van het bouwen van kunstmatige modellen van de hersenen?
- Neurowetenschap: onderzoek naar de hersenen en het zenuwstelsel in het algemeen:
- BRAIN initative of het Europese Human Brain Project
- Andere reden: biologische systemen als inspiratiebron te gebruiken om betere technieken voor AI en machinaal leren te ontwikkelen → zinvol om dit als inspiratiebron te gebruiken bij AI-systemen.
Wat zijn de eigenschappen van neurale netwerken in vergelijking met traditionele computers?
- Informatieverwerking: omdat de neuronen allemaal in hun eentje informatie kunnen verwerken tegelijkertijd.
-
Opslag en geheugen niet gescheiden: Bij traditionele computers zijn opslag en geheugen gescheiden. Dit is niet zo bij neuronen: deze verzorgen zowel de opslag als de verwerking van informatie, zodat het niet nodig is om gegevens uit het geheugen te halen om deze te kunnen verwerken.
- De gegevens kunnen gedurende korte tijd in de neuronen zelf worden opgeslagen (ze sturen ze al dan niet op een bepaald moment door) of voor langere tijd in de verbindingen tussen de neuronen, hun zogenaamde gewichten.
Wat is het gevolg van deze eigenschappen van neurale netwerken tov klassieke computers?
- Hoewel het zeker mogelijk is om neurale netwerken in traditionele computers te simuleren, wat lange tijd ook het geval was, wordt hun maximale capaciteit uitsluitend benut als we speciale hardware (computerapparatuur) gebruiken die veel informatie tegelijkertijd - of parallel - kan verwerken.
- Grafische processoren (of graphics processing units, GPU’s) kunnen dit en zijn een rendabele oplossing geworden voor omvangrijke deep-learningmethoden.
Hoe leren neurale netwerken?
Om zelfstandig beslissingen te kunnen nemen → kennis aanleren of ‘getraind’ worden: Ze moeten dus leren om voor een bepaald probleem aan de hand van bepaalde input een correcte output te leveren.
3 technieken:
- Supervised learning
- Unsupervised learning
- Reinforcement learning
Supervised learning
- Methode waarbij je werkt met gelabelde data waarmee je voorspellingen wilt doen → dataset die je gaat gebruiken om te modelleren bevat vaak zowel de eigenschappen als de uitkomst van hetgeen voorspeld moet worden.
- Dus: het systeem krijgt van de ‘supervisor’ voorbeelden waarbij duidelijk aangegeven staat wat de gewenste output is bij een gegeven input.
- Vergelijkbaar met hoe kinderen leren waarbij de ouder hen aanleert wat een hond is of een kat.
Voorbeeld cijferhandschriftherkenning met gesuperviseerd leren?
- Dan geef je het neurale netwerk een grote hoeveelheid voorbeelden, in dit geval cijfers, met een gewenst ofwel bekend resultaat. Zo’n trainingsset bestaat bijvoorbeeld uit zo’n zestigduizend plaatjes van cijfers met de gewenste uitkomst. Je begint met willekeurig gekozen parameters en kijkt welke uitvoer dat oplevert: waarschijnlijk gewoon ruis.
- Elke keer dat het neurale netwerk een output geeft, vergelijk je die met het gewenste resultaat. Hoe meer dat afwijkt, hoe sterker variabelen moeten worden aangepast. Elke parameter kan een positieve of negatieve vector krijgen, die aangeeft hoeveel de parameter moet worden aangepast om de gegeven uitvoer met de gewenste uitvoer overeen te laten komen.
Wat is backpropogation?
- Elke parameter kan een positieve of negatieve vector krijgen, die aangeeft hoeveel de parameter moet worden aangepast om de gegeven uitvoer met de gewenste uitvoer overeen te laten komen. Dit aanpassen van de parameters om de verschillen tussen de cijfers die het neurale netwerk waarneemt, en de correcte cijfers te minimaliseren, wordt ook wel backpropagation genoemd.
Waarvoor gebruiken we backpropogation?
- Optimalisatie: Bij een eenvoudige functie is dat makkelijk, maar met meer variabelen moet met afgeleide functies gewerkt worden, waarbij in kleine stapjes de minima worden opgezocht. Voor die minima geldt dat het neurale netwerk een uitkomst geeft die zo min mogelijk afwijkt van de bekende, gegeven waarde.
- Het trainen van een netwerk is dus feitelijk een optimalisatie of het zoeken van de lokale minima van een multivariabele functie. Met grote trainingssets kunnen deze parameters steeds beter afgesteld worden, zodat betrouwbare resultaten worden geleverd.
Wat is een hidden layer?
- Tussenlaag tussen invoer en uitvoer. Indien er meer dan 2 tussenlagen zijn → diepe neurale netwerken waarbij elke laag een specifieke taak heeft, waardoor een vraagstuk in steeds eenvoudigere deelvragen kan worden opgesplitst. Je kan zeer complexe taken onderverdelen in eenvoudige deelvragen, die door de eerder beschreven neurale netten kunnen worden uitgevoerd, met diepere lagen die een steeds hoger abstractieniveau mogelijk maken.
Wat zijn de subgroepen binnen gesuperviseerd leren?
- Classificatie: voor het voorspellen van een groep of een categorie
- Regressie: voor het voorspellen van een waarde, een getal.
Wat zijn classificatieproblemen?
- Typisch het onderverdelen in categorieën: bv. hond of kat.
- In eenvoudigste gevallen: ja of nee vorm = binaire classificatieproblemen.
Hoe lossen we classificatieproblemen op?
- In plaats van handmatig precieze regels te formuleren voor het uitvoeren van de classificatie, geven we het computersysteem een aantal voorbeelden die elk de juiste benaming krijgen toegewezen en die worden gebruikt om het algoritme te ‘trainen’ in het automatisch herkennen van de juiste benaming voor de trainingsvoorbeelden en (dat is de bedoeling althans) andere afbeeldingen.
Wat voor oplossing krijgen we bij oplossen van classificatieproblemen?
- Hiermee kan een categorie of een groep worden voorspeld: bv. is deze foto een appel of een peer; is het spam of geen spam.
- Hiermee kan een categorie of een groep worden voorspeld: bv. is deze foto een appel of een peer; is het spam of geen spam.
Wanneer gebruiken we classificatiemodellen?
- Bv. fraudedetectie, handschriftherkenning, taalherkenning, spamfilters.
- Bekende classificatie-algoritmes zijn: Naive Bayes; Logistic Regression; Decision Tree; Support Vector Machine (SVM); k-Nearest Neighbor (kNN)
Wat zijn regressieproblemen?
- Voorspellen over het aantal mensen dat op een advertentie van Google zal klikken: gebaseerd op de inhoud van de advertentie;
- Voorspelling aantal verkeersongelukken op basis van weersomstandigheden, snelheidslimiet
- = regressieproblemen.
Voorbeeld regressieprobleem en huisprijs?
- Hiervoor maken we een model waarmee we op basis van eigenschappen van een woning de waarde van de woning kunnen voorspellen.
- Historische dataset met eigenschappen en de verkoopprijs → zo het algoritme trainen tot een model, dat vervolgens op basis van gegevens van een ander huis kan voorspellen wat hiervan de verkoopprijs zal zijn.
Wat zijn features?
- Voorspellende eigenschappen: bv. ligging van het huis, grootte, bouwjaar,…
Wat is feature engineering?
- Feature Engineering is het proces waarbij je de eigenschappen selecteert, bewerkt of maakt zodanig dat je je model kan trainen met op de best voorspellende eigenschappen.