Administrative oplysninger
Titel | Vejledning: Grundlæggende for dyb læring |
Varighed | 180 min (60 min pr. tutorial) |
Modul | B |
Lektionstype | Tutorial |
Fokus | Teknisk — Dyb læring |
Emne | Frem og tilbagepropagation |
Nøgleord
fremad formering, backpropagation, hyperparameter tuning,
Læringsmål
- studerende forstår begrebet forward propagation
- studerende får overblik over, hvordan man udleder backpropagation
- studerende kan anvende backpropagation
- studerende lærer måden at tune hyperparametre på
Forventet forberedelse
Læringsbegivenheder, der skal fuldføres før
Obligatorisk for studerende
- John D. Kelleher og Brain McNamee. (2018), Fundamentals of Machine Learning for Predictive Data Analytics, MIT Press.
- Michael Nielsen. (2015), Neural Networks and Deep Learning, 1. Beslutsomhed presse, San Francisco CA USA.
- Charu C. Aggarwal. (2018), Neural Networks and Deep Learning, 1. Springer
- Antonio Gulli, Sujit Pal. Dyb læring med Keras, Packt, [ISBN: 9781787128422].
Valgfrit for studerende
- Multiplikation af matricer
- Kom i gang med Numpy
- Kendskab til lineær og logistisk regression
Referencer og baggrund for studerende
Ingen.
Anbefalet til lærerne
Ingen.
Undervisningsmaterialer
Ingen.
Instruktioner til lærerne
Denne læringsbegivenhed består af tre sæt tutorials, der dækker grundlæggende dybe læringsemner. Denne tutorial serie består i at give et overblik over en forward pass, afledning af backpropagation og brug af kode til at give et overblik over, hvad hver parameter gør, og hvordan det kan påvirke læring og konvergens af et neuralt netværk:
- Fremskudt udbredelse: Eksempler på pen og papir samt pythoneksempler ved hjælp af Numpy (for grundstoffer) og Keras, der viser et modul på højt niveau (som bruger Tensorflow 2.X).
- Udarbejdelse og anvendelse af backpropagation: Eksempler på pen og papir samt pythoneksempler ved hjælp af Numpy (for grundstoffer) og Keras, der viser et modul på højt niveau (som bruger Tensorflow 2.X).
- Hyperparameterindstilling: Keras eksempler, der fremhæver eksemplariske diagnostiske plots baseret på virkningerne for at ændre specifikke hyperparametre (ved hjælp af et HCAIM-eksempel datasæt datasæt til undervisning i etisk AI (Census Dataset).
Notater til levering (pr. forelæsninger)
- Brug af Sigmoid i det ydre lag og MSE som tabsfunktion.
- Med tine begrænsninger blev der valgt en unik tilgang/topologi/problemkontekst. Typisk ville man starte med regression for en forward pass (med MSE som tabsfunktion), og for at udlede backpropagation (således at have en lineær aktiveringsfunktion i outputlaget, hvor dette reducerer kompleksiteten af afledningen af backpropagation-funktionen), Så ville man typisk flytte til en binær klassifikationsfunktion, med sigmoid i outputlaget og en binær crossentropi tab funktion. Med tidsbegrænsninger vil dette sæt foredrag bruge tre forskellige eksempel skjulte aktiveringsfunktioner, men vil bruge en regression problem kontekst. For at tilføje kompleksiteten af en sigmoid aktiveringsfunktion i outputlaget, regressionsproblemet, der anvendes i de to første foredrag i dette sæt, er problemeksemplet baseret på en normaliseret målværdi (0-1 baseret på et procentvist problem 0-100 %), og sigmoid bruges således som en aktiveringsfunktion i outputlaget. Denne tilgang giver eleverne mulighed for nemt at migrere mellem regression og binære klassificeringsproblemer, ved blot at ændre tabsfunktionen, hvis et binært klassifikationsproblem, eller hvis et ikke-normaliseret regressionsproblem anvendes, fjerner den studerende simpelthen den ydre lagaktiveringsfunktion.
- Kernekomponenter er anvendelsen af et højt niveau bibliotek, i dette tilfælde KERAS via TensorFlow 2.X bibliotek.
- Pen og papir er valgfrit og bruges kun til at vise forward pass og backpropagation afledning og anvendelse (ved hjælp af eksemplerne fra foredrag dias).
- Python kode uden brug af højt niveau biblioteker, bruges til at vise, hvor simpelt et neuralt net (ved hjælp af eksemplerne fra foredrag dias). Dette giver også mulighed for diskussion om hurtig numerisk/matricer multiplikation og introducere hvorfor vi bruger GPU'er/TPU'er som et valgfrit element.
- Keras og TensorFlow 2.X bruges og vil blive brugt til alle fremtidige eksempler.
Tutorial 1 — Forward udbredelse
Lærerinstruktioner
- Denne tutorial vil introducere eleverne til de grundlæggende elementer i fremadrettet udbredelse for et kunstigt neuralt netværk. Denne tutorial vil bestå af en forward pass ved hjælp af pen og papir, ved hjælp af Python med kun Numpy bibliotek (til matricer manipulation) og derefter bruge KERAS.. Dette vil bygge på den grundlæggende forståelse af, hvilke aktiveringsfunktioner der gælder for specifikke problemkontekster, og hvordan aktiveringsfunktionerne adskiller sig i beregningsmæssig kompleksitet og applikationen fra pen og papir, til kode fra bunden ved hjælp af Numpy og derefter ved hjælp af et højt niveau modul -> Keras.
- Eleverne vil blive præsenteret for tre problemer:
- Problem 1: (Eksempel 1 fra forelæsningen -> Billede på RHS af denne WIKI) og bedt om at gennemføre en fremkørsel ved hjælp af følgende parametre (20 minutter at fuldføre):
- Sigmoid aktiveringsfunktion for det skjulte lag
- Sigmoid aktiveringsfunktion for det ydre lag
- MSE tabsfunktion
- Problem 2: (Eksempel 1 fra forelæsningen) vil eleverne blive bedt om (med vejledning afhængigt af den forudgående kodningserfaring) at udvikle et neuralt netværk fra bunden ved hjælp af kun Numpy-modulet og vægte og aktiveringsfunktioner fra problem 1 (som er de samme som eksempel 1 fra forelæsningen (20 minutter til at fuldføre).
- Problem 3: (Eksempel 1 fra foredraget og ved hjælp af det samme eksempel, men tilfældige vægte), vil eleverne blive bedt om (med vejledning afhængigt af den forudgående kodningserfaring) at udvikle et neuralt netværk ved hjælp af Tensorflow 2.X-modulet med inbuild Keras-modulet og vægte og aktiveringsfunktioner fra problem 1, og derefter bruge tilfældige vægte (som er de samme som eksempel 1 fra foredraget: 20 minutter til færdiggørelse).
- Problem 1: (Eksempel 1 fra forelæsningen -> Billede på RHS af denne WIKI) og bedt om at gennemføre en fremkørsel ved hjælp af følgende parametre (20 minutter at fuldføre):
- Delmålene for disse tre problemer er at få eleverne til at vænne sig til strukturen og anvendelsen af grundlæggende begreber (aktiveringsfunktioner, topologi og tabsfunktioner) til dyb læring.
Klokkeslæt: 60 minutter
Varighed (min.) | Beskrivelse |
---|---|
20 | Problem 1: Pen og papir implementering af en forward pass (eksempel fra foredraget) |
20 | Problem 2: Udvikling af et neuralt netværk fra bunden ved hjælp af Numpy (eksempel fra foredraget) |
10 | Problem 3: Udvikling af et neuralt netværk ved hjælp af Keras (eksempel fra foredraget med faste vægte og tilfældige vægte) |
10 | Opsummering af forward pass-processen |
Tutorial 2 — Derivation og anvendelse af backpropagation
Lærerinstruktioner
- Denne tutorial vil introducere eleverne til de grundlæggende elementer i backpropagation læringsalgoritme for et kunstigt neuralt netværk. Denne tutorial vil bestå af afledning af backpropagation algoritme ved hjælp af pen og papir, derefter anvendelse af backpropagation algoritme til tre forskellige skjulte lag aktivering funktioner (Sigmoid, Tan H og ReLu), ved hjælp af Python med kun Numpy bibliotek (til matricer manipulation) og derefter bruge KERAS.. Dette vil bygge på den grundlæggende forståelse af varierende aktiveringsfunktioner, når et neuralt netværk lærer, og hvordan aktiveringsfunktionerne adskiller sig i beregningsmæssig kompleksitet og applikationen fra pen og papir, til kode fra bunden ved hjælp af Numpy og derefter ved hjælp af et højt niveau modul -> Keras.
- Bemærkning: Topologien er den samme som lektion 1/Tutorial 1, men vægtene og indgangene er forskellige, du kan selvfølgelig bruge de samme vægte.
- De studerende vil blive præsenteret for fire problemer (den første er valgfri eller som ekstra materiale):
- Problem 1: Afledningen af bakpropagationsalgoritmen (ved hjælp af Sigmoid-funktionen til de indre og ydre aktiveringsfunktioner og MSE som tabsfunktion), vil eleverne blive bedt om at udlede backpropagation formel (20 minutter at fuldføre).
- Problem 2: Studerende vil anvende tre aktiveringsfunktioner til en enkelt vægtopdatering (SGD backpropagation), ved hjælp af pen og papir i (20 minutter):
- Sigmoid (skjult lag), Sigmoid (Outer Layer) og MSE
- Tan H (skjult lag), Sigmoid (Outer Layer) og MSE
- ReLU (skjult lag), Sigmoid (Outer Layer) og MSE
- Problem 3: Studerende vil blive bedt om at udvikle et neuralt netværk fra bunden ved hjælp af kun Numpy-modulet og vægte og aktiveringsfunktioner, hvor muligheden for at vælge fra en hvilken som helst skjult lagaktiveringsfunktion er tilgængelig for at opdatere vægtene ved hjælp af SGD (20 minutter at fuldføre).
- Problem 4: Studerende vil blive bedt om at udvikle et neuralt netværk ved hjælp af Tensorflow 2.X-modulet med inbuild Keras-modulet og vægte og aktiveringsfunktioner og derefter bruge tilfældige vægte til at fuldføre en eller flere vægtopdateringer. Venligst ikke da Keras bruger en lille anden MSE tab, tabet reducerer hurtigere i Keras eksempel.
- Keras MSE = tab = kvadrat(y_true — y_pred)
- Tutorial MSE = tab = (kvadrat(y_true — y_pred))*0.5
- Delmålene for disse tre Problemer, er at få eleverne til at forstå backpropagation algoritmen, anvende den, så for hypermeter tuning, de studerende vil være i stand til bedre at forstå hyperparameter effekter.
Klokkeslæt: 60 minutter
Varighed (min.) | Beskrivelse |
---|---|
20 (valgfrit) | Problem 1: afledning af rygpropagationsformlen ved hjælp af Sigmoid-funktionen for de indre og ydre aktiveringsfunktioner og MSE som tabsfunktion (valgfri) |
20 | Problem 2: Studerende vil anvende tre aktiveringsfunktioner til en enkelt vægtopdatering (SGD backpropagation), ved hjælp af pen og papir i (20 minutter): |
20 | Problem 3: Studerende vil udvikle et neuralt netværk fra bunden ved hjælp af kun Numpy-modulet, hvor brugeren kan vælge fra en af tre skjulte lag aktiveringsfunktioner, hvor koden kan præforme backpropagation |
10 | Problem 4: Studerende vil bruge Tensorflow 2.X modul med inbuild Keras modul, preform backpropagation ved hjælp af SGD. |
10 | Opsummering af forward pass-processen |
Tutorial 3 — Hyperparameter tuning
Lærerinstruktioner
- Denne tutorial vil introducere eleverne til de grundlæggende elementer i hyperparameter tunning for et kunstigt neuralt netværk. Denne tutorial vil bestå af efterfølgelse af flere hyperparametre og derefter evaluering ved hjælp af de samme modeller konfigurationer som forelæsningen (foredrag 3). Denne tutorial vil fokusere på den systematiske ændring af hyperparametre og evaluering af de diagnostiske plots (ved hjælp af tab — men dette kunne let ændres for nøjagtighed, da det er et klassificeringsproblem) ved hjælp af Census Dataset. I slutningen af denne tutorial (trin for trin eksempler) studerende forventes at fuldføre en Praktisk med yderligere evaluering for retfærdighed (baseret på delsæt ydeevne evaluering).
- Bemærkninger:
- Der udføres forbehandling på datasættet (inkluderet i notesbogen), men dette er minimum for at få datasættet til at arbejde med ANN. Dette er ikke omfattende og omfatter ikke nogen evaluering (bias/fairness).
- Vi vil bruge diagnostiske plots til at evaluere effekten af hyperparameter tunning og især fokus på tab, hvor det skal bemærkes, at det modul, vi bruger til at afbilde tabet er matplotlib.pyplot, således aksen er skaleret. Dette kan betyde, at væsentlige forskelle kan forekomme ikke signifikante eller omvendt, når man sammenligner tabet af trænings- eller testdata.
- Nogle friheder for stilladser præsenteres, såsom brugen af Epochs først (næsten som en regularisering teknik), samtidig med at Batch størrelse konstant.
- For at give klare eksempler (dvs. overfitting) kan der være medtaget yderligere justeringer til andre hyperparametre for at give klare diagnostiske plots for eksempler.
- Når der er identificeret en rimelig kapacitet og dybde, er dette såvel som andre hyperparametre låst for at følge eksempler, hvor det er muligt.
- Endelig kan nogle af cellerne tage lidt tid at træne, selv med GPU-adgang.
- De studerende vil blive præsenteret for flere trin til tutorial:
- Trin 1: Nogle grundlæggende forbehandling til Voksen Census datasæt
- Trin 2: Kapacitet og dybdejustering (herunder følgende eksempler):
- Ingen konvergens
- Underfitting
- Overfitting
- Konvergens
- Trin 3: Epoker (over og under uddannelse — uden at indføre det som en formel legaliseringsteknik)
- Trin 4: Aktiveringsfunktioner (med hensyn til ydeevne — træningstid og i nogle tilfælde tab)
- Trin 5: Læringsrater (herunder følgende eksempler):
- SGD Vanilla
- SGD med indlæringshastighed henfald
- SGD med momentum
- Adaptive læringsrater:
- RMSProp
- AdaGrad
- Adam
- Delmålene for disse fem dele er at give eleverne eksempler og erfaring med at tune hyperparametre og evaluere virkningerne ved hjælp af diagnostiske plots.
Klokkeslæt: 60 minutter
Varighed (min.) | Beskrivelse |
---|---|
5 | Forbehandling af oplysningerne |
10 | Kapacitet og dybdeindstilling (under og over montering) |
10 | Epoker (under og over uddannelse) |
10 | Batchstørrelser (til støjdæmpning) |
10 | Aktiveringsfunktioner (og deres virkninger på ydeevne — tid og nøjagtighed) |
10 | Læringshastigheder (vanilje, LR Decay, Momentum, Adaptive) |
5 | Opsummering på nogle korte hyperparametre (ReLu, Adam) og tunning af andre (kapacitet og dybde). |
Anerkendelser
Keith Quille (TU Dublin, Tallaght Campus) http://keithquille.com
Programmet Human-Centered AI Masters blev samfinansieret af Connecting Europe-faciliteten i Den Europæiske Union under tilskud CEF-TC-2020-1 Digital Skills 2020-EU-IA-0068.