AI-basisprincipes
Wat is Deep Learning?
Deep learning is een van de meest invloedrijke en snelst groeiende gebieden in de kunstmatige intelligentie. Het kan echter moeilijk zijn om een intuïtief begrip van deep learning te krijgen, omdat de term deep learning een verscheidenheid aan verschillende algoritmen en technieken omvat. Deep learning is ook een subdiscipline van machine learning in het algemeen, dus het is belangrijk om te begrijpen wat machine learning is om deep learning te begrijpen.
Wat is Machine Learning?
Deep learning is een uitbreiding van sommige concepten die afkomstig zijn van machine learning, dus laten we even uitleggen wat machine learning is.
Machine learning is een methode om computers in staat te stellen specifieke taken uit te voeren zonder elke regel van de algoritmen die voor die taken worden gebruikt, expliciet te programmeren. Er zijn veel verschillende machine learning-algoritmen, maar een van de meest gebruikte algoritmen is een multilayer perceptron. Een multilayer perceptron wordt ook wel een neurale netwerk genoemd en bestaat uit een reeks knooppunten/neuronen die met elkaar zijn verbonden. Er zijn drie verschillende lagen in een multilayer perceptron: de invoerlaag, de verborgen laag en de uitvoerlaag.
De invoerlaag neemt de gegevens in het netwerk op, waar ze worden gemanipuleerd door de knooppunten in de middelste/verborgen laag. De knooppunten in de verborgen laag zijn wiskundige functies die de gegevens van de invoerlaag kunnen manipuleren, relevante patronen uit de invoergegevens kunnen extraheren. Dit is hoe het neurale netwerk “leert”. Neurale netwerken krijgen hun naam van het feit dat ze geïnspireerd zijn op de structuur en het functioneren van de menselijke hersenen.
De verbindingen tussen knooppunten in het netwerk hebben waarden die gewichten worden genoemd. Deze waarden zijn eigenlijk aannamen over hoe de gegevens in de ene laag gerelateerd zijn aan de gegevens in de volgende laag. Als het netwerk getraind wordt, worden de gewichten aangepast, en het doel is dat de gewichten/aannamen over de gegevens uiteindelijk zullen convergeren naar waarden die de betekenisvolle patronen in de gegevens nauwkeurig vertegenwoordigen.
Activatiefuncties zijn aanwezig in de knooppunten van het netwerk, en deze activatiefuncties transformeren de gegevens op een niet-lineaire manier, waardoor het netwerk complexe representaties van de gegevens kan leren. Activatiefuncties vermenigvuldigen de invoerwaarden met de gewichtswaarden en voegen een bias-term toe.
Wat is Deep Learning?
Deep learning is de term die wordt gegeven aan machine learning-architecturen die veel multilayer perceptrons met elkaar verbinden, zodat er niet alleen één verborgen laag is, maar veel verborgen lagen. Hoe “dieper” het diepe neurale netwerk is, hoe meer geavanceerde patronen het netwerk kan leren.
De diepe laag netwerken die bestaan uit neuronen, worden soms volledig verbonden netwerken of volledig verbonden lagen genoemd, waarbij wordt verwezen naar het feit dat een bepaald neuron een verbinding onderhoudt met alle omringende neuronen. Volledig verbonden netwerken kunnen worden gecombineerd met andere machine learning-functies om verschillende deep learning-architecturen te creëren.
Verschillende soorten Deep Learning
Er zijn verschillende deep learning-architecturen die door onderzoekers en ingenieurs worden gebruikt, en elk van de verschillende architecturen heeft zijn eigen specialiteit.
Convolutional Neural Networks
Convolutional neurale netwerken, of CNN’s, zijn de neurale netwerkarchitectuur die meestal wordt gebruikt bij de creatie van computer vision-systemen. De structuur van convolutional neurale netwerken stelt hen in staat om beeldgegevens te interpreteren, waardoor ze worden omgezet in getallen die een volledig verbonden netwerk kan interpreteren. Een CNN heeft vier belangrijke componenten:
- Convolutionele lagen
- Subsampling/pooling lagen
- Activatiefuncties
- Volledig verbonden lagen
De convolutionele lagen nemen de beelden als invoer in het netwerk op, analyseren de beelden en halen de waarden van de pixels op. Subsampling of pooling is waar de beeldwaarden worden omgezet/verkleind om de weergave van de beelden te vereenvoudigen en de gevoeligheid van de beeldfilters voor ruis te verminderen. De activatiefuncties controleren hoe de gegevens van de ene laag naar de volgende laag stromen, en de volledig verbonden lagen zijn wat de waarden analyseert die de beelden vertegenwoordigen en de patronen in die waarden leert.
RNN’s/LSTM’s
Recurrent neurale netwerken, of RNN’s, zijn populair voor taken waarbij de volgorde van de gegevens belangrijk is, waar het netwerk moet leren over een reeks gegevens. RNN’s worden vaak toegepast op problemen zoals natuurlijke taalverwerking, omdat de volgorde van woorden belangrijk is bij het decoderen van de betekenis van een zin. De “recurrent” in de term Recurrent Neurale Netwerken komt voort uit het feit dat de uitvoer voor een bepaald element in een reeks afhankelijk is van de vorige berekening en de huidige berekening. In tegenstelling tot andere vormen van diepe neurale netwerken, hebben RNN’s “geheugen”, en de informatie die op verschillende tijdstappen in de reeks wordt berekend, wordt gebruikt om de finale waarden te berekenen.
Er zijn meerdere soorten RNN’s, waaronder bidirectionele RNN’s, die toekomstige items in de reeks in aanmerking nemen, naast de vorige items, bij het berekenen van een item. Een andere soort RNN is een Long Short-Term Memory, of LSTM, netwerk. LSTM’s zijn soorten RNN die lange ketens van gegevens kunnen verwerken. Reguliere RNN’s kunnen het slachtoffer worden van iets dat het “exploderend gradient-probleem” wordt genoemd. Dit probleem treedt op wanneer de keten van invoergegevens extreem lang wordt, maar LSTM’s hebben technieken om dit probleem te bestrijden.
Auto-encoders
De meeste van de deep learning-architecturen die tot nu toe zijn genoemd, worden toegepast op gesuperviseerde leerproblemen, in plaats van ongesuperviseerde leertaken. Auto-encoders kunnen ongesuperviseerde gegevens omzetten in een gesuperviseerd formaat, waardoor neurale netwerken op het probleem kunnen worden toegepast.
Auto-encoders worden vaak gebruikt om afwijkingen in datasets te detecteren, een voorbeeld van ongesuperviseerd leren, omdat de aard van de afwijking niet bekend is. Dergelijke voorbeelden van afwijkingdetectie zijn fraude detectie voor financiële instellingen. In deze context is het doel van een auto-encoder om een basislijn van reguliere patronen in de gegevens te bepalen en afwijkingen of uitschieters te identificeren.
De structuur van een auto-encoder is vaak symmetrisch, met verborgen lagen gerangschikt zodat de uitvoer van het netwerk op de invoer lijkt. De vier soorten auto-encoders die frequent worden gebruikt, zijn:
- Reguliere/auto-encoders
- Multilaagse encoders
- Convolutionele encoders
- Gereguleerde encoders
Reguliere/auto-encoders zijn gewoon neurale netwerken met één verborgen laag, terwijl multilaagse auto-encoders diepe netwerken zijn met meer dan één verborgen laag. Convolutionele auto-encoders gebruiken convolutionele lagen in plaats van, of in combinatie met, volledig verbonden lagen. Gereguleerde auto-encoders gebruiken een speciaal soort verliesfunctie die het neurale netwerk in staat stelt om complexere functies uit te voeren, functies die verder gaan dan alleen het kopiëren van invoer naar uitvoer.
Generatieve Adversaire Netwerken
Generatieve Adversaire Netwerken (GAN’s) zijn eigenlijk meerdere diepe neurale netwerken in plaats van één netwerk. Twee diepe leermodellen worden tegelijk getraind, en hun uitvoer wordt doorgegeven aan het andere netwerk. De netwerken zijn in competitie met elkaar, en omdat ze toegang hebben tot elkaars uitvoergegevens, leren ze allebei van deze gegevens en verbeteren ze. De twee netwerken spelen eigenlijk een spel van vervalsing en detectie, waarbij het generatieve model probeert om nieuwe instanties te creëren die het detectiemodel/de discriminator kunnen misleiden. GAN’s zijn populair geworden in het veld van computer vision.
Deep Learning Samenvatting
Deep learning breidt de principes van neurale netwerken uit om geavanceerde modellen te creëren die complexe patronen kunnen leren en deze patronen kunnen generaliseren naar toekomstige datasets. Convolutionele neurale netwerken worden gebruikt om beelden te interpreteren, terwijl RNN’s/LSTM’s worden gebruikt om sequentiële gegevens te interpreteren. Auto-encoders kunnen ongesuperviseerde leertaken omzetten in gesuperviseerde leertaken. Ten slotte zijn GAN’s meerdere netwerken die tegen elkaar worden uitgespeeld en die vooral nuttig zijn voor computer vision-taken.












