|
20 juni 2000
Door onze onvermoeibare stagiair zijn twee fouten ontdekt in de backprop-opdracht. Een eerste heeft te maken met het lederen van gewichten. In de regels die bepalen welk gewicht geledeerd moet worden blijken twee rekenoperaties omgedraaid te zijn. I.p.v.
toNode = lesionWeightArray(lesionWeightNr) Mod nrSendNodes
fromNode = lesionWeightArray(lesionWeightNr) \ nrSendNodes
moet het zijn:
toNode = lesionWeightArray(lesionWeightNr) \ nrSendNodes
fromNode = lesionWeightArray(lesionWeightNr) Mod nrSendNodes
Dus de 'Mod' (rest) en '\' (delen-zonder-rest) operaties zijn omgedraaid.
Verder zit er een fout in de testroutine. De "TSE", total squared error, wordt enkel uitgerekend in de 'downsweep', de leersweep. Helaas was ik dat vergeten, en heb ik in de testroutine enkel 'upsweep' gebruikt. Daarom moet in de 'Test'-procedure
workspace.upsweep
Vervangen worden door:
workspace.sweep
Je moet dan echter wel zorgen dat er niet geleerd wordt. Zet daarom de leerconstante op 0. Zet hiervoor net boven het begin van de For...next-loop (dus op de tweede regel van de test-subprocedure:
workspace.Eta = 0
Aan het eind van de testprocedure moet je de leerconstante wel weer op z'n normale waarde zetten. Dit doe je door de volgende regel aan het eind van de subprocedure toe te voegen:
workspace.Eta = muLearn
Martijn
|