LEERKERN

13.4 Neurale netwerken

Introductie

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.

13.4.1 Perceptron-leren

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).

fi130401.gif (877 bytes)

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.

fi130402.gif (971 bytes)

Figuur 13.4.2 Het or-probleem (a) en het xor-probleem (b)

> Opgave 13.4.1

> Opgave 13.4.2

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.

fi130403.gif (5339 bytes)

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):

fm13lk04.gif (224 bytes)

fi130404.gif (820 bytes)

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

De afbeelding van attribuutwaarden op invoer- of uitvoerneuronen is dus niet altijd eenduidig. Stel dat de invoer van een meerlaags perceptron bestaat uit de symbolen uit de ASCII set. Aangezien ASCII-symbolen door één byte worden gerepresenteerd, ligt het voor de hand acht invoerneuronen te definiëren. Anderzijds zouden ook 256 invoerneuronen kunnen worden gedefiniëerd, één voor elk symbool.

Het aantal verborgen neuronen wordt doorgaans proefondervindelijk vastgesteld.

> Opgave 13.4.3

> Opgave 13.4.4

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.

> Opgave 13.4.5

> Opgave 13.4.6

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.

> Opgave 13.4.7