13.4 Neurale netwerken
Kunstmatige neurale netwerken zijn modellen geïnspireerd op de structuur en werking van biologische neurale netwerken, hersenen en zenuwen. De belangrijkste karakteristieken van biologische neurale netwerken zijn, dat ze uit veel eenvoudige verwerkingselementen bestaan (de neuronen) en dat ze leren door het aanpassen van de sterkte van de verbindingen tussen paren van neuronen.
De elementaire eenheden in kunstmatige neurale netwerken zijn perceptrons. Perceptrons hebben een beperkte functionaliteit. Door perceptons te combineren in meerlaagse netwerken, ontstaan neurale netwerken met grote leermogelijkheden.
Het perceptron (Rosenblatt, 1962) is een kunstmatig neuraal netwerk dat, net zoals een beslisboom, een conditie toetst met betrekking tot de attributen van een voorbeeldvector. In tegenstelling tot een beslisboom, toetst het perceptron alle attributen in één keer. Op deze wijze kan classificatie plaatsvinden op basis van combinaties van attributen. De basisstructuur van het perceptron is geïnspireerd op de bouwsteen van de hersenen, het neuron, en is geïllustreerd in figuur 13.4.1. De invoer van het perceptron bestaat uit een voorbeeldvector met lengte N. De elementen van de vector (de attributen) worden elk gewogen door een verbinding met een gewicht, een variabele reëelwaardige sterkte. De gewogen som van de attribuutwaarden wordt de excitatie genoemd. Indien de excitatie een gegeven drempelwaarde overschrijdt, dan wordt de uitvoer van het perceptron op een positieve waarde gezet. Zo niet, dan wordt de uitvoer nul (of negatief).
Figuur 13.4.1 Een voorbeeld van een kunstmatig neuron
13.4.2 Lineaire separabiliteit en beslislijnen
Het perceptron is in staat om lineair separabele klassen te leren. Lineaire separabiliteit wil zeggen dat voorbeelden (oftewel de punten in de N-dimensionale invoerruimte) uit verschillende klassen zijn gescheiden door een (hyper)vlak. Figuur 13.4.2a toont voor N = 2 een voorbeeld van een lineair separabel probleem. De voorbeelden uit de twee klassen worden gerepresenteerd door de zwarte en witte bolletjes. Het getoonde probleem is op te vatten als een or-functie op de twee attributen waarvan de waarden worden gerepresenteerd door de horizontale en verticale assen. De punten in het invoervlak die door het perceptron verschillend worden geclassificeerd, zijn gescheiden door een zogenaamde beslislijn, zie in figuur 13.4.2a. In de leerfase worden de vier voorbeeldvectoren aangeboden en stelt het perceptron automatisch zijn parameters (gewichten en drempelwaarde) bij. De parameters zijn direct gekoppeld aan de parameters van de beslislijn die uiteindelijk de voorbeelden van beide klassen op de correcte wijze scheidt.
Figuur 13.4.2 Het or-probleem (a) en het xor-probleem (b)
13.4.3 Voor- en nadelen van perceptrons
Het belangrijkste voordeel van perceptrons is dat ze op basis van combinaties van attribuutwaarden kunnen classificeren. De waarde van ieder gewicht geeft aan hoe zwaar het betreffende attribuut meeweegt in de uiteindelijke classificatie. Dit in tegenstelling tot een beslisboom waar altijd één attribuutwaarde tegelijk wordt getoetst.
De voornaamste beperking van het perceptron is dat het alleen lineair separabele problemen kan leren. In Figuur 13.4.2b is een niet-lineair separabel probleem getoond dat op te vatten is als een xor-functie over de attributen. Zoals uit de figuur blijkt, is het niet mogelijk een beslislijn zodanig te plaatsen dat alle vier voorbeelden correct worden geclassificeerd. Het perceptron is niet in staat het xor-probleem te leren. Deze beperking van het perceptron heeft geleid tot de ontwikkeling van een meerlaags perceptron dat wel in staat is niet-lineair separabele problemen te leren.
13.4.4 Meerlaags perceptron-leren
De beperking van het perceptron kan worden opgeheven door het combineren van meerdere perceptrons. Hierdoor kunnen meerdere beslislijnen worden gevormd zodat niet-lineair separabele problemen kunnen worden geleerd. Het meerlaags perceptron vormt een voorbeeld van een dergelijke combinatie. De structuur van het meerlaags perceptron is getoond in Figuur 13.4.3.
Figuur 13.4.3 Structuur van het meerlaags perceptron.
Het voorbeeld heeft drie lagen van (kunstmatige) neuronen. De invoerlaag leest de attribuutwaarden van een voorbeeld-vector, de uitvoerlaag leest de bijbehorende classificatie. Op de zogeheten verborgen (hidden) laag ontstaat gedurende de training een kennisrepresentatie die de invoervectoren afbeeldt op de gewenste uitvoervectoren (classificaties). Deze kennisrepresentatie is niet expliciet, zoals een verzameling als-dan-regels. De kennisrepresentatie is niet gemakkelijk interpreteerbaar en wordt om die reden wel een impliciete kennisrepresentatie genoemd.
Niet-lineaire invoer-uitvoer-functies
De belangrijkste karakteristiek van het meerlaags perceptron is het gebruik van
niet-lineaire transfer of invoer-uitvoer-functies (ook wel activatiefuncties genoemd) in
een verborgen laag. Ieder (kunstmatig) neuron in de verborgen laag heeft een gewogen som
van attribuutwaarden (oftewel de excitatie x) als invoer en vertaalt die in een
uitvoer a door middel van een sigmoïde (S-vormige) invoer-uitvoer-functie f(x)
(zie figuur 13.4.4):
Figuur 13.4.4 De sigmoïde invoer-uitvoer-functie
Het credit assignment probleem
Het gebruik van de sigmoïde functie in het meerlaags perceptron is ingegeven door
twee vereisten. Ten eerste is er, net zoals bij het eenvoudige perceptron, een
drempelwaarde vereist. Ten tweede dient de invoer-uitvoer-functie differentieerbaar te
zijn. Dit laatste is vereist om in geval van een foutieve uitvoer, te bepalen welke
gewichten daar in welke mate verantwoordelijk voor zijn. Voor de gewichten van de
verbindingen tussen de verborgen laag en de uitvoerlaag is dit relatief eenvoudig. De
relatieve bijdrage van elk van deze verbindingen is direct gerelateerd aan hun waarde.
Voor de verbindingen tussen de invoerlaag en de verborgen laag daarentegen, is dit veel
moeilijker, omdat er een niet-lineair verband is tussen de bijbehorende gewichtswaarden en
de uiteindelijke fout. Het bepalen van de mate waarin elk van deze gewichten
verantwoordelijk is voor de uiteindelijke uitvoer, staat bekend als het
credit-assignment-probleem.
De backpropagation-procedure
De belangrijkste doorbraak van het meerlaags perceptron is niet gelegen in zijn
structuur, maar in de ontwikkeling van een procedure om het credit-assignment-probleem op
te lossen. Deze procedure staat bekend als de backpropagation of error (of kortweg
procedure backpropagation).
Op het eerste gezicht lijkt het vreemd om een niet-lineaire functie te introduceren in de verborgen laag van een meerlaags perceptron. Immers, de niet-lineariteit is direct verantwoordelijk voor het credit-assignment-probleem. Nadere beschouwing leert echter dat indien de invoer-uitvoer-functie lineair zou zijn, het meerlaags perceptron gereduceerd kan worden tot een enkellaags perceptron. De kracht van het meerlaags perceptron schuilt in de niet-lineaire transformatie in de verborgen laag.
Het bepalen van de netwerkstructuur
Alvorens een meerlaags perceptron getraind kan worden, dient het aantal invoer-,
verborgen en uitvoerneuronen te worden vastgesteld. Als voorbeelde nemen we de
gegevensverzameling die ook in de paragrafen 13.1 en 13.3 is gebruikt.
Tabel 13.4.1 Gegevensverzameling (is gelijk aan tabel 13.1.1 en 13.3.1)
voorbeeld | invoervector | klasselabel |
1 | 000 | A |
2 | 001 | B |
3 | 010 | A |
4 | 011 | B |
5 | 100 | A |
6 | 101 | B |
7 | 110 | A |
8 | 111 | B |
Er wordt een invoerlaag van drie neuronen gedefinieerd. Ieder invoerneuron representeert een attribuutwaarde (0 of 1). Voor de uitvoerlaag kan men kiezen voor of één uitvoerneuron- of twee uitvoerneuronen. Afhankelijk van de keuze vertaalt men de klasselabels in een binaire vector bestaande uit één bit (0 = A, 1 = B) of twee bits (10 = A, 01 = B). Tabel 13.4.2 toont de twee uitvoerrepresentaties.
Tabel 13.4.2 Twee mogelijke representaties voor de klasselabels van tabel 13.4.1.
klasselabel | representaite met 1 uitvoerneuron | representaite met 2 uitvoerneuronen |
A | 0 | 10 |
B | 1 | 01 |
Het aantal verborgen neuronen wordt doorgaans proefondervindelijk vastgesteld.
Het trainen
Het trainen van het meerlaags perceptron gaat als volgt. Gegeven een trainingset,
worden paren van voorbeeldvectoren en hun bijbehorende klasselabels (gewenste uitvoer)
aangeboden aan het netwerk. In één epoch worden alle invoer-uitvoer-paren
aangeboden aan het netwerk. Bij ieder paar wordt de invoer gepropageerd door het netwerk,
hetgeen een uitvoervector oplevert. Deze uitvoervector wordt vergeleken met de gewenste
uitvoer. Op basis van de verschillen tussen de werkelijke en gewenste uitvoer wordt een foutsignaal
teruggepropageerd (backpropagation) vanaf de uitvoerlaag terug naar de invoerlaag. Bij
deze terugpropagatie worden de gewichten in de goede richting aangepast. Omdat voor ieder
gewicht een aanpassing voor het ene invoer-uitvoer-paar anders kan zijn dan een aanpassing
voor het andere invoer-uitvoer-paar, dienen de aanpassingen zeer voorzichtig te gebeuren.
In andere woorden: iedere aanpassing geschiedt in zeer kleine stapjes. Na het aanbieden
van de gehele trainingset in een epoch, is het gemiddelde effect van alle aanpassingen
zoveel mogelijk in overeenstemming met alle voorbeelden. Gezien de geringe aanpassingen
per epoch, zijn er over het algemeen vele epochs nodig om een probleem te leren met een
meerlaags perceptron.
Het testen
Na voltooiing van het trainen heeft het meerlaags perceptron een model geconstrueerd
van de trainingset. Het testen geschiedt nu als volgt. De voorbeelden uit de testset
worden aangeboden aan de invoer van het getrainde perceptron. Door propagatie ontstaat er
een uitvoerpatroon. De met dit uitvoerpatroon geassocieerde klasselabel wordt vergeleken
met de bij het testvoorbeeld behorende klasselabel. Indien beide labels overeenkomen,
wordt de classificatie van het testvoorbeeld als succesvol beschouwd. Op deze wijze wordt
het percentage of de proportie correct geclassificeerde testvoorbeelden bepaald.
13.4.5 Voor- en nadelen van meerlaagse perceptrons
Het belangrijkste voordeel van het meerlaags perceptron is dat het een krachtig leeralgoritme is dat niet-lineair separabele problemen kan leren. In combinatie met het backpropagation-algoritme is het succesvol toegepast in vele domeinen zoals spraakherkenning, handschriftherkenning, data mining, beeldherkenning, endergelijke.
De belangrijkste nadelen van het meerlaags perceptron zijn de lange tijd (groot aantal epochs) benodigd voor leren, de ondoorzichtigheid van de gecreëerde kennisrepresentaties, en het gevaar van overfitting.