8.2 KiB
Esikoulutetut verkot ja siirto-oppiminen
Konvoluutionaalisten neuroverkkojen (CNN) kouluttaminen voi viedä paljon aikaa, ja siihen tarvitaan runsaasti dataa. Suuri osa ajasta kuluu kuitenkin parhaiden matalan tason suodattimien oppimiseen, joita verkko voi käyttää kuvioiden tunnistamiseen kuvista. Herää luonnollinen kysymys – voimmeko käyttää yhdellä aineistolla koulutettua neuroverkkoa ja mukauttaa sen luokittelemaan erilaisia kuvia ilman, että koko koulutusprosessia tarvitaan?
Ennakkovisa
Tätä lähestymistapaa kutsutaan siirto-oppimiseksi, koska siirrämme tietoa yhdestä neuroverkkon mallista toiseen. Siirto-oppimisessa aloitamme yleensä esikoulutetulla mallilla, joka on koulutettu suurella kuvadatasetillä, kuten ImageNet. Nämä mallit osaavat jo hyvin tunnistaa erilaisia piirteitä yleisistä kuvista, ja monissa tapauksissa pelkän luokittelijan rakentaminen näiden piirteiden päälle voi tuottaa hyviä tuloksia.
✅ Siirto-oppiminen on termi, joka esiintyy myös muilla tieteenaloilla, kuten kasvatustieteessä. Se viittaa prosessiin, jossa tietoa siirretään yhdeltä alalta toiselle.
Esikoulutetut mallit piirteiden tunnistajina
Edellisessä osiossa käsitellyt konvoluutiokerrokset sisältävät useita kerroksia, joista jokainen on suunniteltu tunnistamaan tiettyjä piirteitä kuvasta. Tämä alkaa matalan tason pikseliyhdistelmistä (kuten vaakasuorat/pystysuorat viivat tai viivat) ja etenee korkeampien tasojen piirteisiin, kuten liekin silmään. Jos koulutamme CNN:n riittävän suurella ja monipuolisella kuvadatasetillä, verkon pitäisi oppia tunnistamaan nämä yleiset piirteet.
Sekä Keras että PyTorch sisältävät toimintoja, joilla voi helposti ladata esikoulutettujen neuroverkkojen painot joillekin yleisille arkkitehtuureille, joista suurin osa on koulutettu ImageNet-kuvilla. Useimmin käytetyt mallit on kuvattu CNN-arkkitehtuurit -sivulla edellisessä oppitunnissa. Erityisesti voit harkita seuraavia:
- VGG-16/VGG-19, jotka ovat suhteellisen yksinkertaisia malleja, mutta tarjoavat silti hyvän tarkkuuden. VGG:n käyttäminen ensimmäisenä kokeiluna on usein hyvä valinta siirto-oppimisen toimivuuden arvioimiseksi.
- ResNet on Microsoft Researchin vuonna 2015 ehdottama malliperhe. Niissä on enemmän kerroksia, joten ne vaativat enemmän resursseja.
- MobileNet on pienennettyjen mallien perhe, joka sopii mobiililaitteille. Käytä niitä, jos resurssit ovat rajalliset ja voit tinkiä hieman tarkkuudesta.
Tässä on esimerkki piirteistä, jotka VGG-16-verkko on tunnistanut kissan kuvasta:
Kissojen ja koirien datasetti
Tässä esimerkissä käytämme Kissat ja koirat -datasettiä, joka on hyvin lähellä todellista kuvaluokitteluskenaariota.
✍️ Harjoitus: Siirto-oppiminen
Katsotaan siirto-oppimista käytännössä vastaavissa muistikirjoissa:
Adversaarisen kissan visualisointi
Esikoulutettu neuroverkko sisältää erilaisia kuvioita "aivoissaan", mukaan lukien käsityksiä ihanteellisesta kissasta (samoin kuin ihanteellisesta koirasta, seeprasta jne.). Olisi mielenkiintoista jotenkin visualisoida tämä kuva. Tämä ei kuitenkaan ole yksinkertaista, koska kuviot ovat hajallaan verkon painoissa ja järjestetty hierarkkiseen rakenteeseen.
Yksi lähestymistapa on aloittaa satunnaisesta kuvasta ja yrittää käyttää gradienttilaskeutumisoptimointia säätämään kuvaa siten, että verkko alkaa ajatella sen olevan kissa.
Jos teemme näin, saamme kuitenkin jotain, joka muistuttaa satunnaista kohinaa. Tämä johtuu siitä, että on monia tapoja saada verkko ajattelemaan, että syötekuva on kissa, mukaan lukien sellaiset, jotka eivät visuaalisesti ole järkeviä. Vaikka nämä kuvat sisältävät paljon kissalle tyypillisiä kuvioita, mikään ei rajoita niitä olemaan visuaalisesti erottuvia.
Tuloksen parantamiseksi voimme lisätä toisen termin häviöfunktioon, jota kutsutaan variaatiohäviöksi. Se on mittari, joka osoittaa, kuinka samanlaisia kuvan vierekkäiset pikselit ovat. Variaatiohäviön minimointi tekee kuvasta tasaisemman ja poistaa kohinaa – paljastaen näin visuaalisesti miellyttävämpiä kuvioita. Tässä on esimerkki tällaisista "ihanteellisista" kuvista, jotka luokitellaan suurella todennäköisyydellä kissaksi ja seepraksi:
![]() |
![]() |
|---|---|
| Ihanteellinen kissa | Ihanteellinen seepra |
Samaa lähestymistapaa voidaan käyttää niin sanottujen adversaaristen hyökkäysten suorittamiseen neuroverkkoa vastaan. Oletetaan, että haluamme huijata neuroverkkoa ja saada koiran näyttämään kissalta. Jos otamme koiran kuvan, jonka verkko tunnistaa koiraksi, voimme säätää sitä hieman gradienttilaskeutumisoptimoinnin avulla, kunnes verkko alkaa luokitella sen kissaksi:
![]() |
![]() |
|---|---|
| Alkuperäinen kuva koirasta | Kuva koirasta, joka luokitellaan kissaksi |
Katso koodi yllä olevien tulosten toistamiseen seuraavasta muistikirjasta:
Yhteenveto
Siirto-oppimisen avulla voit nopeasti rakentaa luokittelijan mukautettuun objektien luokittelutehtävään ja saavuttaa korkean tarkkuuden. Voit huomata, että monimutkaisemmat tehtävät, joita nyt ratkaisemme, vaativat suurempaa laskentatehoa, eikä niitä voida helposti ratkaista CPU:lla. Seuraavassa osiossa yritämme käyttää kevyempää toteutusta saman mallin kouluttamiseen pienemmillä laskentaresursseilla, mikä johtaa vain hieman alhaisempaan tarkkuuteen.
🚀 Haaste
Mukana olevissa muistikirjoissa on huomioita siitä, kuinka siirto-oppiminen toimii parhaiten jossain määrin samankaltaisen koulutusdatan kanssa (esimerkiksi uusi eläinlaji). Tee kokeiluja täysin uusilla kuvatyypeillä nähdäksesi, kuinka hyvin tai huonosti siirto-oppimismallisi toimivat.
Jälkivisa
Kertaus ja itseopiskelu
Lue TrainingTricks.md syventääksesi tietämystäsi muista tavoista kouluttaa mallejasi.
Tehtävä
Tässä laboratoriossa käytämme todellista Oxford-IIIT lemmikkieläindatasettiä, joka sisältää 35 kissan- ja koirarotua, ja rakennamme siirto-oppimiseen perustuvan luokittelijan.
Vastuuvapauslauseke:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäisellä kielellä tulisi pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa väärinkäsityksistä tai virhetulkinnoista, jotka johtuvat tämän käännöksen käytöstä.





