Main pageThe neural network bible

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

Error-correction læring

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

Beregning af fejlsignal

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

Beregning af fejlsignal med tidsfaktor

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

Widrow-Hoff reglen

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

Opdatering af synapsestyrker
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

Opdatering af synapser
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.


Navn Beskrivelse Størrelse
Perceptron Learning Applet En simulering af en enkelt perception

Link testet:07/03/2000 



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æringsratentil 1 og er nu klar til at træne neuronen med error-correction læring.

Sæt 1:


x1=0 x2=0
wk1=0.75 wk2=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:


x1=1 x2=0
wk1=0.75 wk2=1


Vi beregner yk

Beregning af y_k ved sæt 2

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

Ændring af synapsen ved sæt 2

Ligning 8: Ændring af synapsen ved sæt 2

Vi opdaterer synapsestyrkerne

Opdatering af synapsen ved sæt 2

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:


x1=0 x2=1
wk1=1 wk2=1


Vi beregner yk

Beregning af y_k ved sæt 3

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

Ændring af synapsen ved sæt 3

Ligning 12: Ændring af synapsen ved sæt 3

Vi opdaterer synapsestyrkerne

Opdatering af synapsen ved sæt 3

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

« forrige - top - næste »


Bottom frame
  Før du begynder at læse dette Error-correction læring Competitive læring Hebbian læring Andre metoder Programmering af træning Opgaver