Neurokuvatreenit -mistä on kysymys

Neurokuvatreenien idea on valottaa kuinka neuroverkkojen ja syväoppimisen pohjalta voidaan käsitellä ja luoda kuvia aivan uudella tavalla. Lähestymistapa käytännönläheinen, käydään suoraan asiaan, edetään yksinkertaisesta mutkikkaampaan, käyttäen samoja palikoita uudelleen ja tarpeen mukaan ottamalla mukaan uutta. Keskiössä on kuva ja kuvanteko. Ei lähdetä ensin käymään läpi neuroverkkojen perusteita, ei myöskään pythonohjelmointia. …

Continue reading

Neurokuvatreenit -kirjastoja

KESKENERÄINEN Tässä esitellään lyhyesti koodissa käyttämiämme kirjasto-ohjelmia. Moni on sanonut, ettei oikein ole perehtynyt tuohon pythoniin. Itse asiassa useinkaan kyse ei ole pythonin vaikeudesta, vaan käytettyjen kirjasto-ohjelmien piirteistä, jotka taas juontuvat siitä että niitä käytetään mutkikkaiden asioiden tekemiseen. PYTORCH Pythonissa itsessään ei ole tukea moniulotteisen datan käsittelylle eikä GPU-laskennalle. Moniulotteinen …

Continue reading

Neurokuvatreenit, harj 2+

Vaikka käsittelemme kuvantekoa ja käsittelyä neuroverkoilla, suuri osa kehittelystä ja koodaustyöstä liittyy muuhun kuin itse algoritmiin. Edellisessä artikkelissa jo törmäsimme mm. siihen, miten joudutaan muuntamaan kuvia eri esitystapojen välillä (esim. 0..1 pikselikuvista -1..1 tensoreiksi), kun haluamme ja on järkevääkin käyttää valmiita kirjastoja. Tähänastisten skriptien varmaankin suurin käytännön ongelma on se …

Continue reading

Neurokuvatreenit, harj 2

Ensimmäisessä osassa tutustuimme kuvan luomiseen tavoitefunktion avulla, siitä syntyi vihreä neliö. Alustimme uuden kuvan satunnaisesti ja tavoitekuvan taas alustimme pelkästään vihreillä pikseleillä. Annoimme sitten koulutusprosessin mitata eroa tavoitteeseen nähden ja sen avulla ohjasimme pikseleiden arvot kohti tavoitetta. Tässä ei toki tapahtunut vielä mitään uutta tai hyödyllistä, saimme kopion vihreästä neliöstä. …

Continue reading

Neurokuvatreenit, harjoitus 1

Näissä treeneissä tutustutaan neuroverkkopohjaiseen kuvankäsittelyyn, tehdään tai muutetaan pikselikuvia uudella tavalla, ikäänkuin ohjaamalla kuvaa itseään, sen jokaista pikseliä, kohti haluttua lopputulosta, sen sijaan että kirjoitettaisiin koodia joka lukee ja muuttaa itse pikseleitä. Tässä ensimmäisessä osassa ei vielä käytetä edes neuroverkkoakaan. Kokeillaan vain, mitä kuvan ohjaaminen kohti tavoitetta käytännössä tarkoittaa. Periaate …

Continue reading

Neurokuvamuistelmat, osa 1 (syksy 2015)

Kesällä 2015 olin kiinnostunut valokuvien pelkistämisestä ohjelmallisin keinoin, Processing ja OpenCV -kirjastojen avulla. En kuitenkaan päässyt niin pitkälle kuin halusin, ja aloin etsiä uusia, rajumpia tekniikoita kokeiltavaksi. Juuri samoihin aikoihin julkaistiin kaksi neuroverkkopohjaisen kuvankäsittelyn ja -generoinnin perusratkaisua: Googlen DeepDream, jonka estetiikka ei yhtään vedonnut minuun, ja neural-style, jonka sanottiin pystyvän …

Continue reading

Neuraalista taidegrafiikkaa etsimässä

Tutustuin neuraaliseen kuvankäsittelyyn kaksi ja puoli vuotta sitten tyylimuunnoksen kautta. Tyylimuunnoksessa luodaan uusi kuva, jonka sisältö pohjautuu yhteen mallikuvaan, värien ja tekstuurin käyttö taas toiseen mallikuvaan. Viimeisen vuoden ajan olen kuitenkin enimmäkseen kokeillut menetelmiä, joissa neuroverkko oppii itse tekemään kuvia, tai muuntamaan kuvaa oppimansa perusteella. Mitään yksittäistä tyylimallia ei ole …

Continue reading

Tyhjyydestä ja maailman rakennusaineksista

Keväällä 2000 menin harrastuspohjalta juutalaisuuden tutkijoiden konferenssiin ja pidin esitelmän ”Slimy stones and philosophy”. Limaiset kivet kiinnostivat monia ja pieni huone oli tupaten täynnä kuulijoita. Tästä alkoi puolentoista vuosikymmenen retkeni judaistiikan opiskelijana ja tutkijana. Limaiset kivet? Ja filosofia? Juttu liittyy siihen miten juutalaiset ovat vuosisatojen aikana yrittäneet tulkita ja soveltaa …

Continue reading

Neuroverkot -käytännön johdanto 3

Edellisessä osassa näimme kuinka yksittäinen neuroverkon solu käsittelee numeerista tietoa ja kuinka näistä soluista voidaan koota kerroksia ja näistä monikerroksisia neuroverkkoja. Katsotaan seuraavaksi miten neuroverkolla voidaan käsitellä kuvia. Mustavalkoinen kuva voidaan esittää kaksiulotteisena taulukkona, jossa kuvat pikselit on esitetty numeerisesti, esim. lukuina nollasta yhteen, jossa nolla vastaa mustaa ja yksi …

Continue reading

Neuroverkot -käytännön johdanto 2

Tässä osassa katsotaan hieman neuroverkon sisälle, sen rakenteeseen ja toimintaan. Tässä vaiheessa lähdemme liikkeelle yksittäisestä keinotekoisesta ”hermosolusta” ja kokeilunhaluiset voivat myös itse yrittää kokeilla kuinka sellainen toimii ja oppii. Katsomme myös kuinka näistä ”soluista” kootaan kerroksia ja kerroksista edelleen suurempia verkkoja. Neuroverkon perusosanen, keinotekoinen ”hermosolu”, perseptroni, laskee käytännössä syötteiden i …

Continue reading