AI-For-Beginners/translations/fi/lessons/4-ComputerVision/09-Autoencoders
leestott 07e1ffa96b 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
..
AutoEncodersPyTorch.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
AutoencodersTF.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

README.md

Autokooderit

Kun koulutamme CNN-verkkoja, yksi ongelmista on, että tarvitsemme paljon merkittyä dataa. Kuvien luokittelussa tämä tarkoittaa, että kuvat on jaoteltava eri luokkiin, mikä vaatii manuaalista työtä.

Ennakkokysely

Toisaalta voimme haluta käyttää raakadataa (ilman merkintöjä) CNN-ominaisuuksien oppimiseen, mitä kutsutaan itseohjautuvaksi oppimiseksi. Merkittyjen tietojen sijaan käytämme harjoituskuvia sekä verkon syötteenä että tulosteena. Autokooderin pääidea on, että meillä on enkooderiverkko, joka muuntaa syötekuvan johonkin latenttitilaan (yleensä pienemmän kokoiseen vektoriin), ja dekooderiverkko, jonka tehtävänä on rekonstruoida alkuperäinen kuva.

Autokooderi on "keinotekoisen neuroverkon tyyppi, jota käytetään oppimaan tehokkaita koodauksia merkitsemättömästä datasta."

Koska koulutamme autokooderia tallentamaan mahdollisimman paljon alkuperäisen kuvan tietoa tarkkaa rekonstruointia varten, verkko pyrkii löytämään parhaan upotuksen syötekuville niiden merkityksen tallentamiseksi.

Autokooderin kaavio

Kuva Keras-blogista

Autokooderien käyttöskenaariot

Vaikka alkuperäisten kuvien rekonstruointi ei itsessään vaikuta kovin hyödylliseltä, on olemassa muutamia skenaarioita, joissa autokooderit ovat erityisen hyödyllisiä:

  • Kuvien ulottuvuuden pienentäminen visualisointia varten tai kuva-upotusten oppiminen. Yleensä autokooderit antavat parempia tuloksia kuin PCA, koska ne ottavat huomioon kuvien spatiaalisen luonteen ja hierarkkiset piirteet.
  • Kohinanpoisto, eli kohinan poistaminen kuvasta. Koska kohina sisältää paljon tarpeetonta tietoa, autokooderi ei pysty tallentamaan kaikkea suhteellisen pieneen latenttitilaan, ja näin se tallentaa vain kuvan tärkeät osat. Kohinanpoistajien koulutuksessa aloitamme alkuperäisistä kuvista ja käytämme kuvia, joihin on lisätty keinotekoista kohinaa, autokooderin syötteenä.
  • Superresoluutio, eli kuvan resoluution parantaminen. Aloitamme korkearesoluutioisista kuvista ja käytämme matalamman resoluution kuvaa autokooderin syötteenä.
  • Generatiiviset mallit. Kun autokooderi on koulutettu, dekooderiosaa voidaan käyttää uusien objektien luomiseen satunnaisista latenttivektoreista.

Variatiiviset autokooderit (VAE)

Perinteiset autokooderit pienentävät syötteen ulottuvuutta jollain tavalla ja tunnistavat syötekuvien tärkeät piirteet. Latenttivektorit eivät kuitenkaan usein ole kovin merkityksellisiä. Esimerkiksi MNIST-datasetin tapauksessa ei ole helppoa selvittää, mitkä numerot vastaavat eri latenttivektoreita, koska läheiset latenttivektorit eivät välttämättä vastaa samoja numeroita.

Generatiivisten mallien kouluttamisessa on kuitenkin hyödyllistä ymmärtää latenttitilaa. Tämä ajatus johtaa meidät variatiiviseen autokooderiin (VAE).

VAE on autokooderi, joka oppii ennustamaan latenttiparametrien tilastollisen jakauman, niin sanotun latenttijakauman. Esimerkiksi voimme haluta, että latenttivektorit jakautuvat normaalisti keskiarvolla zmean ja keskihajonnalla zsigma (sekä keskiarvo että keskihajonta ovat jonkin ulottuvuuden d vektoreita). VAE:n enkooderi oppii ennustamaan nämä parametrit, ja dekooderi käyttää satunnaista vektoria tästä jakaumasta rekonstruoidakseen objektin.

Yhteenveto:

  • Syötevektorista ennustamme z_mean ja z_log_sigma (keskihajonnan sijaan ennustamme sen logaritmin)
  • Otamme vektorin sample jakaumasta N(zmean,exp(zlog_sigma))
  • Dekooderi yrittää dekoodata alkuperäisen kuvan käyttäen sample-vektoria syötteenä

Kuva tästä blogikirjoituksesta kirjoittanut Isaak Dykeman

Variatiiviset autokooderit käyttävät monimutkaista häviöfunktiota, joka koostuu kahdesta osasta:

  • Rekonstruktiohäviö on häviöfunktio, joka osoittaa, kuinka lähellä rekonstruoitu kuva on kohdetta (esimerkiksi keskineliövirhe, MSE). Se on sama häviöfunktio kuin tavallisissa autokoodereissa.
  • KL-häviö, joka varmistaa, että latenttimuuttujien jakaumat pysyvät lähellä normaalia jakaumaa. Se perustuu Kullback-Leiblerin divergenssiin - metriikkaan, jolla arvioidaan kahden tilastollisen jakauman samankaltaisuutta.

Yksi VAE:n tärkeistä eduista on, että niiden avulla voimme luoda uusia kuvia suhteellisen helposti, koska tiedämme, mistä jakaumasta voimme ottaa näytteitä latenttivektoreille. Esimerkiksi, jos koulutamme VAE:n 2D-latenttivektorilla MNIST-datasetilla, voimme muuttaa latenttivektorin komponentteja saadaksemme erilaisia numeroita:

vaemnist

Kuva Dmitry Soshnikovilta

Huomaa, kuinka kuvat sulautuvat toisiinsa, kun alamme ottaa latenttivektoreita eri osista latenttiparametritilaa. Voimme myös visualisoida tämän tilan 2D-muodossa:

vaemnist cluster

Kuva Dmitry Soshnikovilta

✍️ Harjoitukset: Autokooderit

Opi lisää autokoodereista näissä vastaavissa muistikirjoissa:

Autokooderien ominaisuudet

  • Dataan sidottu - ne toimivat hyvin vain sellaisten kuvien kanssa, joilla ne on koulutettu. Esimerkiksi, jos koulutamme superresoluutioverkon kukilla, se ei toimi hyvin muotokuvilla. Tämä johtuu siitä, että verkko voi tuottaa korkeamman resoluution kuvan ottamalla yksityiskohtia koulutusdatan oppimista piirteistä.
  • Häviöllinen - rekonstruoitu kuva ei ole sama kuin alkuperäinen kuva. Häviön luonne määräytyy koulutuksessa käytetyn häviöfunktion mukaan.
  • Toimii merkitsemättömällä datalla

Jälkikysely

Yhteenveto

Tässä oppitunnissa opit erilaisista autokooderityypeistä, joita tekoälytutkija voi käyttää. Opit, kuinka niitä rakennetaan ja kuinka niitä käytetään kuvien rekonstruointiin. Opit myös VAE:sta ja sen käytöstä uusien kuvien luomiseen.

🚀 Haaste

Tässä oppitunnissa opit käyttämään autokoodereita kuvien kanssa. Mutta niitä voidaan käyttää myös musiikkiin! Tutustu Magenta-projektin MusicVAE -projektiin, joka käyttää autokoodereita musiikin rekonstruinnin oppimiseen. Tee kokeiluja tämän kirjaston kanssa nähdäksesi, mitä voit luoda.

Jälkikysely

Kertaus ja itseopiskelu

Lisätietoja autokoodereista löydät näistä resursseista:

Tehtävä

TensorFlow-muistikirjan lopussa on 'tehtävä' - käytä sitä tehtävänäsi.


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äinen asiakirja 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ä.