Hallinnolliset tiedot
Otsikko | Opetusohjelma: Syväoppimisen perusta |
Kesto | 180 min (60 min per opetusohjelma) |
Moduuli | B |
Oppitunnin tyyppi | Opetusohjelma |
Keskittyminen | Tekninen – syväoppiminen |
Aihe | Eteenpäin ja takaisin levittäminen |
Avainsanoja
eteenpäin leviäminen, takaisinlisäys, yliparametrien viritys,
Oppimistavoitteet
- opiskelija ymmärtää etenemisen käsitteen
- opiskelija saa käsityksen siitä, miten johtaa backpropagation
- opiskelija voi hakea repropagointia
- opiskelija oppii tavan virittää hyperparametreja
Odotettu valmistelu
Oppimistapahtumat valmistuvat ennen
Pakollinen opiskelijoille
- John D Kelleher ja Brain McNamee. (2018), koneoppimisen perusteet ennakoivaa data-analytiikkaa varten, MIT Press.
- Michael Nielsen. (2015), Neural Networks and Deep Learning, 1. Päättäväinen lehdistö, San Francisco CA USA.
- Charu C. Aggarwal. (2018), Neural Networks and Deep Learning, 1. Springer
- Antonio Gulli, Sujit Pal. Syväoppiminen Keras, Packt, [ISBN: 9781787128422].
Valinnainen opiskelijoille
- Matriisien kertominen
- Numpyn käytön aloittaminen
- Tietoa lineaarisesta ja logistisesta regressiosta
Referenssejä ja taustaa opiskelijoille
Ei mitään.
Suositellaan opettajille
Ei mitään.
Oppituntimateriaalit
Ei mitään.
Ohjeita opettajille
Tämä oppimistapahtuma koostuu kolmesta opetusohjelmasta, jotka kattavat syväoppimisen perusaiheet. Tämä opetusohjelma sisältää yleiskuvan eteenpäin kulkevasta passista, backpropagationin johtamisesta ja koodin käytöstä, jotta opiskelijat saisivat yleiskuvan siitä, mitä kukin parametri tekee ja miten se voi vaikuttaa neuroverkon oppimiseen ja lähentymiseen:
- Eteenpäin eteneminen: Kynä- ja paperiesimerkkejä sekä python-esimerkkejä Numpyn (perusasiat) ja Kerasin avulla, jossa näkyy korkeatasoinen moduuli (joka käyttää Tensorflow 2.X).
- Backpropagation johtaminen ja levittäminen: Kynä- ja paperiesimerkkejä sekä python-esimerkkejä Numpyn (perusasiat) ja Kerasin avulla, jossa näkyy korkeatasoinen moduuli (joka käyttää Tensorflow 2.X).
- Hyperparametriviritys: Keras-esimerkkejä, joissa korostetaan esimerkkidiagnostiikkaa tiettyjen hyperparametrien muutosten vaikutusten perusteella (käyttämällä HCAIM- esimerkkidatajoukkoja eettisen tekoälyn opettamiseen (Census Dataset).
Toimitusmuistiot (luentojen mukaan)
- Sigmoidin käyttö ulkokerroksessa ja MSE häviöfunktiona.
- Pine-rajoituksilla valittiin yksilöllinen lähestymistapa/topologia/ongelmakonteksti. Tyypillisesti alkaisi regressio eteenpäin (MSE häviöfunktiona) ja johtaa backpropagation (jolloin on lineaarinen aktivointifunktio lähtökerroksessa, jossa tämä vähentää takaisinlisäysfunktion johtamisen monimutkaisuutta), Sitten siirryttäisiin tyypillisesti binääriseen luokitusfunktioon, jossa on sigmoidi lähtökerroksessa ja binaarinen risti-entropiahäviötoiminto. Aikarajoitusten myötä luennot käyttävät kolmea eri esimerkkiä piilotettuun aktivointiin, mutta käyttävät regressio-ongelmakontekstia. Jotta voidaan lisätä sigmoid-aktivaatiofunktion monimutkaisuus lähtökerroksessa, regressio-ongelma, jota käytetään tämän sarjan kahdessa ensimmäisessä luennossa, ongelmaesimerkki perustuu normalisoituun tavoitearvoon (0–1, joka perustuu prosenttiarvo-ongelmaan 0–1), joten sigmoidia käytetään aktivointifunktiona lähtökerroksessa. Tämän lähestymistavan avulla opiskelijat voivat helposti siirtyä regressio- ja binääriluokitusongelmien välillä yksinkertaisesti muuttamalla häviöfunktiota, jos binääriluokitusongelmaa käytetään tai jos käytetään ei-normalisoitua regressio-ongelmaa, opiskelija yksinkertaisesti poistaa ulkokerroksen aktivointifunktion.
- Ydinkomponentteja ovat korkean tason kirjaston käyttö, tässä tapauksessa KERAS TensorFlow 2.X -kirjaston kautta.
- Kynä ja paperi ovat valinnaisia, ja niitä käytetään vain eteenpäin kulkevan syötön ja takalevityksen johdannaisten ja sovellusten näyttämiseen (käyttäen esimerkkejä luentodioista).
- Python-koodia ilman korkean tason kirjastojen käyttöä käytetään osoittamaan, kuinka yksinkertainen neuroverkko (käyttäen esimerkkejä luentodioista). Tämä mahdollistaa myös keskustelun nopeasta numeerisesta/matriisien kertomisesta ja esittelee, miksi käytämme näytönohjaimia/TPU:ita valinnaisena elementtinä.
- Keras ja TensorFlow 2.X ovat käytössä ja niitä käytetään kaikissa tulevissa esimerkeissä.
Opetusohjelma 1 – Eteenpäin leviäminen
Opettajan ohjeet
- Tämä opetusohjelma esittelee opiskelijoille eteenpäin etenemisen perusteet keinotekoiselle hermoverkolle. Tämä opetusohjelma koostuu eteenpäin pass käyttäen kynää ja paperia, käyttäen Python vain Numpy kirjasto (matriisien manipulointi) ja sitten käyttämällä KERAS.. Tämä perustuu perustavanlaatuiseen ymmärrykseen siitä, mitä aktivointitoimintoja sovelletaan tiettyihin ongelmakonteksteihin ja miten aktivointitoiminnot eroavat laskennallisesta monimutkaisuudesta ja sovelluksesta kynästä ja paperista, koodista tyhjästä Numpyn avulla ja sitten käyttämällä korkeatasoista moduulia -> Keras.
- Opiskelijoille esitetään kolme ongelmaa:
- Ongelma 1: (Esimerkki 1 luennosta -> Kuva tämän WIKI: n RHS: stä) ja pyysi suorittamaan eteenpäin kulkua seuraavien parametrien avulla (20 minuuttia loppuun):
- Sigmoid aktivointitoiminto piilotettu kerros
- Sigmoid-aktivointitoiminto ulommalle kerrokselle
- MSE-häviötoiminto
- Ongelma 2: (Esimerkki 1 luennosta), oppilaita pyydetään (edellisestä koodauskokemuksesta riippuen) kehittämään hermoverkko tyhjästä käyttäen vain Numpy-moduulia ja painoja ja aktivointitoimintoja ongelmasta 1 (jotka ovat samat kuin Esimerkki 1 luennosta (20 minuuttia loppuun).
- Ongelma 3: (Esimerkki 1 luennosta ja käyttäen samaa esimerkkiä, mutta satunnaisia painoja), oppilaita pyydetään (edellisestä koodauskokemuksesta riippuen) kehittämään hermoverkko käyttäen Tensorflow 2.X -moduulia rakennetulla Keras-moduulilla ja painot ja aktivointitoiminnot ongelmasta 1, ja sitten käyttämällä satunnaisia painoja (jotka ovat samat kuin Esimerkki 1 luennosta: 20 minuuttia loppuun).
- Ongelma 1: (Esimerkki 1 luennosta -> Kuva tämän WIKI: n RHS: stä) ja pyysi suorittamaan eteenpäin kulkua seuraavien parametrien avulla (20 minuuttia loppuun):
- Näiden kolmen ongelman alatavoitteina on saada opiskelijat tottumaan peruskäsitteiden rakenteeseen ja soveltamiseen (aktivointifunktiot, topologia ja tappiofunktiot) syväoppimiseen.
Aika: 60 minuuttia
Kesto (Min) | Kuvaus |
---|---|
20 | Ongelma 1: Etukäteispassin kynä- ja paperitoteutus (esimerkki luennolta) |
20 | Ongelma 2: Neuroverkon kehittäminen tyhjästä Numpyn avulla (esimerkki luennosta) |
10 | Ongelma 3: Neuroverkon kehittäminen Kerasin käytöstä (esimerkki luennosta, jossa on asetettu painot ja satunnaispainot) |
10 | Yhteenveto eteenpäin suuntautuvasta läpäisyprosessista |
Opetusohjelma 2 – Backpropagation johtaminen ja soveltaminen
Opettajan ohjeet
- Tämä opetusohjelma esittelee opiskelijoille backpropagation oppimisalgoritmin perusteet keinotekoiselle hermoverkolle. Tämä opetusohjelma koostuu backpropagation-algoritmin johtamisesta kynän ja paperin avulla, sitten backpropagation-algoritmin soveltamisesta kolmeen eri piilotettuun kerroksen aktivointitoimintoon (Sigmoid, Tan H ja ReLu), käyttäen Pythonia vain Numpy-kirjaston kanssa (matriisien manipulointiin) ja sitten KERAS.. Tämä perustuu perustavanlaatuiseen ymmärrykseen vaihtelevista aktivointifunktioista, kun hermoverkko oppii ja miten aktivointitoiminnot eroavat laskennallisesta monimutkaisuudesta ja sovelluksesta kynästä ja paperista koodiin Numpyn avulla ja sitten käyttämällä korkeatasoista moduulia -> Keras.
- Huom. Topologia on sama kuin luento 1/Tutorial 1, mutta painot ja panokset ovat erilaisia, voit tietenkin käyttää samoja painoja.
- Opiskelijoille esitetään neljä ongelmaa (ensimmäinen on valinnainen tai lisämateriaali):
- Ongelma 1: Backpropagation-algoritmin johtaminen (käyttäen Sigmoid-funktiota sisä- ja ulkoaktivaatiofunktioille ja MSE: lle tappiofunktiona), oppilaita pyydetään johtamaan backpropagation kaava (20 minuuttia loppuun).
- Ongelma 2: Opiskelija soveltaa kolme aktivointitoimintoa yhden painon päivitys (SGD backpropagation), käyttäen kynää ja paperia (20 minuuttia):
- Sigmoid (Piilotettu kerros), Sigmoid (Outer Layer) ja MSE
- Tan H (Piilotettu kerros), Sigmoid (Outer Layer) ja MSE
- ReLU (piilotettu kerros), Sigmoid (Outer Layer) ja MSE
- Ongelma 3: Oppilaita pyydetään (edellisestä koodauskokemuksesta riippuen) kehittämään hermoverkko tyhjästä käyttäen vain Numpy-moduulia ja painoja ja aktivointitoimintoja, joissa on mahdollisuus valita mistä tahansa piilotetusta tason aktivointitoiminnosta painojen päivittämiseksi SGD: llä (20 minuuttia loppuun).
- Ongelma 4: Oppilaita pyydetään (edellisestä koodauskokemuksesta riippuen) kehittämään hermoverkko käyttäen Tensorflow 2.X -moduulia rakennetulla Keras-moduulilla ja painot ja aktivointitoiminnot ja sitten käyttämällä satunnaisia painoja yhden tai useamman painon päivittämiseksi. Ei, koska Keras käyttää hieman erilaista MSE-tappiota, tappio vähenee nopeammin Keras-esimerkissä.
- Keras MSE = tappio = neliö(y_true – y_pred)
- Opetusohjelma MSE = tappio = (neliö(y_true – y_pred))*0.5
- Näiden kolmen ongelman alatavoitteet on saada opiskelijat ymmärtämään backpropagation-algoritmia, soveltamaan sitä niin, että hypermetriviritys, opiskelijat pystyvät paremmin ymmärtämään hyperparametrien vaikutuksia.
Aika: 60 minuuttia
Kesto (Min) | Kuvaus |
---|---|
20 (valinnainen) | Ongelma 1: Backpropagation kaavan johtaminen Sigmoid-funktiolla sisä- ja ulkoaktivaatiofunktioille ja MSE häviöfunktiona (valinnainen) |
20 | Ongelma 2: Opiskelija soveltaa kolme aktivointitoimintoa yhden painon päivitys (SGD backpropagation), käyttäen kynää ja paperia (20 minuuttia): |
20 | Ongelma 3: Opiskelijat kehittävät hermoverkon tyhjästä käyttäen vain Numpy-moduulia, jossa käyttäjä voi valita mistä tahansa kolmesta piilotetusta kerroksen aktivointitoiminnosta, joissa koodi voi esimuodostella backpropagation |
10 | Ongelma 4: Opiskelijat käyttävät Tensorflow 2.X -moduulia sisäänrakennetulla Keras-moduulilla, esimuotoilemalla takaisinpropagointia SGD: llä. |
10 | Yhteenveto eteenpäin suuntautuvasta läpäisyprosessista |
Opetusohjelma 3 – Hyperparametrin viritys
Opettajan ohjeet
- Tämä opetusohjelma esittelee opiskelijoille hyperparametrin tunning perusteet keinotekoiselle hermoverkolle. Tämä opetusohjelma koostuu useiden hyperparametrien seuraamisesta ja sen jälkeen arvioinnista käyttäen samoja malleja kuin luennolla (luku 3). Tämä opetusohjelma keskittyy hyperparametrien järjestelmälliseen muuttamiseen ja diagnostisten koealojen arviointiin (käyttäen häviötä – mutta tätä voidaan helposti muokata tarkkuuteen, koska se on luokitteluongelma) käyttäen laskentatietoaineistoa. Tämän opetusohjelman lopussa (askel askeleelta esimerkkejä) opiskelijoiden odotetaan suorittavan käytännön ja lisäarvioinnin oikeudenmukaisuudesta (perustuu osajoukon suorituskyvyn arviointiin).
- Huomautuksia:
- Tietoaineistolle tehdään esikäsittely (sisältyy muistikirjaan), mutta tämä on pienin, jotta tietoaineisto toimisi ANN: n kanssa. Tämä ei ole kattava eikä sisällä minkäänlaista arviointia (puolueellisuus/oikeudenmukaisuus).
- Käytämme diagnostisia havaintoja hyperparametrin tunning vaikutuksen arviointiin ja erityisesti keskittymään menetykseen, jossa on huomattava, että häviön kuvaamiseen käyttämämme moduuli on matplotlib.pyplot, joten akseli skaalataan. Tämä voi tarkoittaa sitä, että merkittävät erot eivät välttämättä vaikuta merkittäviltä tai päinvastoin, kun verrataan koulutus- tai testitietojen menetystä.
- Joitakin rakennustelineiden vapauksia esitetään, kuten Epochsin käyttö ensin (lähes normalisointimenetelmänä) samalla kun erän koko pysyy vakiona.
- Selkeiden esimerkkien antamiseksi (esim. ylisovitus) muita hyperparametreja on voitu lisätä, jotta esimerkkeinä voidaan esittää selkeitä diagnostisia havaintoja.
- Kun kohtuullinen kapasiteetti ja syvyys on tunnistettu, tämä samoin kuin muut hyperparametrit on lukittu seuraaville esimerkeille mahdollisuuksien mukaan.
- Lopuksi jotkut solut voivat kestää jonkin aikaa treenata, jopa GPU pääsy.
- Opiskelijat esitellään useita vaiheita opetusohjelma:
- Vaihe 1: Aikuislaskennan aineiston perusesikäsittely
- Vaihe 2: Kapasiteetti ja syvyys tunning (mukaan lukien seuraavat esimerkit):
- Ei lähentymistä
- Alivarustelu
- Ylisovitus
- Lähentyminen
- Vaihe 3: Aikajaksot (valmennuksen lisäksi ja sen jälkeen, kun sitä ei oteta käyttöön virallisena laillistamismenetelmänä)
- Vaihe 4: Aktivointitoiminnot (suorituksen osalta – harjoitusaika ja joissakin tapauksissa menetys)
- Vaihe 5: Oppimisasteet (mukaan lukien seuraavat esimerkit):
- SGD Vanilla
- SGD, jossa oppimisprosentti rappeutuu
- SGD vauhdilla
- Sopeutumiskykyiset oppimisasteet:
- RMSProp
- AdaGrad
- Adam
- Näiden viiden osan alatavoitteina on tarjota opiskelijoille esimerkkejä ja kokemusta tunning-hyperparametreista ja arvioida vaikutuksia diagnostisten koealojen avulla.
Aika: 60 minuuttia
Kesto (Min) | Kuvaus |
---|---|
5 | Tietojen esikäsittely |
10 | Kapasiteetti ja syvyys tunning (alle ja yli) |
10 | Aikakaudet (koulutus alle ja yli) |
10 | Eräkoot (melunvaimennus) |
10 | Aktivointitoiminnot (ja niiden vaikutukset suorituskykyyn – aika ja tarkkuus) |
10 | Oppimisasteet (vanilla, LR Decay, Momentum, Adaptive) |
5 | Yhteenveto joistakin niitien hyperparametreista (ReLu, Adam) ja muiden (kapasiteetti ja syvyys) tunningista. |
Tunnustukset
Keith Quille (TU Dublin, Tallaghtin kampus) http://keithquille.com
Human-Centered AI Masters -ohjelmaa rahoitettiin Euroopan unionin Verkkojen Eurooppa -välineestä (CEF-TC-2020–1 Digital Skills 2020-EU-IA-0068).