Opdatering af vægte i en kunstig neuron

A-niveau
Kort
  • Simple neurale netværk.
  • Sigmoid aktiveringsfunktion.
  • Gradientnedstigning.

Forudsætningerne kan for eksempel dækkes ved hjælp af noten om kunstige neuroner.

Tidsforbrug: Ca. 90 minutter.

Formål

Formålet med dette forløb er gennem detaljerede beregninger at forstå, hvordan vægtene i et simpelt neuralt netværk opdateres med brug af sigmoid aktiveringsfunktionen og gradientnedstigning.

Dette kan ses som et skridt på vejen til at forstå, hvordan vægtene opdateres i et generelt neuralt netværk.

Et meget lille datasæt

I neurale netværk er der ofte rigtige mange inputvariable (features), rigtigt mange vægte og rigtig mange træningsdata.

Vi vil se på følgende netværk:

For bedre at forstå, hvordan vægtene opdateres i et simpelt neuralt netværk, vil vi her se på et meget lille eksempel, så det manuelt er muligt at lave opdateringen af vægtene.

Konkret vil vi se på to features x1 og x2 og en targetværdi t ud fra følgende tre træningseksempler:

x1 x2 t
-1 2 ja = 1
0 4 nej = 0
1 7 ja = 1

Vi vælger en learning rate på

η=0.1,

sigmoid-funktionen som aktiveringsfunktion σ(x)=11+ex og squared error som tabsfunktion E(w0,w1,w2)=12m=13(t(m)σ(w0+w1x1(m)+w2x2(m)))2 Endeligt vælger vi startvægtene

w0=0.1,w1=0.1,w2=0.1

Første opdatering af vægtene

Du skal nu gå gennem de enkelte beregninger, som skal til for at opdatere vægtene. Der er efterfølgende facit til hver del.

Opgave 1: Beregn værdien af tabsfunktionen
  • Udregn først

    s(1)=w0+w1x1(1)+w2x2(1)

    for det første træningseksempel.

  • Udregn så

    o(1)=σ(s(1))

  • Udregn derefter

    e(1)=(t(1)o(1))2,

    hvilket giver det første træningseksempels bidrag til tabsfunktionen.

  • Gentag for hver af de to øvrige træningseksempler.

  • Læg de 3 beregnede værdier sammen og divider med 2, så

    E=12(e(1)+e(2)+e(3)).

Opgave 2: Beregn de partielle afledede
  • Beregn Ew0=m=13(t(m)o(m))o(m)(1o(m))1
  • Beregn Ew1=m=13(t(m)o(m))o(m)(1o(m))x1(m)
  • Beregn Ew2=m=13(t(m)o(m))o(m)(1o(m))x2(m)
Opgave 3: Opdatér vægtene

Beregn de opdaterede vægte w0(ny)w0ηEw0w1(ny)w1ηEw1w2(ny)w2ηEw2

Anden opdatering af vægtene

Overvej, om du kan strømline dine beregninger, for eksempel i Excel eller i dit CAS værktøj, så det bliver hurtigere at opdatere vægtene en gang mere på samme måde.

Opgave 4: Opdater vægtene anden gang
  • Beregn tabsfunktionen.
  • Beregn de opdaterede vægte.

Bemærk, at værdien af tabsfunktionen er blevet lidt mindre. Formålet er jo netop at minimere den gennem gradientnedstigning, så som regel bør værdien bliver mindre, hver gang vægtene opdateres.

App til simple neurale netværk

Med perceptron app’en kan du lave de samme beregninger bare automatisk.

Opgave 5: Afprøv perceptron app’en
  • Lav et Excelark med feature- og targetværdierne.
  • Indlæs data fra Excelarket i perceptron app’en.
  • Vælg de korrekte værdier i felterne på app’en. Herunder skal feature-skalering være slået fra.
  • Se om app’en giver samme resultater for tabsfunktionen og vægtene, som du selv fik efter 1 iteration og efter 2 iterationer.

Cross-entropy som tabsfunktion

Du kan læse om cross-entropy i noten om tabsfunktioner.

(Ekstra) Opgave 6: Cross-entropy tabsfunktion
  • Gentag opgave 1-5 men med cross-entropy som tabsfunktion i stedet for squared error.

Løsninger til opgaver

Facitliste.