|
Overvåget læring

Overvåget læring betyder at netværket altid skal have en der siger hvad der er rigtigt og hvad der er
forkert. Dette sker normaltvis ved brug af såkaldte input-output eksempler. Læreren fodrer netværket med et input og lærer
netværket at det skal give det rigtige output. En sådan læreproces kan afbildles således

Figur 1: Error-correction læring
Input-output eksemplerne bliver fordelt, input til netværket og output til læreren. Netværket kommer med
et egentligt output som læreren sammenligner med det ønskede. Ud fra dette kommer fejlsignalet som bruges til at tilpasse det neurale
netværks synapsestyrker. Denne form for læring kan opnås ved hjælp af error-correction læring som vi nu skal høre
om
Error-correction

Error correction går, som det også fremgår af navnet, ud på at ændre synapsestyrkerne i
henhold til den fejl neuronen giver som output. Dette kan beskrives matematisk på følgende måde

Ligning 1: Beregning af fejlsignal
Hvor yk er det faktiske signal, dk det
ønskede signal og ek er fejlsignalet. ek bliver brugt i algoritmen
til at opdatere synapsestyrkerne så de gradvist tilpasser sig det ønskede signal dk. Vi kan inddrage
tiden i ligningen så vi får

Ligning 2: Beregning af fejlsignal med tidsfaktor
Hvor n er et udtryk for tiden. Grunden til at tiden er inddraget er at algoritmen som sagt
gradvist tilpasser synapsestyrkerne, så man kan se på n som det antal gange neuronen er blevet opdateret, eller
hvor mange træningseksempler der er blevet gennemløbet. Den egentlige læreproces finder først sted efter beregningen af
neuronens fejlsignal. Hvis vi kigger på neuron k kan vi opstille en ligning for opdateringen af dennes synapsestyrker således

Ligning 3:
Widrow-Hoff reglen
er et udtryk
for læringsraten, jo højere den er, jo hurtigere vil netværket tilpasse sig, jo lavere den er, jo langsommere, men mere præcist
vil netværket tilpasse sig.
Et skema over error-correction learning følger her
Figur 2: Opdatering af snapsestyrker
x(n) er det input-eksempel netværket bliver fodret med, og vi
ser ved den bøjede pil, at neuronen bliver opdateret med henhold til ek(n) som er neuron k's
fejl ved tiden n. Ligning 3 hedder også Widrow-Hoff-reglen, eller bare delta-reglen.
Opdateringen af neuron k's synapsestyrker er helt ligetil
Ligning 4: Opdatering af synapser
Den fremtidige styrke for synapse j i neuron k skal være lig den
nuværende plus den givne synapses ændring. Neuron k's synapser er nu ændret, og resultatet af det samme
input skulle nu være tættere på det ønskede resultat end før.
Et eksempel
Vi nupper et eksempel for at virkeligøre vores teori. For at det ikke skal være for stor en opgave,
nøjes vi med én neuron med to synapser. Vores neuron skal blive til en meget lille binær lommeregner som den vi har haft om. Den
eneste forskel er, at synapsestyrkerne nu ikke er predefinerede, og at neuronen skal læres for at kunne bruges.
Vi har følgende data for neuron k :
|
Synapsestyrke
|
wk1=0.75
|
wk2=1
|
Vi vælger stadig ingen aktiveringsfunktion, da vores output da kun ville kunne ligge fra -1 til 1. Hvis vi havde haft
et helt netværk ville vi kunne have haft aktiveringsfunktioner.
Nu laver vi 3 forskellige træningssæt da det senere viser sig at være nok. I virkeligheden ville man have
flere men dette er jo også kun et eksempel.
|
Sæt nr.
|
Input
|
Output (ønsket)
|
|
1
|
00
|
0
|
|
2
|
01
|
1
|
|
3
|
10
|
2
|
Vi sætter læringsraten til 1 og er nu klar til at træne neuronen med error-correction læring.
Sæt 1:
Her er der ingen grund til udregning, yk = 0
ek(n)=dk(n)-yk(n)
ek(n)=0-0=0
Ligning 5: Manuel beregning af fejlsignal ved sæt 1
Da der ingen fejl er sker der ingen ændring ved første gennemløb.
Sæt 2:
Vi beregner yk

Ligning 6: beregning af yk ved sæt 2
og ek(n)
ek(n)=dk(n)-yk(n)
ek(n)=1-0.75
ek(n)=0.25
Ligning 7: Manuel beregning af fejlsignal
ved sæt 2
Ændringen i synapsen er derfor
Ligning 8: Ændring af synapsen ved sæt 2
Vi opdaterer synapsestyrkerne
Ligning 9: Opdatering af synapsen ved
sæt 2
Da x2 er nul er der ingen grund til at opdatere den (se ligning 8)
Vi har nu de nye synapsestyrker
|
Synapsestyrke
|
wk1=1
|
wk2=1
|
Sæt 3:
Vi beregner yk
Ligning 10: Beregning af yk ved sæt 3
og ek(n)
ek(n)=dk(n)-yk(n)
ek(n)=2-1
ek(n)=1
Ligning 11: Beregning af fejlsignal ved
sæt 3
Den første synapse er der ingen grund til at beregne, da x1 er nul.
Ændringen i synapse 2 er
Ligning 12: Ændring af synapsen ved
sæt 3
Vi opdaterer synapsestyrkerne
Ligning 13: Opdatering af synapsen ved
sæt 3
Og har nu de helt nye synapsestyrker
|
Synapsestyrke
|
wk1=1
|
wk2=2
|
Vi er nu færdige med at træne vores netværk, og vores synapsestyrker er fuldstændigt tilpasset den store lommeregners. Det er
denne form for læring neurale netværk er så kendte for. Du kan tage et kig på denne lommeregner, som er en lidt udvidet version
af den gamle, da den kan trænes. Uddybningen af koden kommer under programmeringssektionen.
|
Navn
|
Beskrivelse
|
Størrelse
|
|
traincalc.zip
|
Et simpelt lommeregnerprogram der bruger én neuron for at omdanne binære tal til decimaltal, i starten er den
ubrugelig, men ved hjælp af træningseksempler trænes den til at kunne regne.
|
138 KB
|
Vi har lavet et program der bruger en form for error-correction til at opnå mønsterklassifikation, programmet er stadigvæk på
forsøgsstadiet, men det viser bedre end nogen af de forrige programmer at neurale netværk kan bruges til andet end binære
lommeregnere, og det netværk der bliver brugt er endda kun sammensat af ca. 130 neuroner, hvor der kun foretages beregninger i 10 af dem. Antallet
af synapser kan du så selv beregne hvis du får oplyse at netværket er et fuldt forbundet feedforward netværk.
|
Navn
|
Beskrivelse
|
Størrelse
|
|
nLAB.zip
|
Bogstavgenkendingsprogram der bruger competitive læring.
Hvis du har en
opløsning på 800x600 eller derunder
kan du ikke se programmet når det
starter.
|
137 KB
|
Kilder
Simon Haykin, "Neural Networks - A comperehensive Foundation", Prentice Hall, ISBN:0-02-352761-7
|