Skibidi toilet

A-niveau
Kort
  • Differentialregning
  • Tabsfunktioner (squared-error)

Tidsforbrug: Ca. 60 minutter.

Formål

Formålet med dette forløb er at se på, hvordan man kan vurdere værdien af tabsfunktionen og værdien af klassifikationsnøjagtigheden, når man har trænet en kunstig neuron på et datasæt.

Hvis værdierne vurderes utilfredsstillende, må man forsøge, om andre startvægte, en anden learning rate eller flere iterationer giver et bedre resultat.

Træn neuralt netværk til klassifikation på datasæt

Vi vil se på data fra 200 fiktive personer, der efter et besøg på et museum om internetfænomener bliver spurgt, om de ved, hvad “skibidi toilet” betyder.

Der er to forklarende variable, \(x_1\) er personens alder, og \(x_2\) er besøgets længde i minutter, samt en afhængige variabel \(t\), som angiver, om personen kan huske, hvad “skibidi toilet” betyder (1 betyder Ja, 0 betyder Nej).

Data ligger i Excel-filen her. Vi vil bruge kunstig neuron app’en til at træne en model på disse data.

NoteOpgave 1: Udregn værdi af tabsfunktionen i eksemplet
  • Åbn appen og indlæs datasættet
  • Vælg \(t\) som target-varibel og \(x_1\) og \(x_2\) som feature-variable.
  • Sæt startvægtene til -23, og sæt antal iterationer til 50000.
  • Behold learning-rate som 0,001 og behold squared-error, sigmoid og feature-skalering.
  • Kør modellen.
  • Overvej, om det ser ud til, at den kunstige neuron er trænet rimeligt - se f.eks. på, om grafen flader ud til højre.

Det er ikke åbenlyst, om modellen er trænet godt nok, men i det følgende vil vi se på, hvad man i hvert fald kan bruge til at se, at det nok ikke er særligt godt endnu.

Lille eksempel

Lad os sige, at vi har spurgt 10 personer, om de ved, hvad “skibidi toilet” betyder. De 7 svarede Ja, og de 3 svarede Nej. Vi sætter targetværdien \(t=1\) for Ja og \(t=0\) for Nej.

Vi skal så ud fra en eller flere feature-variable for hver person træne en neural neuron til at kunne klassificere, om en ny person ved, hvad “skibidi toilet” betyder.

Vi vil dog ikke fokusere på netværket, men på mulige værdier af tabsfunktionen, idet vi bruger *squared-error”: \[ E = \frac{1}{2} \sum \left (t-o \right)^2 \tag{1}\]

NoteOpgave 2: Udregn værdi af tabsfunktionen i eksemplet
  • Hvad en den absolut mindste værdi, som tabsfunktionen kan få?

  • Hvad skal outputværdien \(o\) sættes til for hver af de \(10\) personer for at få minimum?

  • Hvad en den absolut største værdi, som tabsfunktionen kan få?

  • Hvad skal outputværdien \(o\) sættes til for hver af de \(10\) personer for at få maksimum?

  • Hvilken værdi giver tabsfunktionen, hvis outputværdien sættes til \(o=0.5\) for alle input?

\(o=0.5\) giver os et udgangspunkt, men mon ikke det kan blive bedre end det?

NoteOpgave 3: Udregn E for andre værdien end \(0.5\)
  • Overvej, om \(o=0\) eller \(o=1\) for alle input vil give den laveste værdi af tabsfunktionen.

  • Udregn værdien af \(E\) for begge tilfælde.

  • Overvej, hvilken fast værdi \(o=p\), der vil give den mindste værdi af tabsfunktionen.

  • Beregn værdien af \(E\) for forskellige værdier af \(p\).

Som opgave 3 viser, så afhænger tabsfunktionen \(E\) af værdien af \(p\), så vi kan se på funktionen \(E(p)\).

NoteOpgave 4: Tabsfunktionen som funktion af p
  • Opskriv forskriften for \(E(p)\).
  • Bestem minimum for \(E\) vha. differentialregning.
  • Stemmer svaret her med det, du fandt ud af i opgave 3?

Generalisering

I matematik vil vi rigtigt gerne generalisere, så vi ikke bare ser på et lille eksempel med \(10\) personer, hvor andelen \(q=\frac{7}{10}\) svarer ja, men på noget mere generelt.

Lad os derfor sige, at vores datasæt er med \(n\) personer, og at andelen af personer, som svarer ja, betegnes med \(q\). Der vil derfor være \(q \cdot n\) personer, som svarer Ja og \((1-q) \cdot n\) personer, som svarer Nej.

NoteOpgave 5: Optimering af tabsfunktionen
  • Opskriv forskriften for \(E(p)\) med brug af \(n\) og \(q\) istedet for tal.
  • Vis vha. differentialregning, at \(p=q\) minimerer \(E(p)\).
  • Opskriv et udtryk for den mindste værdi af \(E(p)\) udtrykt vha. \(n\) og \(q\).

Tilbage til datasættet med de 200 punkter

Med disse overvejelser skal vi tilbage til datasættet med de 200 person om “skibidi toilet”. Vi skal se, om den model, vi trænede med appen, ser ud til måske at være trænet godt nok.

NoteOpgave 6: Vurder på den trænede model
  • Se i datasættet, hvilken værdi \(q\) har ved at tælle andelen af Ja svar.
  • Udregn værdien af \(E\) ud fra \(n\) og \(q\).
  • Sammenlign med den værdi, som træningen i opgave 1 gav for tabsfunktionen. Hvad fortæller det om den trænede model?
  • Brug appen med andre værdier på start-vægtene, learning-rate og/eller antal iterationer for at få værdien af tabsfunktionen, så lav som mulig.

Klassifikationsnøjagtigheden

Måske du i opgave 1 så på klassifikationsnøjagtigheden (CA). Hvis ikke, så lav opgave 1.

NoteOpgave 7: Vurder på CA for trænede model
  • Hvad blev CA i den trænede model i opgave 1?
  • Hvis modellen i stedet blindt giver 0 for alle input, hvad bliver CA så?
  • Hvis modellen i stedet blindt giver 1 for alle input, hvad bliver CA så?
  • Hvor høj vil du ud fra dette sige, at CA mindst skal være, før modellen kan være nogenlunde trænet?
  • Hvor høj en værdi af CA fik du til sidst i opgave 6?

Måske du har undret dig over, at vi både taler om værdien af tabsfunktionen og om CA, som jo begge siger noget om, hvor god modellen er.

NoteOpgave 8: Sammenhæng mellem CA og E
  • Overvej, om en mindre værdi af tabsfunktionen E altid giver samme eller højere værdi af klassifikationsnøjagtigheden CA.
  • overvej, om en større værdi af CA altid betyder, at E er lavere.
  • Beregn E og CA for datasættet med de 200 personer, hvis den trænede model bare altid giver \(o=1\) (Ja) som svar for alle personer.
  • Regn E og CA for datasættet for de 200 personer, hvis den trænede model giver \(o=0.55\) for alle personer med \(t=1\) og \(o=0.45\) for alle personer med \(t=0\).

Vi håber naturligvis, at vi ved at minimere værdien af tabsfunktionen får predikteret flere tilfælde korrekt, men som opgave 8 viser, så er der ikke 100% en sammenhæng mellem lavere værdi af tabsfunktionen og bedre klassefikationsnøjagtighed.

Løsninger til opgaver

ikke lavet endnu.

Facitliste.