|
|
Door Stan Gielen & Bert Kappen
Neurale netwerken zijn in staat om louter door het aanbieden van
representatieve voorbeelden moeilijke problemen op te lossen,
zelfs indien een oplossingsalgoritme voor het op te lossen
probleem niet aanwezig is. Na verschillende perioden, waarin de
belangstelling voor neurale netwerken geweldig fluctueerde, is er
sedert een jaar of tien een stabilisatie opgetreden, waarin
enerzijds de theorie van neurale netwerken een solide basis heeft
gekregen en waarin anderzijds het succes van neurale netwerken
heeft geleid tot acceptatie als een belangrijke nieuwe techniek
voor diverse toepassingen.
Het onderzoek naar neurale netwerken dateert reeds uit
de jaren veertig, toen enerzijds een basis werd gelegd voor een
beter begrip van het functioneren van biologische neurale
netwerken, en anderzijds de transistor de mogelijkheid schiep om
artificiële neurale netwerken te simuleren. Door de beperkte
hardwarefaciliteiten waren de gesimuleerde netwerken uiterst
primitief met slechts een paar zenuwcellen, neuronen genaamd.
Toch stamt uit die tijd reeds het inzicht, dat neurale netwerken
zich bij uitstek lenen voor implementatie op parallelle hardware,
waardoor de intrinsieke nadelen van de enkele, sequentiële
processor niet optreden en veel applicaties sneller kunnen
plaatsvinden.
Na een aantal perioden waarin neurale netwerken zich in een
grote mate van belangstelling mochten verheugen, onder andere in
de jaren veertig en in de jaren zestig, toen het Perceptron werd
geïntroduceerd, nam in de jaren tachtig het aantal
publikaties, toepassingen, en patentaanvragen van neurale
netwerken geweldig toe . Momenteel zijn neurale netwerken een
algemeen geaccepteerde techniek geworden, hetgeen moge blijken
uit het feit dat ze ook in de lucht- en ruimtevaart toepassing
gevonden hebben, een applicatiegebied waarin alleen zogenaamde
'proven technology' wordt geaccepteerd.
Wat zijn neurale netwerken?
Een biologisch neuraal netwerk bestaat uit een groot aantal
zenuwcellen, veelal neuronen genoemd, die onderling informatie
uitwisselen. Elk neuron heeft een grote antenne-achtige structuur
(dendrietenboom) waarop de signalen afkomstig van andere neuronen
als ingangssignalen binnen komen. Deze signalen leiden in de
dendrietenboom tot lokale veranderingen in de interne potentiaal,
die in rust ongeveer -100 mV bedraagt. De mate waarin een
inkomend signaal de interne potentiaal verandert, hangt af van de
sterkte van de verbinding tussen twee neuronen (de synaps). Bij
een sterke synaptische verbinding zal een neuron de interne
potentiaal van een ander neuron in sterke mate beïnvloeden.
Bij een zwakke synaptische verbinding is het effect gering. Deze
lokale veranderingen in de interne potentiaal planten zich voort
naar het cellichaam. Indien in het cellichaam de interne
potentiaal een bepaalde drempelwaarde overschrijdt (meestal
ongeveer -20 mV), genereert het cellichaam een kortdurende
spanningspiek (actiepotentiaal) van ongeveer 1 ms, waarbij de
potentiaal tot ongeveer +100 mv oploopt. Deze actiepotentiaal
plant zich via een zenuwvezel (het axon genaamd) voort naar
andere neuronen in het netwerk. Deze actiepotentialen zijn de
informatie-eenheden die tussen neuronen worden uitgewisseld. De
toestand van een neuron wordt daarom veelal als een binaire
grootheid voorgesteld: het neuron is in de toestand '1' indien
het een actiepotentiaal genereert en is in de toestand '0' of
'-1' indien het in rust is en geen actiepotentiaal genereert.
De informatie in een neuraal netwerk ligt besloten in de
sterkte van de synaptische verbindingen. Deze sterkte kan als
gevolg van een leerproces veranderen. Inmiddels zijn een aantal
mechanismen bekend die ertoe leiden dat synaptische verbindingen
van sterkte veranderen en daarmee informatie opslaan.
Bij artificiële neurale netwerken worden een groot
aantal vereenvoudigingen gemaakt. De belangrijkste zijn dat het
ingangssignaal van een neuron bestaat uit een gewogen lineaire
sommatie van de uitgangssignalen van de andere neuronen in het
netwerk. De weegfactor is hierbij de sterkte van de synaps die
het zendende en ontvangende neuron met elkaar verbindt. De
sterkte van de synaps bepaalt in welke mate de uitgangssignalen
van een neuron bijdragen aan de verandering van de interne
potentiaal van het ontvangende neuron. Ook wordt verondersteld
dat het artificiële neuron van toestand verandert indien de
som van gewogen ingangssignalen een bepaalde drempelwaarde
overschrijdt. Ten slotte is er steeds een leerregel die
voorschrijft hoe de sterkte van de verbindingen tijdens een
leerproces verandert. Deze leerregels zijn vaak niet biologisch
plausibel, maar functioneren in de praktijk vaak zeer goed.
Verschillende soorten neurale netwerken
Net als in biologische neurale netwerken zijn er diverse typen
artificiële neurale netwerken. In dit bestek kunnen we niet
al deze typen bespreken, maar zullen we ons beperken tot een paar
belangrijke typen.
Perceptron
Het Perceptron is een zeer eenvoudig neuron, waarbij de toestand
van het Perceptron (0 of 1) afhangt van het feit of de som van
ingangssignalen een bepaalde waarde overschrijdt (zie figuur 2).
De sterkte van de synaptische verbindingen waarmee neuronen
projecteren naar het Perceptron worden op random wijze gekozen en
worden tijdens het leerproces zodanig aangepast dat het
Perceptron geleidelijk aan zoveel mogelijk het gewenste gedrag
gaat vertonen.
Door zijn eenvoud zijn de mogelijkheden van een Perceptron
beperkt: het kan slechts eenvoudige (in meer technische
bewoordingen: alleen lineair separeerbare) classificatieproblemen
oplossen.
Het Multi-Layer Perceptron
Het Multi-Layer Perceptron (MLP) bestaat uit twee of meer lagen
van perceptrons (zie figuur 3). In het MLP kennen we
ingangsneuronen en uitgangsneuronen. De neuronen in de lagen
tussen de ingangs- en uitgangsneuronen worden 'hidden units'
genoemd. In tegenstelling tot het Perceptron kunnen de neuronen
alle waarden tussen 0 en 1 innemen. De verbindingen zijn volledig
feedforward: van input- naar hidden-, en van hidden- naar
outputneuronen. Er is aangetoond dat het MLP een 'universele
approximator' is: het kan geleerd worden om elke gewenste
afbeelding van ingangs- naar uitgangsdomein te realiseren.
Hoe kan een MLP geleerd worden een probleem op te lossen
indien het niet mogelijk is om in een algoritme aan te geven hoe
het probleem kan worden opgelost? Het antwoord op de vraag is
eenvoudig. Wat nodig is, is een set voorbeelden waarbij voor een
aantal ingangssignalen het daarbij behorende uitgangssignaal
bekend is. Het uitgangssignaal van het MLP bij een bepaald
ingangssignaal hangt af van de sterkte van de gewichten waarmee
neuronen naar elkaar projecteren. Indien we het uitgangssignaal
voorstellen door y(x,w), waarbij x het ingangssignaal van het MLP
voorstelt en w de gewichten in het MLP, dan wordt beoogd om voor
elk ingangssignaal x het uitgangssignaal y(x,w) van het MLP zo
veel mogelijk gelijk te maken aan het bij x behorende
uitgangssignaal y gewenst. Volgens recht-toe-recht-aan methoden
uit de wiskunde is dan eenvoudig een formule af te leiden die
voorschrijft hoe de gewichten in het MLP aangepast moeten worden
om het gewenste gedrag te krijgen (zie kader).
Het MLP is het meest gebruikte neuraal netwerk voor
toepassingen, omdat het gebruik ervan relatief eenvoudig is. Toch
zijn er nogal wat valkuilen die vermeden dienen te worden, want
hoewel theoretisch is bewezen dat een MLP elk probleem kan
oplossen, blijkt in de praktijk dat er nogal wat 'trucs' nodig
kunnen zijn om tot de gewenste oplossing te komen. Zo is het van
belang om het aantal hidden neuronen goed te kiezen (niet te
klein en niet te groot). Ook is het zonder zorgvuldige
voorzorgsmaatregelen niet altijd gegarandeerd dat het
leeralgoritme de gewenste oplossing ook vindt.
Boltzmann-machine
De Boltzmann-machine lijkt in een aantal opzichten op het MLP
maar wijkt ervan af in het feit dat de neuronen slechts in twee
toestanden kunnen zijn (-1 of 1), waarbij de kans dat een neuron
in een bepaalde toestand is afhangt van het ingangssignaal van
het neuron. Ook afwijkend is de eigenschap dat neuronen in een
Boltzmann-machine met elkaar verbonden zijn via symmetrische
gewichten. Dit wil zeggen: als neuron 1 projecteert naar neuron 2
met gewicht w, dan projecteert neuron 2 naar neuron 1 met
hetzelfde gewicht. Het trainen gaat weer zoals bij het MLP.
Aanvankelijk worden alle gewichten willekeurig gekozen en er is
een leerregel die beschrijft hoe de gewichten veranderd moeten
worden om de gewenste performance van de Boltzmann-machine te
krijgen. Net als voor het MLP is aangetoond dat de
Boltzmann-machine een universele approximator is. Hij heeft
echter het voordeel dat ingangs- en uitgangsneuronen
verwisselbaar zijn. Veronderstel bijvoorbeeld dat een
Boltzmann-machine getraind is om diagnostiek te bedrijven op
gegevens van patiënten. Indien nu niet alle gegevens van een
patiënt beschikbaar zijn, gaan bij een Boltzmann-machine die
ingangsneuronen die de ontbrekende gegevens zouden moeten
coderen, de meest waarschijnlijke waarden voor de ontbrekende
gegevens opleveren. Tevens verschijnt de te verwachten
diagnostiek aan de uitgang. De neuronen die de ontbrekende
gegevens zouden moeten coderen kunnen nu dus als uitgangsneuronen
worden opgevat omdat ze onbekende gegevens opleveren.
Overige typen neurale netwerken
Naast de hier genoemde typen neurale netwerken zijn er nog vele
andere typen. De meest bekende hieronder zijn de Artificial
Resonance Theory (ART) netwerken van Steve Grossberg en de
zogenaamde Kohonen-netwerken. Van beide typen is een aantal
interessante applicaties bekend. Het voert echter te ver om in
dit bestek deze netwerken in meer detail te bespreken. Voor meer
informatie wordt verwezen naar onder andere Hertz et. al. (1991).
Wanneer een neuraal netwerk te gebruiken?
Vanuit het oogpunt van toepassingen zijn neurale netwerken in
feite niet meer dan een techniek die, mits zorgvuldig toegepast,
tot goede resultaten kan leiden. Net als bij andere technieken
heeft elke methode zijn specifieke toepassingsgebieden. Zo ook is
er voor neurale netwerken een aantal richtlijnen te geven wanneer
ze aantrekkelijk kunnen zijn en wanneer andere methoden de
voorkeur verdienen.
Neurale netwerken worden getraind door het aanbieden van
voorbeelden. Dit maakt neurale netwerken zeer aantrekkelijk voor
het oplossen van complexe problemen waarvoor geen
oplossingsalgoritme bestaat. Voorbeelden van dergelijke problemen
zijn:
optimalisatie (bijvoorbeeld van een therapie voor
patienten);
het modeleren van complexe systemen (bijvoorbeeld in de
robotiek en in de computervision);
het extraheren van kennis in grote databestanden; en
het zoeken naar verborgen kennis.
Door het aanbieden van een representatieve set gegevens is het
neuraal netwerk in staat zelf de relevante informatie op te
slaan.
Een belangrijk aspect van elk neuraal netwerk is, dat het in
staat is te generaliseren: na het leren van het trainingsset
gedraagt het netwerk zich niet louter als een zogenaamde
'look-up' tabel voor deze trainingsset, maar is het in staat om
ook een goede performance te geven op ingangssignalen die niet in
het trainingsset aanwezig waren. Het optimaliseren van het
generaliserend vermogen van neurale netwerken vergt enige
expertise en valt onder de categorie 'trucs' die iedereen die
neurale netwerken gebruikt onder de knie dient te hebben.
Een andere aantrekkelijke eigenschap van neurale netwerken
is dat de performance ervan zeer robust is voor ruis in de data.
De performance hangt nauwelijks af van de ruis. Dit maakt neurale
netwerken vooral aantrekkelijk voor classificatie en
patroonherkennings-applicaties in een 'natuurlijke' omgeving
(onder andere spraakverstaan op een ruizige achtergrond,
patroonherkenning op videobeelden met storende invloeden ten
gevolge van reflecties van licht, schaduwen etcetera).
Na trainen gedraagt het netwerk zich als een soort expert
systeem. Hierin ligt een ander voordeel van neurale netwerken
besloten: het trainen van een neuraal netwerk duurt veelal veel
korter dan het ontwikkelen van een expert systeem. De ervaring
heeft geleerd dat het ontwikkelen van een netwerk met een goede
performance aanzienlijk minder tijd vergt dan het ontwikkelen van
een op kennis gebaseerd expert systeem. Daarom is een andere
belangrijke reden om een neuraal netwerk te gebruiken gelegen in
de economische efficiëntie.
Neurale netwerken kunnen ook aantrekkelijk zijn indien
real-time aspecten een rol spelen. Omdat neurale netwerken zich
bij uitstek lenen voor parallelle informatieverwerking, kan een
neuraal netwerk zeer goed geïmplementeerd worden in
parallelle hardware met een zeer snelle performance. Een
bijkomend voordeel hierbij is dat de performance van neurale
netwerken veelal ongevoelig is voor storingen of veranderingen in
het netwerk. Dit heeft tot gevolg dat sommige hardware-storingen
in een parallelle architectuur de performance van een neuraal
netwerk niet noemenswaardig hoeven te beïnvloeden.
Eén van de nadelen van een neuraal netwerk is dat
wanneer het eenmaal getraind is en een goede performance geeft,
het (nog) niet mogelijk is om uit te leggen hoe het netwerk het
probleem precies aanpakt. Dit punt is een van de belangrijke
onderzoeksproblemen, waaraan veel aandacht wordt besteed. Voor
veel applicaties is het wellicht niet nodig dat de performance
van het netwerk ook in regels kan worden uitgelegd, mits een
goede performance is gegarandeerd. Er zijn echter ook veel
toepassingen waarin dit wel een vereiste is. Veronderstel
bijvoorbeeld een neuraal netwerk dat getraind is met gegevens uit
een data-base over hypothecaire leningen. Dit netwerk gedraagt
zich dan na training als een expert systeem dat advies geeft of
een cliënt wel of niet in aanmerking komt voor een
hypothecaire lening. Indien het antwoord van het neuraal netwerk
na invoer van de gegevens van een nieuwe cliënt 'nee' is,
zijn zowel de cliënt als de hyptheekverstrekker erbij gebaat
te weten waarom het netwerk tot deze beslissing komt en of het
wellicht niet mogelijk is om met een paar aanvullende eisen toch
tot een positieve beslissing te komen.
Onder andere om deze reden moet men geen neuraal netwerk
gebruiken, indien het probleem goed oplosbaar is met een bestaand
algoritme (tenzij om redenen van efficiëntie of vanwege een
gewenste real-time performance, zoals boven reeds beschreven).
Bij het gebruik van een bestaand algoritme waarvan de
doeltreffendheid bekend is, weet men steeds precies wat men doet
zodat bij problemen de oorzaak snel kan worden gevonden.
Hoewel neurale netwerken met succes gebruikt kunnen worden
in de sector van Artificiële Intelligentie als expert
systeem, staat het gebruik ervan zeker niet op gespannen voet met
de meer 'klassieke' expertsysteem technieken. Neurale netwerken
zijn eerder complementair. Er zijn talloze voorbeelden van
applicaties waarbij onvoldoende kennis aanwezig was bij een knoop
in een complexe beslissingsboom en waarbij een neuraal netwerk
getraind werd om op de betreffende knoop als 'expert' te
functioneren. Ook zijn er voorbeelden, waarbij een neuraal
netwerk als een soort 'pre-processor' dienst doet. Hierbij wordt
ruis weggefilterd en vindt classificatie of patroonherkenning
plaats, waarna de resultaten van het netwerk gebruikt worden in
een expert systeem.
Toepassingsgebieden
In de afgelopen tien jaar zijn er vele succesvolle applicaties
gerealiseerd van neurale netwerken. In het volgende zal
geprobeerd worden om een beeld te geven van een aantal
succesvolle applicaties. Neurale netwerken blijken erg succesvol
bij diverse 'data-base mining'-problemen. Dit zijn problemen,
waarbij in grote (soms meerdere) databestanden gegevens bij
elkaar gezocht dienen te worden. Daarbij moet vaak kennis
gebruikt worden die niet expliciet bekend was om tot een gewenste
performance te komen. Een voorbeeld hiervan is het vinden van het
profiel van de ideale afnemer van een produkt.
Een hieraan verwant probleem is 'direct mailing'.
Veronderstel een verzekeringsmaatschappij die cliënten heeft
voor een bepaald type verzekering en die wil onderzoeken of deze
cliënten wellicht ook geïnteresseerd zouden kunnen zijn
in een ander (bijvoorbeeld nieuw) produkt van dezelfde
maatschappij. Omdat alleen gegevens met betrekking tot de lopende
verzekering bekend zijn, ontbreken sommige gegevens die nodig
zijn om op basis van de bekende criteria vast te stellen welke
van deze cliënten ook in het andere produkt
geïnteresseerd zijn. Hier ligt mogelijk een commercieel
interessant produkt, maar het toezenden van teveel en niet
relevante gegevens is kostbaar en kan nodeloos irritatie
opwekken. Daarom is het van belang om een profiel van een
'ideale' cliënt te hebben en een methode om op basis van
'missing values' een kans in te schatten, dat een cliënt
geïnteresseerd is in het nieuwe produkt. Sentient Machine
Research te Amsterdam leidt momenteel een project waarin een
tiental bedrijven samenwerkt om de meerwaarde van neurale
netwerken voor 'direct marketing' aan te tonen. De Stichting
Neurale Netwerken (SNN) voert een deel van dit onderzoek uit.
In feite is het bovenstaande een voorbeeld van een
optimalisatieproces. Een soortgelijk optimalisatieprobleem wordt
aangepakt in een samenwerkingsverband tussen het Academisch
Ziekenhuis Utrecht (AZU), SNN, en de European Organisation for
Research and Treatment of Cancer (EORTC). In dit
samenwerkingsverband worden neurale netwerken toegepast om de
relatie te analyseren tussen patiëntgegevens, de gevolgde
therapie en het behandelingsresultaat van patiënten met een
ovarium carcinoom. De resultaten van deze analyse geven meer
inzicht in de factoren (zowel van de patiënt als van de
therapie) die bepalend zijn voor de overlevingskansen, en in de
wijze waarop deze factoren tijdens de behandeling veranderen.
Aan de Universiteit van Amsterdam en aan de Universiteit
Twente worden veelvuldig neurale netwerken toegepast voor het
besturen van robots en voor het navigeren van autonome
werktuigen. Hierbij spelen verschillende problemen een rol met
een zogenaamd 'real-time' aspect, bijvoorbeeld bij het analyseren
van beelden van een videocamera ten behoeve van het herkennen en
localiseren van voorwerpen bij het vinden van een efficiënte
bewegingsbaan te midden van voorwerpen naar een doelpositie
zonder daarbij op voorwerpen te botsen.
Een andere applicatie betreft diverse aspecten van
patroonherkenning. Voorbeelden hiervan zijn te vinden in
spraakherkenning en spraakverstaan. Indien spraak herkend moet
worden in een ruisvrije omgeving zijn er vele technieken die tot
een goede performance leiden. In normale realistische situaties
echter is er altijd sprake van achtergrondlawaai of van meerdere
stemmen. In dit soort situaties blijken neurale netwerken een
veel betere performance te geven dan de traditionele technieken.
Soortgelijke resultaten zijn geboekt met visuele
patroonherkenning, zoals bij het herkennen van geschreven letters
en cijfers, waarbij nu een performance van ongeveer 97 procent of
meer heel gewoon is. Bij handgeschreven tekst zijn er altijd
letters die niet worden afgemaakt of onduidelijk worden
geschreven. Door SNN is een systeem ontwikkeld dat deel uit maakt
van een commercieel letter- en cijferherkenningssysteem. Dit
systeem wordt momenteel in Spanje gebruikt voor de automatische
verwerking van aanmeldingsformulieren van studenten die zich
hebben ingeschreven voor een universiteit.
Andere succesvolle voorbeelden van het gebruik van neurale
netwerken voor patroonherkenning betreffen het analyseren van
complexe gegevens bij het zoeken naar en exploreren van
oliebronnen bij Shell en het analyseren van diverse typen
radarbeelden door HSA.
Een andere sector waarin neurale netwerken in toenemende
mate worden gebruikt, is de financiële wereld. Neurale
netwerken spelen een steeds grotere rol bij het voorspellen van
bijvoorbeeld korte- en lange-termijn rente en het voorspellen van
fluctuaties in aandelenkoersen. Vooral in de financiële
wereld in Londen gebeurt veel onderzoek en zijn relatief veel
applicaties gerealiseerd.
In de procesindustrie hebben applicaties vooral betrekking
op het optimaliseren van het produktieproces en op
patroonherkenning voor de bewaking van het produktieproces.
Bovenstaande voorbeelden zijn zeker geen uitputtende opsomming
van de toepassingen van neurale netwerken. Zij zijn eerder
bedoeld om een illustratieve indruk te geven van wat op dit
moment mogelijk is. Zij laten ook zien, dat neurale netwerken een
algemeen geaccepteerde techniek zijn geworden die mits verstandig
toegepast tot goede resultaten kan leiden.
Hertz, Krogh en Palmer: Introduction to the theory of Neural
Computation. Addison-Wesley, 1991.
|
























|