{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "*Created by Petteri Nevavuori.*\n", "\n", "---\n", "\n", "# Deep Learning seminaari\n", "\n", "Kirjana Goodfellow et al.: Deep Learning (2016)\n", "\n", "Otsikot seuraavat pääotsikoiden tasolla kirjaa, mutta alaotsikot eivät aina." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" }, "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## 7. Regularization for Deep Learning" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Regularisointimenetelmiksi kutsutaan kaikkia niitä menetelmiä, joilla pyritään parantamaan mallin yleistyvyyttä eli testitarkkuutta. Menetelmien kehitys on edelleen jatkuvan tutkimuksen ja kehityksen kohde. Luku laajentaa viidennen luvun regularisointiosiota käsitellen niitä koulutettaviin malliin liitettävinä komponentteina. Regularisointi määritellään *miksi tahansa muutokseksi, joka tehdään vain testivirheen pienentämiseksi*. Koulutusvirhettä ei toisin sanoen pyritä pienentämään." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Ylätasolla regularisointia voidaan toteuttaa muun muassa:\n", "\n", "- Ylimääräisillä rajoitteilla (*constraint*), esim. mallin parametreille (painoille).\n", "- Muokkaamalla kohdefunktiota pehmeämmiksi rajoitteiksi." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Syväoppimisen alueella useimmat regularisointistrategiat perustuvat mallin parametrien estimaattoreihin, jolloin vääristymää suurentamalla saavutetaan pienempi hajonta (johdonmukaisempaa epätarkempana) (*bias-variance tradeoff*). Tehokas regularisaatiomenetelmä kykenee tekemään tämän vaihtokaupan kannattavasti, jolloin vääristymä kasvaa vain vähän hajonnan pienentyessä merkittävästi." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "> *Syväoppimismenetelmien ongelmien datantuottoprosessit voivat pahimmillaan käsittää koko universumin, minkä vuoksi mallin hallinta ei ole vain sen koon hallintaa; riittävän suuri malli reguloituna yleistyy helpommin.*" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.1. Parameter Norm Penalties" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Monet regularisointimenetelmät keskittyvät parametrien normisakkoon (*parameter norm penalty*) $\\Omega$. Normit, joita merkitään yleisesti $L^p$, ovat intuitiivisella tasolla vektorin etäisyysmittoja. Tätä normivirhettä säädetään siihen erityistesti liittyvällä hyperparametrilla, joka lähtökohtaisesti on ei-negatiivinen kerroin. Tällä hyperparametrilla, jota kirjassa merkitään $\\alpha$:ksi, vaikutetaan regularisoinnin vahvuuteen. Kun kohdefunktiota merkitään $J$:llä, on regularisoitu virhefuntkio \n", "\n", "$$\\tilde{J} = J(\\theta;X;y) + \\alpha \\Omega (\\theta).$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Mallin näkökulmasta jokainen siihen syötetty arvo vääristyy, jolloin sen on opittava löytämään eniten merkittävät parametrit ja painotettava niitä. Regulointi pakottaa näin mallia jatkuvasti pois alueelta, jolla sen koulutusvirhe on minimaalinen eli kauemmas ylisovittumisesta." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Syväoppimismenetelmien kanssa on tyypillistä valita sellainen parametrisakko $\\Omega$, joka vaikuttaa vain mallin parametreista sen painoihin. Mallin kerroksiin syötteiden lisäksi syötettävään parametriseen vääristymään ei kosketa. Koska mallin vääristymäparametrit ovat yksittäisiä lukuja, niiden jättäminen regularisoinnin ulkopuolelle ei vaikuta hajontaan merkittävästi.\n", "\n", "Tässä vaiheessa tehdään siis erotus parametrien joukon $\\theta$ ja mallin painojen joukon $w$ välillä." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "#### $L^2$ Parameter Regularization" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Normi $L^2$, joka tunnetaan myös nimellä Eukliidinen normi (*Euclidean norm*), on yksinkertaisesti vektorin etäisyys origosta. Tämä normi merkitään tavallisesti $\\|x\\|$. Koneoppimisen yhteydessä $L^2$-normisakko tunnetaan paremmin myös nimellä painojen heikentyminen (*weight decay*). Tällöin regularisointistrategiana on ajaa painot lähemmäs origoa eli nollaa. $L^2$-regularisointi tunnetaan myös nimillä harjanneregressio (*ridge regression*) ja Tikhonov-regularisointi (*Tikhonov regularization*)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Eukliidisen normin regularisointi lisää jokaiseen koulutuksen virheeseen $0.5\\alpha$:lla painotetun painon pituuden. Reguloitu kohdefunktio on tällöin\n", " \n", "$$ \\tilde{J} = J + \\alpha \\Omega(\\theta) = J + 0.5\\alpha \\| w \\|,$$\n", "\n", "jossa $J$ on kohdefunktio. kohdefunktiota vääristetään siis suhteessa painojen arvoihin. Painokohtaisia gradientteja reguloidaan taas lisäämällä gradientteihin $\\alpha w$ eli hyperparametrilla painotetut painojen arvot." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Tällöin regularisointi vaimentaa mallin painoja jokaisella koulutuskierroksella kertoimella $\\alpha$ ennen painojen gradienttiin pohjaavaa päivitystä. Kertoimen $\\alpha$ kasvaessa mallin suhteellisesti merkittävämmät painot jäävät jäljelle eli korostuvat, kun taas merkityksettömämmät minimoituvat lähes nollaan. Eli toisin sanoen, vain kohdefunktion pienenemiseen eniten vaikuttavat painot jäävät merkittävinä jäljelle." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "#### $L^1$ Regularization" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Yleisemmän Eukliidiseen normiin eli vektorin pituuteen perustuvan regularisoinnin lisäksi vektorin alkioihin keskittyvän $L^1$ regularisoinnin käyttö on myös mahdollista. Kyseinen regularisointi ei skaalaudu lineaarisesti, kuten Eukliidiseen normiin pohjaava menetelmä, vaan painoja skaalataan painon arvon etumerkin suuntaan vakiolla $\\alpha$. Menetelmä tuottaa myös harvempia tuloksia, jolloin regularisoinnin tuloksena syntyy enemmän nolla-arvoisia painoja. Tällöin regularisointia säätävän skaalaimen eli hyperparametrin $\\alpha$ on kuitenkin oltava riittävän suuri." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Painojen arvot määräytyvät seuraavaan kaavan mukaisesti:\n", " \n", "$$ w_i = \\text{sign}(w^*_i) \\max \\left(\\lvert w^*_i \\rvert - \\frac{\\alpha}{H_{i,i}}, 0\\right)$$\n", "\n", "Mikäli tietyn painon alkuperäisen arvon $w^*_i$ itseisarvo on pienempi, kuin regularisoinnin skaalaimen ja painon toisen derivaatan suhde $\\frac{\\alpha}{H_{i,i}}$, se saa arvon nolla. Muussa tapauksessa painon arvoksi muodostuu sen etumerkin mukainen itseisarvoltaan nollaa suurempi luku. Sillä, onko paino lähtökohtaisesti etumerkiltään positiivinen tai negatiivinen, ei ole väliä." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Kaavan $\\text{max}$-funktio aukesi itselleni melko vaikeasti. Siksi seuraavaksi esitetään $\\frac{\\alpha}{H_{i,i}}$ arvoja eri regularisointiskaalaimen $\\alpha$ ja painon toisen derivaatan $h_w \\in H$ arvoilla." ] }, { "cell_type": "code", "execution_count": 122, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "plt.rcParams['figure.figsize'] = 16,6\n", "\n", "x = np.arange(-201,201)/100\n", "hessians = np.arange(-201,201)/100\n", "\n", "x = x[x != 0]\n", "hessians = hessians[hessians != 0]\n", "weights_init = np.absolute(hessians)\n", "for i, alpha in enumerate(np.arange(0,12,2)/10*2):\n", " \n", " ah_neg, ah_pos = alpha/hessians[hessians < 0],alpha/hessians[hessians > 0]\n", " weights = np.maximum(weights_init-np.concatenate((ah_neg,ah_pos)),0)\n", " \n", " plt.subplot(231+i)\n", " plt.plot(x[:ah_neg.size],ah_neg,':',color='b',label=\"$\\\\alpha/h_w$\")\n", " plt.plot(x[ah_neg.size:],ah_pos,':',color='b')\n", " plt.plot(x,weights_init,':',color='orange',label=\"$|w^*|$\")\n", " plt.plot(x[:ah_neg.size],weights[:ah_neg.size],color='g',label=\"$|w^*|-\\\\alpha/h_w$\")\n", " plt.plot(x[ah_neg.size:],weights[ah_neg.size:],color='g')\n", " plt.title(\"$\\\\alpha={:.1f}$\".format(alpha))\n", " plt.ylim([-5,5])\n", " plt.xlim([-2,2])\n", " plt.legend()\n", " plt.grid()\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Jotta yksittäisen painon regularisoinnin $\\max$-funktion arvoksi tulisi siis muu kuin nolla, on painon alkuarvon $w^*$ oltava itseisarvoltaan suurempi, kuin $\\alpha$ painon positiivisen toisen deriaavatan suhteen. Negatiivisen toisen derivaatan eli arvoltaan kiihtyvästi laskevan painon arvon tapauksessa arvo on aina nollasta poikkeava, sillä \n", "\n", "$$ \\lvert w^*_i \\rvert - \\frac{\\alpha}{H_{i,i}} $$\n", "\n", "on tällöin aina positiivinen ja painon arvo on silloin nollasta poikkeava. Kuten kuvaajista myös voi nähdä, gradientin kulmakertoimen ollessa 0 regularisointifunktio ei ainakaan näytä olevan määritelty." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Koska koneoppimisen tavoitteena on aina pienentää gradienttia eli saada mm. mallin painot tuottamaan lähes datantuottprosessia mallintavan funktion, tämä regularisointimenetelmä suosii siis lähtökohtaisesti laskevia gradientteja ja huomioi nousevat gradientit vain riittävän merkittävinä. Näin tätä regularisointimenetelmää voidaan hyödyntää myös piirteiden karsijana (*feature selection*), sillä nolliksi jäävät piirteet voidaan jättää huomiotta (esim. *LASSO*-algoritmi)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.2. Norm Penalties as Constrained Optimization" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Mikäli regularisointia käytetään osana koulutusta, on mahdollista, että regularisoidun kohdefunktion avulla malli asettuu vain sen parametrien eli painojen paikalliseen minimiin, s.o. paikallisesti virheen minimoivaan konfiguraatioon. Toisaalta voi myös olla mahdollista, että suurta oppimiskerrointa $\\epsilon$ käytettäessä koulutus voi ajautua takaisinsyöttekierteeseen, jossa mallin parametrit kasvavat rajatta ja koulutus lopulta epäonnistuu." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Tällöin hyvä keino on käyttää regularisoinnissa raja-arvoja (*constraint*) sakkojen (*penalty*) sijasta. Tällainen toimintatapa on hyödyksi etenkin koulutuksen alussa, kun halutaan selvittää karkeasti parametrien oikeita arvoalueita käyttäen korkeaa oppimiskerrointa." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Stokastisessa *gradient descentissä* raja-arvojen käyttö tarkoittaa, että iteratiivisen edes-takaisen etenemisen sijasta on olemassa parametrien konfiguraatiopisteitä, jotka tyydyttävät regularisoinnin vaatimukset riittävän hyvin. Kun koulutus päättyy, valitaan näistä pisteistä lähin eikä niinkään koulutuksen varsinaista tulosta. Samoin voidaan toimia myös regularisoinnin suhteen. Silloin regularisoinnille eli parametrien normisakolle $\\alpha \\Omega (\\theta)$ asetetaan jokin rajoittava taso $k$, minkä alle regularisoinnin on jäätävä. kohdefunktio voidaan tällöin kirjoittaa Lagrange-funktiona\n", "\n", "$$ \\mathcal{L}(\\theta,\\alpha;X,y) = J(\\theta;X,y) + \\alpha(\\Omega(\\theta)-k). $$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Koulutuksen aikana säädetään sekä parametrien joukkoa $\\theta$ että regularisoinnin säätökerrointa $\\alpha$. Parametrien säätö on johdonmukaista tähän asti esitettyjen menetelmien, kuten stokastisen *gradient descentin* keinoin. Skalaarin $\\alpha$ säätö tapahtuu siten, että mikäli \n", "\n", "$$ \\Omega (\\theta) > k \\Rightarrow \\alpha \\uparrow $$ \n", "\n", "tai toisessa tapauksessa \n", "\n", "$$ \\Omega (\\theta) < k \\Rightarrow \\alpha \\downarrow .$$\n", "\n", "Kuten aiemmin on jo todettu, suurempi $\\alpha$ lisää regularisoinnin vaikuttavuutta." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.3. Regularization and Under-Constrained Problems" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Mikäli datasetissä on vähemmän näytteitä kuin piirteitä tai vaikkapa opittava funktio toimii, vaikka sen painot olisivat toistensa monikertoja (esim. binääriluokittelu logistisella regressiolla) on kyseessä alirajoitettu ongelma (*under-constrained problem*). Tällöin regularisoinnilla saadaan rajoitettua mallin parametrien hallitsematonta kasvua vaimenemien avulla." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.4. Dataset Augmentation" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Malliin vaikuttamisen lisäksi toinen merkittävä sovittumiseen vaikuttava tekijä on itse koulutuksessa käytetty datasetti ja etenkin sen koko. Koska monesti varsinaista dataa on rajoitetusti, ainoa keino sen lisäämiseksi on sen monistaminen keinotekoisesti (*augmentation*). Tämä on selkeintä luokitteluongelmien kanssa. Muiden koneoppimistehtävien kanssa tämä ei olekaan enää niin yksinkertaista, sillä ohjatun oppimisen tapauksessa datan augmentaatio vaatii etukäteistietoa mallinnettavasta datantuottoprosessista, jota ei käytännössä voida saada ennen mallin koulutuksen valmistumista." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Kuvan- ja hahmontunnistus hyötyy tästä menetelmästä kuitenkin suuresti, sillä samalla tavoin luokiteltua kuvaa voidaan helposti käsitellä mm. osittelujen, peilausten ja geometristen manipulaatioiden keinoin kuvan oikean sisällön muuttumatta. Tämän on huomattu lisäävään mallin yleistymistarkkuutta. Joissain tapauksissa, kuten vaikkapa kirjainten tunnistuksen yhteydessä, on kuitenkin kiinnitettävä huomiota, etteivät käytetyt augmentaatiomenetelmät muuta kuvaa luokkatasolla (esim. 6 $\\to$ 9)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Neuroverkkojen kohdalla kohinan syöttäminen datan lisäksi voidaan myös nähdä datan augmentaatiomenetelmänä. Näin toimitaan mm. kohinaa poistavien autoenkooderien kanssa (*denoising autoencoder*). Mikäli kohinan määrää on tarkoin säädetty, sitä voidaan syöttää myös piilokerroksiin. Myöhemmin käsiteltävä poisjättämisen (*dropout*) menetelmä voidaan nähdä eräänlaisena kohinan lisäysmenetelmänä." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Joka tapauksessa augmentointi on merkittävintä silloin, kun se on hallittua ja tarkkaan mietittyä. Mikäli samalla datasetillä tahdotaan verrata eri malleja, on varmistuttava siitä, että kummallekin syötetään samalla tavoin augmentoitu datasetti, sillä muussa tapauksessa mallit on lähtökohtaisesti koulutettu eri datalla ja täten ne eivät ole keskenään vertailukelpoisia." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.5. Noise Robustness" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Kohinan lisääminen mallin syötteeksi toimii käytännössä eräänlaisena sakkona mallille, eli ikään kuin mallin parametrien sakko mutta kohdefunktion sijasta sen syötekerroksessa. Syötkerrokseen lisätyn kohinan kautta saavutettu merkittävien parametrien korostuminen on kuitenkin vain osa menetelmän merkittävyyttä, sillä tärkeimmät vaikutukset saavutetaan piilokerroksissa." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Datan lisäksi kohinaa voidaan syöttää mallin painoihin, kuten on tehty rekursiivisten (*recurrent*) neuroverkkojen kanssa. Tällöin painoja voidaan käsitellä todennäköisyyksien kautta, jolloin mallin epävarmuuteen voidaan päästä paremmin käsiksi. Painoihin lisättyä kohinaa voidaan syötteen tavoin käsitellä myös regularisointimenetelmänä. Tällöin malli kouluttuu robustimmaksi, kun se oppii erottamaan ne syöteavaruuden alueet, jossa pienehköt vaihtelut eivät ole merkittäviä." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Kohinaa voidaan myös käyttää koulutuksen kohdearvoihin. Tällöin on kyse luokkien tasoittamisesta (*label smoothing*) ja tavoitteena on tarkoituksellisesti mallintaa syötteiden luokitteluvirheen mahdollisuutta koulutuksen aikana." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.6. Semi-Supervised Learning" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Osin ohjatussa (*semi-supervised*) oppimisessa sekä merkitsemättömiä että merkittyjä näytteitä käytetään jonkin tuloksen $y$ ennustamiseen. Tavoitteena on joka tapauksessa oppia kuvaamaan samankaltaisia syötteitä samalla tavoin. Tällöin ohjaamattoman oppimisen klusterointimenetelmällä voidaan ensin ryhmitellä syötteet omiin ryhmiinsä, jonka jälkeen ryhmän jäsenet merkitään samaan tapaan." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Erillisten mallien (ohjattu & ohjaamaton) käyttäminen ei kuitenkaan ole tarpeen, sillä tämä voidaan saavuttaa myös eräänlaisella luovaa (*generative*) ja erottelevaa (*discriminative*) mallia yhdistävällä komposiittimallilla. Tällöin nämä kaksi osaa jakavat keskenään osan mallin parametreista. Tällöin luova osa mallista kuvaa opittua ennakkouskomusta (*prior belief*) mallinnettavasta prosessista, ts. syötteiden rakenteiden linkittymistä syöte-kohde (*input-target*) pareihin." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Kouluttaminen sekä merkityillä että merkitsemättömillä syötteillä näyttää lisäävän mallin yleistyvyyttä. Syy lienee siinä, että esimerkiksi luokittelun kohdalla oikeiden tietojen osittainen puuttuminen pakottaa mallia painottamaan robustimpia kuvaavia piirteitä helpommin vaihtelulle alttiiden sijasta." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.7. Multitask Learning" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Samoin monien tehtävien samanaikainen oppiminen (mikäli oikeutettua) pakottaa mallin löytämään parhaiten yleistyvät parametrit. Tällöin mallista voidaan jossain määrin erotella tehtäväkohtaiset parametrit sekä yleiset parametrit. Tällöin kuitenkin on tärkeää, että eri tehtävien samanaikainen oppiminen on perustelutua." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.8. Early Stopping" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Mallin ylisovittuminen on huomattavissa helposti siitä, että koulutusvirheen pienentyessä testivirhe pysyy joko ennallaan tai lähtee jopa nousuun. Tällöin voidaan toimia siten, että tallennetaan alhaisimman testivirheen tuottanut mallin konfiguraatio viimeisimmän sijasta ja aloitetaan seuraava koulutuskierros tästä edellisen kierroksen pienimmän testivirheen konfiguraatiosta." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Tätä koulutusstrategiaa kutsutaan aikaiseksi lopettamiseksi (*early stopping*). Tällöin koulutus myös katsotaan päättyneeksi, kun testivirhe ei ole merkittävästi laskenut määritellyn koulutusjaksomäärän aikana. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Yksinkertaisuutensa ja tehokkuutensa vuoksi tämä on laajalti käytetty regularisointimenetelmä. Se ei vaadi mitään muutoksia malliin, vaan toimii hyperparametrien tavoin mallin koulutuksen aikaisena rajoittimena. Sen käyttö ei vahingoita mallin kykyä yleistyä, kuten esimerkiski painojen heikentämismenetelmä (*weight decay*) voi tehdä. Vaikka malleja aika ajoin kirjoitetaan muistiin, laskennan puolesta menetelmä on halpa." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Menetelmää voidaan käyttää myös yhdessä muiden regularisointimenetelmien kanssa. Tämä menetelmä vaatii kuitenkin erillisen validointisetin, minkä vuoksi datasetin kokovaatimus on tätä lisädatasettia käyttämättömiin regularisoinnin menetelmiin nähden hieman suurempi." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Menetelmän käyttöön löytyy eri strategioita. Eräs tällainen on käyttää koko datasettiä. Tällöin mallia koulutetaan ensin yhden kierroksen ajan, jolloin selvitetään optimaalinen koulutusmääräraja. Tämän jälkeen tätä tietoa käytetään seuraavissa koulutuksissa koko datasetillä. Kaikkea dataa voidaan käyttää myös siten että koulutusta tehdään osaseteillä tiettyyn virherajaan asti, minkä jälkeen koulutusdatasetiksi vaihdetaan koko käytössä oleva koulutussetti." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Regularisointimenetelmäksi aikaisen lopettamisen menetelmää voidaan kutsua siksi, että se rajoittaa parametrien mahdollisia arvoja lähelle niiden alkuarvoja. Kun lähtötilanteesta sallitaan vain tietty määrä opetusaskelia, ei parametrien lähtötilanteesta voida edetä liian kauas. Yhdessä koulutuskertoimen $\\epsilon$ kanssa koulutusaskelien rajattu määrä rajoittaa myös mallin kapasiteettia, ja käytännössä menetelmä käyttäytyy samaan tapaan kuin painojen heikennys. Erotuksena näiden välillä on kuitenkin se, että aikainen lopettaminen tarjoaa työkaluja mallin koulutuksen aikaisen suorituskyvyn seurantaan hyvässä hetkessä lopettamiseksi sekä se on huomattavasti automaattisempi painojen heikentymisen $\\alpha$-arvon manuaalisen selvittämisen sijasta." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.9. Parameter Tying and Parameter Sharing" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Yksittäisen mallin parametrien regularisoinnin lisäksi regularisointia voidaan lähestyä myös mallien välisen regularisoinnin kautta. Mikäli esimerkiksi kahden mallin tehtävät ovat riittävän samankaltaisia ja samoin niiden syötedatasetit vastaavat riittävästi toisiaan, voidaan toista malleista käyttää toisen mallin koulutuksessa regularisoinnin kiintopisteenä." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Käytännössä tämä voisi toteutua tilanteessa, jossa tavoitteena on kouluttaa vaikkapa kuvantunnistuksen malli jollekin toistaiseksi kouluttamattomalle alueelle. Tällöin voitaisiin regularisoinnin kiintopisteeksi esikoulutettu malli, joka on koulutettu saman kaltaisilla mutta esimerkiksi karkeammalla jaotuksella olevilla kuvilla; yleisesti eläimiä tunnistamaan koulututettu malli voitaisiin valjastaa vaikkapa koirien rotuja oppivan mallin tukipisteeksi." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Tällöin voidaan käyttökelpoisia regularisoinnin menetelmiä ovat normisakko ja parametrien jakaminen (*parameter sharing*). Normisakon tultua jo tutuksi, riittää parametrien jakamisen avaaminen. Sillä tarkoitetaan, että jokin parametrien osajoukko pakotetaan samankaltaiseksi kahden mallin välillä. Normisakkoon nähden tämä pienentää joidenkin mallien kohdalla koulutuksen laskennallista muistivaatimuksia. Yksi tällainen malli on konvoluutioverkko (*convolutional neural network, CNN*)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "#### Convolutional Neural Networks" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Konvoluutioverkkojen kanssa parametrien jakamista hyödynnetään hyvin yleisesti. Perustavimpana syynä on niiden käyttö kuviin liittyvissä koneoppimistehtävissä: luonnollisilla kuvilla on monia muunnoksille immuunia tilastollisia piirteitä, jolloin niiden muunnokset esimerksi siirtojen, peilausten tms. avulla eivät muuta kuvan tunnistettavaa sisältöä (kissa on kissa myös peilikuvana). Parametrien jako ei kuitenkaan tapahdu välttämättä mallien välillä, vaan parametreja jaetaan kuvan eri alueiden kesken." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.10. Sparse Representations" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Erona aiemmin esitettyyn $L^1$-sakkoon, jossa mallin parametreja harvennettiin, mallin kuvauksellisella harvuudella (*sparse representation*) tarkoitetaan mallin syötteen harvennusta. Tällöin mallin parametrien sijasta syötteen jotkin elementit muunnetaan nolliksi. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Kaavoin ilmaisten näiden kahden erot ovat seuraavat. Harvoihin parametriin johtavan sakon regularisoinnin kaava on muotoa $ \\tilde{J} = J + \\alpha \\Omega (w) $, jossa $w$ on mallin painojoukko. Harvan kuvauksen sakon kaava on vuorostaan $ \\tilde{J} = J + \\alpha \\Omega (h(x)) $, jossa funktio $h(x)$ muuttaa osan syötteen arvoista nollaksi esittäen syötteen harvana vektorina." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Vaikka vaihtoehtoja on monia, käy normin $L^1$ mukainen sakko myös syötteen esityksen harventamiseen. Muita käyttökelpoisia vaihtoehtoja ovat mm. Studentin *t*-jakauman, KL-divergenssin ja erikoistuneiden aktivointifunktioiden käyttö syötekerroksessa." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.11. Bagging and Other Ensemble Methods" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Vapaasti suomennetulla koostamisella (*bagging, bootsrap aggregating*) tarkoitetaan testivirheen pienentämistä käyttämällä useaa erillistä mallia. Mallit koulutetaan kukin samalle datalle ja tuottavat yhdessä äänestyksen tapaan syötteelle $x$ ennusteen $\\hat{y}$. Tätä menetelmää kutsutaan myös keskiarvoistamiseksi mallien yli (*model averaging*) tai ensemble-metodiksi." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Tämä menetelmä luottaa siihen, etteivät erilaiset mallit tee samoja virheitä samalla testidatalla. Mitä enemmän variaatiota käytettyjen mallien välillä on, sitä tarkemmin ensemble-malli toimii sen yksittäisiin osamalleihin nähden." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Kuten tilastomatematiikassakin, *bootstrappingillä* viitataan etenkin datasettien generointiin. Jokaiselle mallille rakennetaan oma datasettinsä, jossa on sama määrä näytteitä kuin alkuperäisessäkin datasetissä. Näytteet otetaan kuitenkin satunnaisotannalla takaisinpanon kanssa alkuperäisestä datasetistä, jolloin mallien välille saadaan datasetin kautta myös variaatiota." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Neuroverkkojen kohdalla tosin riittää jo usein vain monen mallin käyttö ilman mallikohtaisten datasettien generointia. Tämä juontaa neuroverkkojen painojen satunnaisen alustuksen, datasettien *minibatch*-osittelun sekä mallien yksilöllisen kouluttuvuuden yhteisvaikutuksesta." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Koostamisen käyttö on erittäin tehokas ja luotettava menetelmä. Sitä ei suositella käytettäväksi mallien vertailuun keskittyvässä tutkimuksessa, sillä koneoppimismallit hyötyvät niin merkittävästi koostamisesta, ettei keskinäinen vertailu ole mielekästä kuin yksittäisten mallien kanssa. Käytännön sovellutuksissa se on kuitenkin enemmän kuin suositeltua." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Monen mallin rinnakkain koulutuksen lisäksi malleja tai mallia voidaan kouluttaa myös sekvenssimäisesti. Tällöin on kyseessä tehostamisena (*boosting*) tunnettu ensemble-metodi. Kirja ei juuri avaa tämän menetelmän käyttöä paremmin, mutta kyseessä on *gradienttien* tehostus, josta voi nopeasti lukea lisää mm. Wikipedian artikkelista [Gradient Boosting](https://en.wikipedia.org/wiki/Gradient_boosting). Peräkkäiset mallit tarkentavat edellisiä malleja, jolloin kokonaistarkkuus kasvaa. Eräs implementaatio tästä on puupohjainen [XGBoost](https://github.com/dmlc/xgboost)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.12. Dropout" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Poispudotus (*dropout*) on erittäin tehokas ja laskennallisesti halpa regularisointimenetelmä etenkin joko suurten yksittäisten neuroverkkojen tai neuroverkkoensemblejen koulutukseen. Menetelmä nimensä mukaisesti tiputtaa koulutettavan joko yhdestä tai useammasta mallista koostuvan neuroverkon syöte- ja piilokerroksista satunnaisesti jonkun tai joitakin neuroneja. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Tiputtaminen tapahtuu käytännössä muodostamalla jokaiselle neuroverkkojen koulutukseen käytettävälle *minibatchille* oma syöte- ja piilokerrokset käsittävä maskivektori $\\mu$ eli konfiguraatio, jonka mukaan neuroneita joko deaktivoidaan tai pidetään aktiivisina. Todennäköisyys, jolla yksittäinen neuroni tiputetaan, määräytyy ennen koulutusta määriteltävällä hyperparametrilla. Syöte- ja piilokerroksien neuroneille on tavallista pitää omat todennäköisyytensä. Konfiguraatioita on poispudotuksessa useita." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Koostamiseen verrattuna poispudotus eroaa mallien erillisyydessä. Koostamisessa mallit ovat erillisiä ja niiden tuloksia verrataan toisiinsa samoilla testisyötteillä. Poispudotuksessa mallit ovat parametrien tasolla ainakin jokseenkin sidoksissa toisiina, jolloin kyseessä on ennemmin yksi iso komposiittimalli. Poispudotus tavoittelee koostamisen vaikutuksia muuttamalla käytetyn mallin arkkitehtuuria eli topografiaa koulutuksen aikana. Eri poispudotuskonfiguraatiot koulutetaan kuitenkin samalla *bootstrap*-tekniikalla kuin koostaminenkin." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Poispudotusta hyödyntämällä mallien yhteistulos tulos on riittävän tarkka jo 10-20 konfiguraation eli maskin kanssa. Toisaalta kaikista konfiguraatioista voidaan ottaa geometrinen keskiarvo, jolloin tarvitaan vain yksi laskenta. Tällöin on kuitenkin varmistuttava siitä, ettei millekään syötteelle anneta nollaa osaverkkojen tulokseksi ja maskien geometrinen keskiarvo on myös normalisoitava. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Näin toimiessa toisin sanoen yhdistetään kaikki satunnaisesti muodostetut aktivointikonfiguraatiot yhdeksi neuronikohtaiseksi maskiksi, jossa neuronit painotetaan tällä tavalla lasketulla neuronikohtaisella todennäköisyydellä. Tätä vasta empiirisesti tutkittua toimintatapaa kutsutaan painojen skaalauksen inferenssisäännöksi (*weight scaling inference rule*). Tämä sääntö ei kuitenkaan ole eksakti epälineaaristen neuroverkkojen kohdalla vaan vain approksimaatio, joka on riippuvainen itse mallinnettavasta ongelmasta." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Laskennallisen keveyden lisäksi tämä regularisointimenetelmä on myös laajalti käytettävissä eri mallityyppien tai opetusmenetelmien kanssa - lähes mikä tahansa stokastiden *gradient descentin* avulla koulutettava malli kelpaa. Regularisointimenetelmänä se kuitenkin rajoittaa mallin käytännöllistä kapasiteettia, jolloin sen käyttö laajamittaisessa järjestelmässä vaatii tarkempaa tulosta tavoitellessa myös suhteessa suuremman eli hitaammin koulutettavan mallin. Jos siis datasetti on riittävän suuri, ei regularisoinnilla saavuteta enää merkittäviä hyötyjä. Samoin mikäli dataa on liian vähän, ei menetelmä ole vaihtoehdoista optimaalisin." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Koska poispudotusta voidaan käyttää geometrista keskiarvoa hyödyntämällä myös joko-tai-aktivoinnin lisäksi vaikuttamalla mallin painoihin lähes mielivaltaisesti, voidaan poispudotus nähdä parametrien jakamisella laajennettuna koostamisena. Deaktvoinnin sijasta yksittäiset painot voidaan kertoa lähes millä tahansa reaaliluvulla, jolloin itseasiassa suorituskyvyn on havaittu parantuvan binääriseen kytkentään verrattuna. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Poispudotus pakottaa myös koulutettavan komposiittimallin osamallit olevaan riittävän robusteja, jotta ne ovat soveliaita ja suorituskykyisiä usean erilaisen syötteen kanssa. Mikäli kasvon osia tunnistavasta mallista pudotetaan nenän tunnistava osa pois, on muiden osien opittava tunnistamaan nenä suhteessa muihin kasvon osiin. Poispudotus ei tällöin vaikuta niinkään alkuperäisten syötteiden arvoihin, vaan kytkee mallin oppimia kuvaavia piirteitä ajoittain pois käytöstä." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.13. Adversarial Training" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Vaikka koneoppimismenetelmien tunnistus- ja luokittelutarkkuus on joissain tapauksissa jopa ihmistarkkuutta parempi, eivät menetelmien oppimat piirteet välttämättä tavoita oikeita opittuja asioita kuvaavia piirteitä. Kirjassa esimerkkinä on GoogleNetin pandaksi luokittelema kuva, joka uudelleenluokitellaan lähes 100% varmuudella gibboniksi ihmiselle merkityksettömän kohinamäärän ja mallin epävaramasti tunnistaman kuvan lisäämisen jälkeen. Näin toimiessa mallia testataan vastaesimerkillä (*adversarial example*)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Kun opetettaville malleille esitetään varta vasten koostettuja vastaesimerkkejä, on kyse vastakohdilla koulutuksesta (*adversarial training*). Tämän koulutusmenetelmän pohjalla on havaittu käytännössä toteutuva neuroverkkojenkin tietynlainen lineaarisuus, joka aiheuttaa toteutuessaan suurtakin paikallista heittelyä mallin tuloksissa monipiirteisillä syötteillä. Vastaesimerkkien käyttö pakottaa mallia olemaan paikallisesti stabiilimpi, eli oppimaan merkityksellisiä ja pysyvämpiä piirteitä. Tässä mielessä kyse on testitarkkuutta parantavasta regularisoinnista." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Käytännössä vastaesimerkit löydetään joko manuaalisesti rakentamalla tai käyttämällä mallia itseään. Jos kaksi syötettä $x_1$ ja $x_2$ tuottavat tulokset $\\hat{y}_1$ ja $\\hat{y}_2$, voidaan näistä syötteistä tehdä vastaesimerkit toisilleen ja kouluttaa malli hyödyntämällä tätä tietoa. Tässä tapauksessa syötteet ovat toistensa virtuaalisia vastaesimerkkejä (*virtual adversarial examples*). " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### 7.14. Tangent Distance, Tangent Prop and Manifold Tangent Classifier" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Viimeinen esitellyistä regularisointimenetelmistä on tangenttien etäisyyteen (*tangent distance*) pohjaava luokkien robusti erottelumenetelmä *tangent prop*. Pohja-ajatuksena on jo aiemmin esillä ollut koneoppimisen tavoite monipiirteisten datantuottoprosessia kuvaavien pintojen (*manifold*) oppimiseksi. Käyttäen ennakkotietoa datasetin piirteiden variaatioista eli variaatioiden suunnista pyrkimyksenä on tasoittaa luokat erottavat pinnat siten, että pintoja pitkin edetessä pinnoille lasketut tangentin muuttuisivat mahdollisimman vähän." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Tällöin määritellään sellaiset transformaatiot, joiden tiedetään ennalta olevan merkityksettömiä mallin ulostulolle. Tässä mielessä menetelmä voidaan nähdä datasetin augmentointimenetelmänä, jossa syötteitä muunnetaan näiden ennalta tiedettyjen transformaatioiden mukaisesti. Se ei kuitenkaan ole oikeaa augmentaatiota parempi, sillä menetelmällä aikaansaadut muutokset saavat mallin tasoittamaan pintoja vain hyvin yksityiskohtaisella tasolla." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Menetelmällä on myös yhtymäkohtia kaksinkertaisen takaisinpropagoinnin (*double backprop*) kanssa. Intuition tasolla *double backprop* vaatii, että malli on kaikkien piirteiden osalta vastustuskykyinen riittävän pienten muutosten kanssa. *Tangent prop* vaatii tätä vain joidenkin piirteiden kohdalla." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Ennakkotietoa merkityksettömistä transformaatioista ei kuitenkaan tarvita, mikäli hyödynnetään pintojen tangenttien luokittelijaa (*manifold tangent classifier*). Autoenkooderit toimivat tällaisina malleina. Tällöin pintojen tangetteihin pohjaavaa menetelmää voidaan käyttää oppimalla ensin datasetin pinnat ohjaamattomasti autoenkooderilla, minkä jälkeen opittuja tietoja voidaan hyödyntää *tangent propin* kanssa." ] } ], "metadata": { "celltoolbar": "Slideshow", "hide_input": false, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" }, "toc": { "nav_menu": {}, "number_sections": false, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "256px" }, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }