AI-For-Beginners/translations/fi/lessons/4-ComputerVision/08-TransferLearning
leestott 07e1ffa96b 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
..
lab 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
AdversarialCat_TF.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
Dropout.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
TrainingTricks.md 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
TransferLearningPyTorch.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
TransferLearningTF.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00

README.md

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:

VGG-16:n tunnistamat piirteet

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.

Kuvan optimointisilmukka

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
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:

Kuva koirasta Kuva koirasta, joka luokitellaan 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À.