|
Uovervåget læring

Ved uovervåget læring menes der at netværket selv klassificerer sit input, og finder ud af hvilke neuroner
der skal trænes, og hvordan de skal trænes, uden at der behøves nogen lærer eller træningssæt. Efterhånden
som netværket trænes bliver input automatisk klassificeret og derved bliver netværket i stand til at skelne ét input fra et
anden.
Competitive læring
Competitive læring er en simpel læringsalgoritme der egner sig godt til bogstavgenkendelse, derfor vil vi
også bruge den til et program. Den går ud på at der kun er én neuron der er aktiv og at det kun er den aktive neuron der bliver
trænet.
Alle neuroner har forskellige synapsestyrker så der ikke er nogen der giver det samme output på nogen tid.
Grunden til dette er at det kun er den neuron der giver det største output der bliver trænet, denne neuron bliver også kaldt en
winner-takes-it-all neuron.
Figur 1: 3 neuroner konkurrerer om hvilken der skal fyre.
På figur 1 har vi det simpleste netværk med to lag, og kan man se hvordan neuronerne konkurrerer om at blive den
der skal fyre og derved blive trænet. De hvide pile kan betegnes som forbindelser med negative synapsestyrker på -1. Den neuron der har det
største output er den røde, og derfor bliver den trænet. Man kan sætte det op matematisk på følgende
måde.
Ligning 1: Neuronerne konkurrerer om hvem der skal fyre
Dette betyder faktisk bare hvad der altid er blevet sagt, alle output bliver gennemløbet, og den der har det
største output giver 1 som output, alle andre giver 0.
Som sagt er det kun den aktive neuron der bliver trænet. Når
den aktive neuron skal trænes bliver dens synapsestyrker svækket en lille smule på en sådan måde at vektoren af
synapsestyrker kommer til at ligne vektoren af input. Dette gøres ved hjælp af læringsregelen for competitive læring som
følger,
Ligning 2:Ændringen af synapsestyrker i et competitive netværk
Et virkeligt godt billede af hvordan competitive læring virker er de følgende to billeder der viser
netværket før og efter træning.
Figur 2: a: Før træning - b: Efter træning
På billedet overfor er cirklerne inputvektoren og krydserne er de synaptiske styrker som bliver tilpasset efter
læringen. Vi kan se at netværket tilpasser synapsestyrkerne efter hvor der er samlet en stor klump af input. Competitive lærte
netværk er dog ikke gode hvis disse klumper ligger for spredt, derved er det for ustabilt og læringen bliver hurtigt ligegyldig da den ikke
fører til bedre genkendelse.
Programmet herunder er en implementation af et neuralt netværk med competitive læring, filen nn.pas er selve
netværket mens pRECForm.pas er brugerinterfacet. Her kan man se hvordan netværket er i stand til at generalisere af sig selv og inddele
visse mønstre i de rigtige klasser. Det minder på mange måder om nLAB der dog brugte error-correction. Nederst i programmet er der en
graf der viser hvor store ændringer der bliver lavet på synapsestyrkerne, man kan se at netværket lærer mindre og mindre, jo
tættere og tættere det kommer på en klassifikation af selve mønsteret. Hvis man her træner for meget vil der dog kunne
opstå fejl i netværket, så det ikke vil være i stand til at genkende andre mønstre end det ene. Her kommer der et andet
aspekt ind, som også indtager meget af forskernes tid, nemlig overtræning af netværk. Du kan prøve at træne
netværket over 200 runder og med en læringsrate på 100%. Så skulle der gerne vise sig en fuldstændig korrekt aftegning af
dit billede i konturplottet, der viser netværkets synapsestyrker. Tit vil det ske, at netværket, på grund af overtræning, mister
sin evne til at genkende andet end det mønster du har lært det. Der findes avancerede algoritmer der løser dette problem effektivt,
men jeg har nøjedes med en støjknap, der tilsætter lidt støj til synapsestyrkerne. Du kan læse mere om programmet under
programmeringssektionen hvor jeg dissekrerer koden og netværksarkitekturen.
|
Navn
|
Beskrivelse
|
Størrelse
|
|
pREC.zip
|
Bogstavgenkendingsprogram der bruger competitive læring.
|
137 KB
|
Følgende program er endnu et af de utallige programmer til bogstavgenkending, det viser hvordan et netværk kan
lære ved hjælp af både overvåget og uovervåget træning
http://vv.carleton.ca/~neil/neural/recog.html
Kilder
Simon Haykin, "Neural Networks - A comperehensive Foundation", Prentice Hall, ISBN:0-02-352761-7
|