|
mei 2000
Eindopdracht B: Leren is Hopfield Repareren
A. Het serial lesion effect
Medici was het al lang geleden opgevallen dat een langzame beschadiging aan de hersenen minder effect heeft op gedrag dan een snelle beschadiging – zelfs als de langzame beschadiging uiteindelijk resulteerde in een net zo grote schade. Een goed voorbeeld hiervan is de groei van een hersentumor: pas als de tumor een enorme omvang heeft bereikt en veel weefsel heeft vernietigd, begint de patiënt klachten te ontwikkelen. Dit effect is vertaald naar een experimentele opzet, waarbij snelle en langzame laesies bij dieren worden vergeleken. De snelle beschadiging wordt gerepresenteerd door één grote laesie, de langzame door een serie van kleine laesies. Vandaar de naam ‘Serial Lesion Effect’. Voor de vergelijkbaarheid moeten de kleine beschadigingen samen natuurlijk wel evenveel hersenweefsel omvatten als de ene grote laesie.
Het Serial Lesion Effect is in verschillende hersengebieden voor verschillende dieren gevonden. Bijvoorbeeld bij de rat in de somatosensorische cortex, hippocampus, reticulaire formatie, frontale cortex en amygdala, en bij delen van de visuele cortex, somatosensorische cortex van de aap. Van verschillende variabelen is bekend dat ze het Serial Lesion Effect beïnvloeden. Dit zijn leeftijd (hoe jonger hoe groter het effect; , tijd tussen de verschillende laesies (hoe langer de tussenperiode, hoe groter effect; , de hoeveelheid van sensorische stimulatie waar een subject aan is blootgesteld gedurende de tijd tussen de laesies -hieronder valt ook training , het type hersendeel , temperatuur (proefdieren met seriële laesie presteren slechter onder koude omstandigheden; Bell et al., 1981) en de volgorde van beschadiging van de verschillende hersendelen .
Er zijn verschillende verklaringen voor het Serial Lesion effect. Twee prominente zijn de ‘reduced deficit’- en ‘serial recovery’-hypothese. De eerste houdt in dat de eerste kleine laesie de hersenen al voorbereidt op een volgende laesie, ongeveer zoals een inenting voorbereid tegen bijvoorbeeld een virusinfectie. De virussen in de prik zijn dood of kreupel en maken je niet ziek, maar ze bereiden het immuunsysteem wel voor op het echte virus. Volgens de reduced-deficit hypothese zal een tweede laesie daarom minder effect hebben op gedrag dan een eerste laesie. De tweede verklaring legt de nadruk op herstel dat plaatsvindt tussen de verschillende laesies, waarbij herstel makkelijker wordt geacht als de laesies kleiner zijn.
Bepaalde hemisferische lesies, waarbij een regio in één van beide hemisfeer wordt beschadigd en niet in de ander, hebben onafhankelijke contralaterale effecten (bij een unilaterale laesie in de motorische cortex valt bijvoorbeeld een deel van de spieren aan de andere kant van het lichaam uit). Als nu eerst een regio in de ene hemisfeer wordt beschadigd, en na enige tijd dezelfde regio in de andere hemisfeer, blijken de gevolgen van beide laesies aanvankelijk even ernstig te zijn. Na een gegeven periode verminderen de effecten van beide laesies echter . De reduced deficit hypothese voorspelt dat een tweede laesie, in vergelijking met de eerste laesie, minder grote gevolgen zou hebben, en is dus inconsistent met dit resultaat. Het resultaat is niet inconsistent met de andere verklaring; dat er pas na enige tijd herstel optrad, duidt net op die serial-recovery hypothese.
We zullen er verder vanuit gaan dat de serial recovery hypothese de juiste is. Wat dan interessant wordt, is uit te zoeken wat voor mechanismen tijdens de tijd tussen de operaties ten grondslag liggen aan herstel.
B. Voorgesteld mechanisme
Leren is repareren
Wat zou dat herstel tussen twee operaties kunnen veroorzaken waar de ‘serial recovery’-hypothese van uit gaat? Stel, voor het gemak, dat het gedrag dat getest wordt afhangt van 1 bepaalde representatie (of 1 conglomeraat van representaties). Bij een grote laesie is die representatie geheel verloren, en dat is waarom het dier niet meer de taak kan volbrengen. Als we twee kleine laesies maken die samen even groot zijn als de grote laesie, zou de hele representatie ook weg moeten zijn. Toch kan het dier het gedrag nog vertonen. Kennelijk gebeurt er iets tussen de twee kleine laesies, herleren, reorganisatie, dat ervoor zorgt dat de representatie niet helemaal verdwenen is. De representatie moet gedeeltelijk verhuisd zijn naar een niet geledeerd deel van de cortex.
Hoe gebeurt dat ‘verhuizen’? De vaakst genoemde verklaring is dat representaties continu herleerd worden – en is de oude plek niet meer aanwezig dan worden ze herleerd in een ander deel van de cortex . Het herleren veroorzaakt, in zo’n geval, het repareren van de representatie (‘leren is repareren’ is zelfs de slogan van een AiO-project aan deze faculteit). De representatie kan herleerd worden omdat het organisme opnieuw blootgesteld wordt aan de situatie waar de oorspronkelijke representatie in ontstond, of weer het gedrag vertoont dat in de representatie gecodeerd was. In dat geval kunnen we spreken van training. Het kan ook dat het herleren gebeurt vanuit het brein zelf: dat het brein zelf de representatie activeert, en gedurende deze reactivatie de representatie herleerd wordt. In dat geval wordt meestal gesproken van consolidatie. Consolidatie wordt meestal geassocieerd met slaap: vaak wordt gehypothetiseerd dat herinneringen in slow-wave-sleep of gedurende droomslaap gereactiveerd worden, en dan geleerd.
Knopen vs. verbindingen
Je kunt in een netwerk knopen lederen, en je kunt verbindingen lederen. Het herleren van patronen, boven beschreven en cruciaal voor het verklaren van het serial-lesioneffect, betekent verschillende dingen afhankelijk van of knopen dan wel verbindingen geledeerd worden.
Bij de laesie van verbindingen is het makkelijk wat telt als het herleren van het patroon: dit betekent het herstellen van verbindingen tussen knopen binnen het patroon.
Het ligt moeilijker bij de laesie van knopen. Knopen laten ‘herontstaan’ gaat in tegen het biologisch gegeven dat neuronen in volwassenen maar heel beperkt aangroeien, en als er al nieuwe knopen zouden ontstaan, dan nog zouden ze niet resurrecties zijn van de oude, geledeerde knopen. Daarom bestaat het herleren van een representatie uit het recruteren door de representatie van nieuwe knopen. Als die nieuwe knopen verbonden raken met dezelfde input-en outputpatronen als de oude representatie, is er niets tegen om deze nieuwe knopen te beschouwen als deel van de representatie. Het recruteren bestaat er dus uit dat de nieuwe, te recruteren knopen actief zijn tegelijk met de representatie en zijn input- en outputpatronen. Zo kunnen verbindingen ontstaan tussen de nieuwe knopen en de representatie en, nog belangrijker, tussen de nieuwe knopen en de input- en outputpatronen.
Trainen vs. consolideren
Net werd er al gezegd dat het leren wat repareren veroorzaakt twee dingen kan betekenen: trainen of consolideren. Trainen is leren zoals dat meestal gebeurt in connectionistische netwerken: je zet het gewenste patroon in het netwerk (door knopen in het patroon actief te maken), en je past de gewichten aan het patroon aan. Zo gebeurt ook het ‘initieel leren’, het aan het begin van de simulatie leren van de patronen; initieel leren is dus gewoon het eerste trainen.
Consolidatie is ingewikkelder: de bedoeling bij consolideren is dat het netwerk zelf het patroon genereert dat geleerd moet worden. Meestal wordt in het netwerk een willekeurig patroon ingebracht. Vervolgens mag het netwerk een aantal iteraties lang vrij itereren (activatie updaten). Na de ‘vrije’ iteraties wordt het patroon dat dan actief is geleerd . De hoop is dat het netwerk zich ondertussen naar een attractor toe heeft bewogen, en dat die attractor één van de geleerde patronen is. Met andere woorden, dat één van de bestaande patronen extra geleerd wordt zonder dat inmenging van buitenaf nodig is.
D. Opdracht
Het netwerk dat je moet gebruiken
Het paradigma dat je moet gebruiken is het Hopfield, wat al eerder gebruikt is bij opdracht 2. Echter, het paradigma wijkt wel enigszins af van dat in Opdracht 2. De belangrijkste wijzigingen zijn een andere leerregel en een andere codering. De leerregel is als volgt: er kan alleen geleerd of afgeleerd worden als de zendende, oftewel de ‘pre’-knoop actief is (in het standaard hopfieldparadigma wordt er altijd geleerd). Verder zitten er maximum- en minimumgrenzen aan de gewichten: ze kunnen niet groter worden dan 1, en niet kleiner dan -1. In een formule ziet de leerregel er dan als volgt uit:
De wijziging van codering is dat i.p.v. dat er met 1 en -1 als maximum- en minimumactivatie, wordt gewerkt zal er nu met 1 en -1 als actieve en niet-actieve staat.
Het netwerk waarmee je aan de slag moet bestaat uit één laag: het netwerk is weer autoassociatief en invoerpatronen zijn gelijk aan uitvoerpatronen.
De simulaties die je moet doen
De simulaties moeten uit de volgende vier fases bestaan:
- de fase van het aanmaken van het netwerk: zorg dat je een netwerk aanmaakt in overeenstemming met de aanwijzingen hierboven.
- de fase van het initieel leren: in deze fase wordt het model patronen aangeleerd
- de fase van de laesies en het herleren: in deze fase worden 1 of meerdere laesies aangebracht, en zijn er tussen de laesies en na de laesies ‘herleertrials’ waarin het model de patronen opnieuw kan leren.
- de testfase: alle patronen worden getest (je kunt na elke laesie testen, en in elk geval aan het eind van de simulatie).
Je moet het serieel laesie-effect onderzoeken in twee condities, die verschillen in of er in een herleertrial getraind wordt (=herleren van een specifiek patroon),of geconsolideerd (=herleren van een patroon dat vanuit een willekeurige beginstaat is bereikt). Verder moet je, om het serieel laesie-effect vast te kunnen stellen, in beide condities een simulatie doen met één grote laesie, en eentje met twee of meer kleine laesies. Bijvoorbeeld, zowel bij de ene grote laesie als bij de meerdere kleinere moet uiteindelijk de helft van de connecties van het netwerk geledeerd worden. Je moet dus minstens vier simulaties uitvoeren:
- een grote laesie en trainen
- kleine laesies en trainen
- een grote laesie en consolideren
- kleine laesies en consolideren.
Om de simulaties vergelijkbaar te houden moeten er evenveel herleertrials zijn in de condities met één grote laesie als in de condities met meerdere kleine laesies. M.a.w., een grote laesie moet door meer herleertrials gevolgd worden als een kleine laesie, zodat ze uiteindelijk bij hetzelfde aantal herleertrials uitkomen.
Het script dat je moet schrijven
Het raamwerk van het script is al helemaal geschreven. Je mag echter alles veranderen aan het script. Denk eraan dat als je ergens iets verandert het van invloed kan zijn op code elders in het script. Er is wel gestreefd naar robuustheid van de code, maar deze is niet gegarandeerd. Als je bijvoorbeeld de grootte van het netwerk verandert moet je daar ook rekening mee houden bij het genereren van patronen.
De opdracht is om het serieel laesie-effect te vinden door de volgende variabelen gestructureerd te variëren.
- Het aantal patronen
- Grootte van de patronen en de mate van overlap van de patronen
- Grootte van het netwerk
- De grootte en soort van de lesies
Je moet het effect vinden met beide type repareermethodes: consolidatie en hertrainen
Er bestaat in het script een methode om patronen te maken, maar dit is niet de meest handige methode om allerlei soorten van patronen te genereren. Met een eigen patroongenerator kun je zelf controle houden over hoe de patronen eruit komen te zien. Een eerste deelopdracht is daarom om zelf een patronengenerator te maken. Je kunt hiervoor te rade gaan bij de scripts voor de andere opdrachten. Let wel, het gaat er in deze opdracht niet om de hoeveelheid patronen die het netwerk geleerd kan worden, belangrijk is serial-lesion effect. De mate van overlap en grootte van patronen zullen op het effect van invloed zijn, en daarom moet je de overlap van patronen, en daarmee het type patronen, variëren (als maat voor overlap kan je het aantal eentjes en nulletjes dat per patroon overlapt tellen, en dit voor alle patronen middelen).
Met de variabele nrOfLesions (onder Global Parameters te vinden) kan het aantal lesies worden gevariëerd. Er zijn twee soorten type laesies mogelijk: een die gewichten op nul zet en een die een kleine error bij het gewicht optelt. Dit kan gemanipuleerd worden met de variabele zeroErrorpercentage (Global Parameters). Als deze op 100 staat zal het type laesie worden dat gewichten op nul worden gezet, als deze op 0 staat wordt er een error bij het opgeteld. Bij een waarde tussen 0 en 100, bijvoorbeeld 40, wordt er 40% van de te lederen gewichten op 0 gezet en bij de overige 60% wordt een error bij opgeteld. De grootte van de error kan gevarieerd worden door de variabelen lowerbound en upperbound in de methode MakeNoise te manipuleren. De huidige laesie methode maakt alleen random laesies, het zou ook handig zijn om een laesie methode te maken die gerichte laesies kan maken. Bijvoorbeeld een laesie die het netwerk op een bepaalde plek in tweëen snijdt. Aan jullie weer de taak om zo’n laesie methode schrijven.
De repareermethodes die je moet hanteren zijn consolidatie en training. Voor consolidatie is een subprocedure geschreven, maar voor training niet. Aan jou de taak om deze repareermethode ook te implementeren.
Als je klem komt te zitten of er dingen onduidelijk zijn, schroom niet ons te mailen.
Wat je moet inleveren
Ten eerste willen we graag de excel-file ontvangen met daarin de code voor de simulaties. Verder dien je een verslagje (3-4 A4) in te leveren met in ieder geval het volgende:
- een inleiding met in je eigen woorden wat je gaat doen en waarom, en verantwoording voor eventuele keuzes die je gemaakt hebt.
- een methode-sectie: een beschrijving van alle simulaties, met wat je precies hebt gedaan.
- een resultaten-sectie: een beschrijving van de resultaten van de simulaties, met een gepaste figuur.
- een discussie-sectie, met je conclusies en een kritische bespreking van je werk.
!!!!! DEADLINE: VOOR 14 JULI 2000 MOET HET INGELEVERD ZIJN !!!!!
Literatuur
|