Opdatering af vægte i en kunstig neuron
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
-1 | 2 | ja = 1 |
0 | 4 | nej = 0 |
1 | 7 | ja = 1 |
Vi vælger en learning rate på
sigmoid-funktionen som aktiveringsfunktion
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.
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.
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.
Cross-entropy som tabsfunktion
Du kan læse om cross-entropy i noten om tabsfunktioner.