Mikä on Dropout? Reduce overfitting in your neural networks

Viimeisin päivitetty 17. joulukuuta 2019

Kouluttaessasi neuroverkkoja tavoitteesi on tuottaa malli, joka suoriutuu todella hyvin.

Tämä on täysin järkevää, sillä ei ole mitään järkeä käyttää mallia, joka ei suoriudu.

On kuitenkin olemassa suhteellisen kapea tasapaino, joka sinun on säilytettävä, kun yrität löytää täydellisen hyvin suoriutuvan mallin.

Se on tasapaino ali- ja ylisovittamisen välillä.

Välttääksesi alisovittamisen (jolla on mahdollista huonompi ennustuskyky), voit jatkaa harjoittelua, kunnes koet toisen ongelman – ylisovittamisen eli liian herkän harjoitusdatan suhteen. Molemmat haittaavat mallin suorituskykyä.

Joskus alue, jolla mallisi ei ole ali- eikä ylisovitettu, on todella pieni. Onneksi sitä voidaan laajentaa soveltamalla niin sanottua regularisaattoria – tekniikkaa, joka regularisoi sitä, miten malli käyttäytyy harjoittelun aikana, viivyttääkseen ylisovittamista jonkin aikaa.

Dropout on tällainen regularisointitekniikka. Tässä blogikirjoituksessa käsittelemme sitä tarkastelemalla paria asiaa. Ensinnäkin sukellamme tarkemmin ali- ja ylisovituksen väliseen eroon, jotta saamme syvemmän ymmärryksen näistä kahdesta. Toiseksi esittelemme Dropoutin akateemisiin teoksiin perustuen ja kerromme, miten se toimii. Kolmanneksi tarkastelemme, toimiiko se todella, kuvaamalla erilaisia tällä tekniikalla tehtyjä kokeita. Lopuksi vertaamme perinteistä Dropoutia ja Gaussin Dropoutia – ja miten se muuttaa mallin harjoittelua.

Valmiina? Let’s go! 😎

Miten hyvin mallisi toimii? Ali- ja ylisovitus

Katsotaan ensin, mitä ali- ja ylisovitus ovat.

Koulutusta aloittaessasi neuronien painot alustetaan todennäköisesti satunnaisesti tai jollain muulla alustusstrategialla. Tämä tarkoittaa, että virheprosentti eli häviöarvo on hyvin korkea ensimmäisten epookkien aikana. Katso tätä kaaviota, jossa tappio pienenee hyvin nopeasti ensimmäisten epookkien aikana:

Kun sekä koulutustappio että validointitappio pienenevät, sanotaan, että malli on alifitoitu: sitä voidaan vielä kouluttaa tekemään parempia ennusteita eli lisäämään ennustuskykyään.

Tällöin tehtävänä toimenpiteenä on jatkaa harjoittelua.

Tämä ei kuitenkaan voi jatkua ikuisesti. Mallin optimointiin kuuluu validointiennusteiden tuottaminen validointidatan avulla, jolloin saadaan tappioarvot ja gradientit optimointia varten, joka sitten suoritetaan. Valitettavasti tämä tarkoittaa, että osa datan ideosynkraattisuudesta vuotaa mallin painoihin. Toisin sanoen, koska data on otos eikä täysi populaatio, se on aina hieman erilainen kuin sen edustama täysi populaatio. Kun optimoit mallia satojen epookkien ajan tällä datalla, saat aina poikkeaman suhteessa tähän todelliseen populaatioon.

Jos jatkaisit harjoittelua, mallisi sopeutuisi yhä enemmän ja enemmän näihin ideosynkraattisiin piirteisiin, jolloin se soveltuisi huonommin dataan, jota se ei ole koskaan ennen nähnyt – eli muihin populaation näytteisiin. Mallin sanotaan tällöin olevan overfit: se on sopeutunut liian hyvin harjoitus- ja validointidataan.

Tauotetaan hetkeksi! 👩💻

Blogit osoitteessa MachineCurve opettaa Machine Learning for Developers. Tilaa MachineCurven ilmainen Machine Learning -päivitys jo tänään! Opit uusia asioita ja ymmärrät paremmin jo tuntemiasi käsitteitä.
Lähetämme sähköposteja vähintään joka perjantai. Tervetuloa!

Rekisteröitymällä annat suostumuksesi siihen, että kaikki saamasi tiedot voivat sisältää palveluja ja erikoistarjouksia sähköpostitse.

Ylisovitus voidaan havaita yllä olevan kaltaisista kuvaajista tarkastelemalla validointihäviötä: kun se taas nousee, kun taas harjoitteluhäviö pysyy vakiona tai pienenee, tiedät, että mallisi on ylisovituksessa. Kuten näet, yllä olevassa kuvaajassa oleva ELU-käyttöinen verkko on alkanut ylisovittua hyvin lievästi.

Välttää kannattaa sekä ali- että ylisovittamista, sillä silloin mallisi suoriutuu huonommin kuin se voisi teoriassa suoriutua. Onneksi tiettyjä tekniikoita – joita kutsutaan regularisaattoreiksi – voidaan käyttää vähentämään ylisovittamisen vaikutusta. Pudotus on yksi niistä – ja käsittelemme sitä tässä blogissa. Aloitetaan analysoimalla, mikä Dropout on, mitä se tekee ja miten se toimii.

Mikä on Dropout ja miten se toimii?

Paperissaan ”Dropout: A Simple Way to Prevent Neural Networks from Overfitting” Srivastava et al. (2014) kuvaavat Dropout-tekniikkaa, joka on stokastinen regularisointitekniikka ja sen pitäisi vähentää ylisovittamista yhdistämällä (teoreettisesti) monia erilaisia neuroverkkoarkkitehtuureja.

Dropoutin avulla koulutusprosessi pudottaa olennaisesti neuroneita neuroverkosta. Ne poistetaan väliaikaisesti verkosta, mikä voidaan havainnollistaa seuraavasti:

Huomaa, että myös yhteydet eli synapsit poistetaan, eikä näiden neuronien kautta siis enää kulje dataa.

…mutta vain hyvin lyhytaikaisesti! Tämä prosessi toistuu joka epookki (tai jopa joka minierä! – Srivastava et al. 2014), ja näin ollen näytteenotto ohennetuista verkoista tapahtuu hyvin usein. Tämän pitäisi johtaa huomattavasti alhaisempiin yleistysvirheisiin (eli ylisovittamiseen), koska ”neuronien läsnäolo tehdään epäluotettavaksi” (Srivastava et al., 2014).

Tämä neuronien ja synapsien poistaminen harjoittelun aikana suoritetaan sattumanvaraisesti parametrilla \(p\), joka on viritettävissä (tai empiiristen testien perusteella parhaiten asetetaan arvoon 0,5 piilotetuille kerroksille ja lähelle arvoa 1,0 sisääntulokerrokselle). Tämä tarkoittaa käytännössä sitä, että kirjoittajien mukaan ”harvennetusta” verkosta otetaan näyte globaalista arkkitehtuurista, ja sitä käytetään koulutuksessa.

Testihetkellä ”ei ole mahdollista eksplisiittisesti keskiarvoistaa ennusteita eksponentiaalisesti monista harvennetuista malleista” (Srivastava et al., 2014). Tämä on totta: siitä tulisi laskennallinen taakka, kun satojatuhansia epokseja/minibatcheja pitäisi keskiarvoistaa, varsinkin kun verkostoista tulee todella suuria.

Se onneksi on olemassa ratkaisu – joka on yksinkertainen, mutta tuottaa saman tuloksen. Käyttämällä yhtä neuroverkkoa, jossa painojen ulostulot skaalataan alaspäin sen \(p\) mukaan, jolla yksikkö säilytettiin koulutuksen aikana. Tämä tarkoittaa, että odotettu ulostulo koulutushetkellä on sama kuin todellinen ulostulo testihetkellä, mikä ratkaisee laskennallisen ongelman ja tekee Dropoutista käytännössä käyttökelpoisen.

Bernoulli-muuttujat

Katsotaan nyt, miten Dropout toimii matemaattisesti. Älä huoli, emme hautaa sinua matematiikalla, vaan yritämme ottaa hyvin intuitiivisen näkökulman.

Hyvin yksinkertaistaen, näin neuroni saa syötteensä: esim. kolme ylävirran neuronia kolmen neuronin tiheässä kerroksessa lähettää tuotoksensa seuraavalle kerrokselle, jossa se vastaanotetaan syötteenä. Huomaa, että yksinkertaisuuden vuoksi jätämme bias-arvot tässä pois.

Normaali neuroni (oletetaan olevan ilman biasia)

Tästä on hyvin yksinkertaista siirtyä Dropout-neuroniin, joka näyttää seuraavalta:

Dropout-neuroni (oletetaan olevan ilman biasia)

Matemaattisesti kyse on niin sanotuista bernoulli-sattumanvaraisista:

Todennäköisyysteoriassa ja tilastotieteessä sveitsiläisen matemaatikon Jacob Bernoullin mukaan nimetty Bernoulli-jakauma on sellaisen satunnaismuuttujan diskreetti todennäköisyysjakauma, joka ottaa arvon 1 todennäköisyydellä \(p\).

Wikipediassa Bernoulli-jakaumasta

Pudotuksen luomiseksi Srivastava et al. (2014) liittivät verkon neuroneihin Bernoulli-muuttujia (kertomalla ne neuronien ulostuloilla), ”joista jokainen todennäköisyydellä \(p\) on 1″. \(p\)-arvon valitsee tässä koneoppimisinsinööri, yleensä jonkin validointijoukon perusteella tai naiivisti asetettuna arvoon 0,5.

Ei koskaan jää paitsi uusista koneoppimisen artikkeleista ✅

Blogit osoitteessa MachineCurve opettaa koneoppimista kehittäjille. Tilaa MachineCurven ilmainen Machine Learning -päivitys jo tänään! Opit uusia asioita ja ymmärrät paremmin jo tuntemiasi käsitteitä.
Lähetämme sähköposteja vähintään joka perjantai. Tervetuloa!

Rekisteröitymällä annat suostumuksesi siihen, että kaikki saamasi tiedot voivat sisältää palveluja ja erikoistarjouksia sähköpostitse.

Verkon sisällä Bernoulli-muuttuja ja sen arvo 1 tai 0 määrittää, ”pudotetaanko neuroni pois” tämän epookin tai minibatch-syöttöennakon aikana. Tämä johtaa käytännössä ’ohennettuun verkkoon’, josta Srivastava et al. (2014) puhuvat.

Miksi Dropout voisi vähentää ylisovittamista?

Voit nyt miettiä: miksi tavallisiin neuroverkkoihin liitetyt Bernoulli-muuttujat, jotka tekevät verkosta ohuemman, vähentävät ylisovittamista?

Vastauksen saamiseksi tähän kysymykseen on tarkasteltava sitä, miten neuroverkkoja koulutetaan.

Vakiintuneesti tähän käytetään backpropagationia ja gradienttilaskeutumista tai vastaavaa optimoijaa. Kun annetaan tappioarvo, lasketaan niin sanotut ”gradientit”, jotka optimoija sitten käsittelee verkon painoihin. Käyttämällä näitä gradientteja (suhteessa virhearvoon) painojen muuttamiseen, verkko todennäköisesti suoriutuu hieman paremmin seuraavassa koulutusprosessin iteraatiossa.

Gradientin laskeminen tehdään suhteessa virhearvoon, mutta myös suhteessa siihen, mitä kaikki muut yksiköt tekevät (Srivastava et al., 2014). Tämä tarkoittaa, että tietyt neuronit voivat painojensa muutosten kautta korjata muiden neuronien virheet. Nämä, Srivastava et al. (2014) väittävät, johtavat monimutkaisiin yhteisadaptaatioihin, jotka eivät välttämättä yleisty näkymättömään dataan, mikä johtaa ylisovittamiseen.

Pudotus siis estää näitä yhteisadaptaatioita tekemällä – kuten aiemmin kirjoitimme – muiden piilotettujen läsnäolon epäluotettavaksi. Neuronit eivät yksinkertaisesti voi luottaa siihen, että muut yksiköt korjaavat niiden virheet, mikä vähentää sellaisten yhteisadaptaatioiden määrää, jotka eivät yleisty näkymättömään dataan, ja siten oletettavasti vähentää myös ylisovittamista.

Neuraalisten verkkojen kouluttaminen Dropoutin kanssa

Neuraalisten verkkojen kouluttaminen, joihin Dropout on liitetty, on melko lailla samanlaista kuin hermoverkkojen kouluttaminen ilman Dropoutia. Stokastista gradienttilaskeutumista tai vastaavia optimoijia voidaan käyttää. Ainoa ero, kuten Srivastava et al. (2014) raportoivat, löytyy käytettäessä minibatch-lähestymistapaa: epookkikohtaisen näytteenoton sijaan harvennettuja verkkoja näytteistetään minibatch-kohtaisesti.

Lisäksi voidaan käyttää myös menetelmiä, jotka parantavat klassista SGD:tä – kuten momentum – ja ne osoittavat samanlaisia parannuksia kuin tavallisilla neuroverkoilla (Srivastava et al., 2014).

Mitä kirjoittajat havaitsivat myös hyödylliseksi harjoittelun aikana, on max-normi-regularisoinnin soveltaminen, mikä tarkoittaa tulevan painon normin rajoittamista johonkin maksimiarvoon \(c\). Tämä arvo on asetettava etukäteen ja määritettävä validointijoukon avulla (Srivastava et al., 2014).

Pudotuksen ja max-normi-regularisoinnin yhdistäminen parantaa suorituskykyä verrattuna pelkän pudotuksen käyttöön, mutta kirjoittajat raportoivat vielä parempia tuloksia, kun pudotus ja max-normi-regularisointi yhdistetään kahteen muuhun asiaan:

  • Suuret, laskevat oppimisnopeudet.
  • Suuri momentti.

Srivastava et al. (2014) mukaan tätä voidaan mahdollisesti perustella seuraavilla argumenteilla:

  1. Painovektoreiden kuristaminen mahdollistaa suurten oppimisnopeuksien käytön ilman räjähtäviä painoja.
  2. Pudotuskohina sekä suuret oppimisnopeudet auttavat tällöin optimoijia ”tutkimaan painoavaruuden eri alueita, joihin olisi muuten ollut vaikea päästä”.
  3. Lukemisnopeuden pienentäminen hidastaa tällöin eksploraatioprosessin hyppyisyyttä, jolloin se lopulta ”asettuu minimiin”.
  4. Suuren impulssimomentin avulla verkko pystyy voittamaan paikallisia minimejä, mikä kasvattaa globaalin minimin löytymisen todennäköisyyttä.

Toimiiiko pudotus oikeasti? Kokeellisia tuloksia

Kaiken koneoppimisen parannuksen kohdalla on mukavaa saada teoreettinen parannus – mutta on myös tärkeää testata, toimiiko se todella. Srivastava et al. (2014) tekivät useita testejä selvittääkseen, toimiiko Dropout. Ensinnäkin he käyttivät erilaisia vakiotietoaineistoja (kuten MNIST-tietoaineistoa) testatakseen, parantaako Dropout mallin suorituskykyä monenlaisissa luokitusongelmissa.

Toiseksi he tarkistivat, miten se toimi erilaisten muiden regularisaattoreiden kanssa (ja saivat oivalluksen, että max-normi-regularisaatio yhdessä Dropoutin kanssa toimii parhaiten – mutta tarkastellaan näitä tuloksia yksityiskohtaisemmin tuonnempana), ja kolmanneksi Srivastava et al. (2014) tutkivat, mitkä dropout-asteet (ts, mikä parametri \(p\)) toimii parhaiten ja miten datan koko vaikuttaa Dropoutin suorituskykyyn. Katsotaanpa!

Näytteet MNIST-tietokannasta

Dropout vs. ei dropoutia vakiotietokannoissa

Tekijät testasivat Dropoutia vs. ei dropoutia näillä vakiotietokannoilla (Srivastava ym, 2014):

  • MNIST-tietokanta, joka sisältää tuhansia käsinkirjoitettuja numeroita;
  • TIMIT-puhevertailutietokanta puhdasta puheentunnistusta varten.
  • CIFAR-10- ja CIFAR-100-tietokannat, jotka sisältävät pieniä luonnollisia kuvia 10 ja 100 luokassa.
  • The Street View House Numbers (SVHN) -tietokanta, jossa on Google Street View -palvelusta kerättyjä talonumeroiden kuvia.
  • The ImageNet -tietokanta, joka sisältää paljon luonnollisia kuvia.
  • The Reuters RCV1 newswire articles -tietokanta. Tämä on pikemminkin tekstitietoaineisto kuin kuvatietoaineisto.
Näytteet CIFAR10-tietoaineistosta

Kaikkien tietokokonaisuuksien osalta Dropout paransi mallin yleistyskykyä. MNIST:llä voitiin raportoida jyrkästi erilaisia testivirheitä, ja kaikilla testatuilla eri arkkitehtuureilla oli huomattavia parannuksia.

Liity satojen muiden oppijoiden joukkoon! 😎

Blogit osoitteessa MachineCurve opettaa Machine Learning for Developers. Rekisteröidy MachineCurven ilmaiseen Machine Learning -päivitykseen jo tänään! Opit uusia asioita ja ymmärrät paremmin jo tuntemiasi käsitteitä.
Lähetämme sähköposteja vähintään joka perjantai. Tervetuloa!

Rekisteröitymällä annat suostumuksesi siihen, että kaikki saamasi tiedot voivat sisältää palveluja ja erikoistarjouksia sähköpostitse.

Dropout päihittää myös tavalliset neuroverkot CIFAR-100-, CIFAR-100- ja ImageNet-tietokannoilla koulutetuissa ConvNets-verkoissa.

SvHN-tietokannan osalta voidaan raportoida toinenkin mielenkiintoinen havainto: kun Dropoutia sovelletaan konvoluutiokerrokseen, myös suorituskyky kasvaa. Kirjoittajien mukaan tämä on mielenkiintoista, koska aiemmin oletettiin, että nämä kerrokset eivät ole herkkiä ylisovittamiselle, koska niillä ei ole monia parametreja (Srivastava et al., 2014). Väitetään, että Dropoutin lisääminen Conv-kerroksiin antaa kohinaisia syötteitä niitä seuraaville Dense-kerroksille, mikä estää niitä edelleen ylisovittamiselta.

Loppujen lopuksi Dropout toimii TIMIT-puhevertailutietokannoissa ja Reutersin RCV1-tietokannassa, mutta tässä parannus oli paljon pienempi verrattuna visio- ja puhetietokantoihin.

Dropout vs. ei dropoutia muilla regularisaattoreilla

Nyt kun kirjoittajat tiesivät, että Dropout skaalautuu hyvin erilaisissa koneoppimisongelmissa, he tutkivat sitä tarkemmin: miten se suoriutuu suhteessa muihin regularisaattoreihin?

Testattiin useita regularisaattorimenetelmiä ylisovittamisen estämiseksi:

  • L2 weight decay;
  • Lasso;
  • KL sparsity;
  • Max-norm regularization.

Srivastava et al. (2014) havaitsivat, että yhdistettynä max-norm regularisaatioon Dropout antaa vieläkin pienemmät yleistämisvirheet. Itse asiassa se antoi pienimmän raportoidun virheen, jonka jälkeen – jonkin verran etäisyydellä – seurasivat Dropout + L2-regularisointi ja lopuksi muut.

Siten Dropoutia käytettäessä voi olla hyvä ajatus suorittaa myös max-normi-regularisointi samaan aikaan.

Milloin Dropout toimii parhaiten? Dropout-asteesta ja datasetin koosta

Toinen kysymys, johon yritettiin vastata: Vaikuttaako Dropout-aste (eli parametri \(p\)) ja/tai datasetin koko Dropoutin suorituskykyyn ja neuraaliverkkoihin, joihin se on liitetty?

Kysymykseen on vastattava myöntävästi.

Mitkä ovat parhaat arvot parametrille \(p\)?

Esimerkiksi parametrin \(p\). Tähän mennessä voimme muistaa, että se on viritettävissä, ja itse asiassa koneoppimisinsinöörin on asetettava se etukäteen. Se, että se on viritettävissä, johtaa samoihin virheisiin kuin se, miksi kiinteät oppimisnopeudet eivät ole hyvä idea: ei yksinkertaisesti tiedetä, mikä \(p\) sopii dataan parhaiten.

Siten, kirjoittajat väittävät, \(p\):n arvon valitseminen on tehtävä joillakin alustavilla testeillä validointijoukon kanssa.

He tekivät niin myös – nähdäkseen, löytyisikö mielenkiintoisia kuvioita.

Ja he löysivätkin tällaisen kuvion: useiden eri skenaarioiden kautta piilokerrosten arvo \(p \ noin 0.5\) näyttää johtavan parhaaseen suorituskykyyn, kun sovelletaan Dropout-menetelmää (Srivastava ym, 2014). Tämä pätee kaikkiin kerroksiin paitsi syöttökerrokseen, jossa \(p\) on oltava \(\ noin 1,0\). Jälkimmäinen johtuu oletettavasti siitä, että input-kerros ottaa input-datan, ja mallien löytäminen on vaikeaa, kun dataa pudotetaan satunnaisesti.

Miten Dropout suoriutuu datasetin koon suhteen?

Tekijöiden mukaan ”hyvä regularisaattori mahdollistaa hyvän yleistysvirheen saamisen malleista, joissa on suuri määrä parametreja ja jotka on koulutettu pienillä dataseteillä”. Toisin sanoen se suoriutuu todella hyvin datasta, jota se ei ole ennen nähnyt – myös silloin, kun se on koulutettu pienellä datalla.

Taustalla selvittääkseen, onko Dropout regularisoi hyvin eri kokoisilla dataseteillä, Srivastava et al. (2014) tekivät testejä eri kokoisilla dataseteillä MNIST-datasetilla. Koot olivat seuraavat: ”100, 500, 1K, 5K, 10K ja 50K, jotka valittiin satunnaisesti MNIST-harjoitusjoukosta” (Srivastava et al., 2014).” (Srivastava et al., 2014)

Me autamme sinua koneoppimisessa! 🧠

Blogit MachineCurve opettaa koneoppimista kehittäjille. Rekisteröidy MachineCurven ilmaiseen Machine Learning -päivitykseen jo tänään! Opit uusia asioita ja ymmärrät paremmin jo tuntemiasi käsitteitä.
Lähetämme sähköposteja vähintään joka perjantai. Tervetuloa!

Rekisteröitymällä annat suostumuksesi siihen, että kaikki saamasi tiedot voivat sisältää palveluja ja erikoistarjouksia sähköpostitse.

Tekijät havaitsivat, että on olemassa kompromissi sen välillä, milloin Dropout on tarpeellinen ja milloin se ei ole enää hyödyllinen. Ensin käsitellään tapausta, jossa tietokokonaisuus on erittäin pieni: edes Dropout ei paranna suorituskykyä siinä tapauksessa, yksinkertaisesti siksi, että tietokokonaisuuden koko on liian pieni. Sama pätee myös riittävän suuriin tietokokonaisuuksiin: Silloin Dropout ei enää paranna mallia, vaan pikemminkin mallin suorituskyky huononee.

On siis olemassa kultainen piste, jolloin Dropout on tarpeellinen ja jolloin on fiksua olla käyttämättä sitä (tai kasvattaa datasetin kokoa). Srivastavan et al. (2014) mukaan tämän koon määrittämiseen ei ole olemassa heuristiikkoja, vaan se on määritettävä validointisarjan avulla.

Gaussian Dropout: Gaussiset Bernoulli-muuttujien sijaan

Muistutamme yllä olevasta, että Dropout toimii Bernoulli-muuttujilla, jotka ottavat 1 todennäköisyydellä \(p\) ja 0 todennäköisyydellä, joka on \(1 – p\).

Tämä ajatus voidaan yleistää aktivointien kertomiseen satunnaismuuttujilla, jotka ovat peräisin muilta jakaumilta (Srivastava et al., 2014). Srivastava et al. havaitsivat työssään, että Gaussin jakauma ja siten Gaussin muuttujat toimivat yhtä hyvin – ja ehkä jopa paremmin.

Gaussin muuttujien soveltaminen voidaan tehdä samalla tavalla: harvennetaan verkkoja harjoitteluaikana ja käytetään painotettuja aktivaatioita testi- ja tuotantoaikana (kuten tavallisessa Dropoutissa). Kirjoittajat päättävät kuitenkin käyttää Gaussin Dropoutia eri tavalla – eli moninkertaisesti. Harvennuksen ja painotuksen sijaan Gaussin Dropout painotetaan harjoitteluaikana, jolloin aktivoidut arvot, joita ei pudoteta, kerrotaan \(1/p\):llä \(1\):n sijaan (tavallisessa Bernoulli Dropoutissa). Niitä ei muuteta testihetkellä. Tämä vastaa edellistä skenaariota.

Gaussian Dropout on konfiguroitava jollakin \(\sigma\), joka Srivastavan ym. kokeissa asetettiin arvoon \(\sqrt{(1-p)/p}\), jossa \(p\) on Bernoulli-muunnoksen konfiguraatio (ts, naiiveissa tapauksissa \(p \approx 0.5\) piilotetuille kerroksille ja \(\approx 1.0\) syöttökerrokselle).

Yhteenveto

Tässä blogikirjoituksessa tarkastelimme ylisovittamista – ja sen välttämistä Dropout-ohjelman avulla. Tarkastelemalla mitä se on, miten se toimii ja että se toimii, totesimme, että se on mielenkiintoinen tekniikka sovellettavaksi syväoppimismalleissasi.

Toivottavasti opit tänään jotain – jotain hyödyllistä ML-malleihisi 😀 Jos opit, tai jos sinulla on kysyttävää, älä epäröi jättää kommenttia alle ⬇! Vastaan mahdollisuuksien mukaan kysymyksiisi 😊

Kiitos kun luit MachineCurvea tänään ja hyvää insinöörityötä! 😎

Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014, June 15). Dropout: A Simple Way to Prevent Neural Networks from Overfitting. Haettu osoitteesta http://jmlr.org/papers/v15/srivastava14a.html

Wikipedia. (2003, 20. maaliskuuta). Bernoulli-jakauma. Haettu osoitteesta https://en.wikipedia.org/wiki/Bernoulli_distribution

💡 Master your ML – tutustu myös näihin viesteihin:

Vastaa

Sähköpostiosoitettasi ei julkaista.