Neuroverkoista
Hallivuori, Joni (2023-02-02)
Neuroverkoista
Hallivuori, Joni
(02.02.2023)
Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.
avoin
Julkaisun pysyvä osoite on:
https://urn.fi/URN:NBN:fi-fe2023030329629
https://urn.fi/URN:NBN:fi-fe2023030329629
Tiivistelmä
Neuroverkoilla tarkoitetaan algoritmia, jonka on tarkoitus kuvata ihmisen neuro-
niverkkoa. Neuroverkot muodostuvat tasoista neuroneita, joiden "aktivaatioiden"
perusteella saadaan seuraavan tason neuroneiden aktivaatiot. Ensimmäisen tason
aktivaatiot ovat syöte, jota käsitellään niin sanottujen piilotettujen tasojen läpi ja
lopuksi viimeisen tason neuroneista saadaan tuloste. Neuronien aktivoinnit laske-
taan edellisestä tasosta tasomuunnoksen avulla. Useimmiten tasomuunnokset ovat
neuronikohtaisia painotettuja summia joihin lisätään jokin tietty vakio, ja tämän
jälkeen lopullinen aktivaatio saadaan tästä jonkin aktivointifunktion avulla. Yleisiä
aktivointifunktioita ovat hyperbolinen tangentti ja ReLU. Yksittäisten painotettu-
jen summien laskeminen on kuitenkin raskasta, ja painotuksista tehdään neliömat-
riisi ja vakioista vektori. Tällöin laskentatehokkuutta voidaan parantaa lineaarial-
gebran keinoin. Neuroverkkoa opetetaan muuttamalla painomatriisia ja vakiovek-
toria, ja muutoksen suunnan antaa opetusdata. Neuroverkot ovat mielenkiintoinen
ratkaisu tietynlaisiin algoritmiongelmiin. Eräs yksinkertaisimmista esimerkeistä on
käsinkirjoitettujen numeroiden tunnistus. Ensin ongelma tuntuu yksinkertaiselta,
mutta käsin kirjoitetuissa numeroissa on hyvin paljon eroja. Tämä voidaan ratkais-
ta neuroverkoilla helposti, kun tehdään kuvatilasta syötetaso aina samalla tavalla ja
opetetaan verkkoa suurella määrällä käsinkirjoitettuja numeroita. Emme varsinai-
sesti tiedä mitä lopputulos oikeasti tekee piilotetuilla tasoilla, mutta lopputuloksella
on helposti yli 95 prosentin tarkkuus. Neuroverkoilla voidaankin ratkaista hyvällä
tarkkuudella ja kevyellä laskennallisuudella useita ongelmia, jotka olisivat laskennal-
lisesti hankalia normaaleilla algoritmeilla, mutta itse neuroverkon kouluttaminen on
vastaavasti laskennallisesti raskasta. Neuroverkkojen koulutus on usein kymmenien
tuhansien muuttujien suhteen optimointia
niverkkoa. Neuroverkot muodostuvat tasoista neuroneita, joiden "aktivaatioiden"
perusteella saadaan seuraavan tason neuroneiden aktivaatiot. Ensimmäisen tason
aktivaatiot ovat syöte, jota käsitellään niin sanottujen piilotettujen tasojen läpi ja
lopuksi viimeisen tason neuroneista saadaan tuloste. Neuronien aktivoinnit laske-
taan edellisestä tasosta tasomuunnoksen avulla. Useimmiten tasomuunnokset ovat
neuronikohtaisia painotettuja summia joihin lisätään jokin tietty vakio, ja tämän
jälkeen lopullinen aktivaatio saadaan tästä jonkin aktivointifunktion avulla. Yleisiä
aktivointifunktioita ovat hyperbolinen tangentti ja ReLU. Yksittäisten painotettu-
jen summien laskeminen on kuitenkin raskasta, ja painotuksista tehdään neliömat-
riisi ja vakioista vektori. Tällöin laskentatehokkuutta voidaan parantaa lineaarial-
gebran keinoin. Neuroverkkoa opetetaan muuttamalla painomatriisia ja vakiovek-
toria, ja muutoksen suunnan antaa opetusdata. Neuroverkot ovat mielenkiintoinen
ratkaisu tietynlaisiin algoritmiongelmiin. Eräs yksinkertaisimmista esimerkeistä on
käsinkirjoitettujen numeroiden tunnistus. Ensin ongelma tuntuu yksinkertaiselta,
mutta käsin kirjoitetuissa numeroissa on hyvin paljon eroja. Tämä voidaan ratkais-
ta neuroverkoilla helposti, kun tehdään kuvatilasta syötetaso aina samalla tavalla ja
opetetaan verkkoa suurella määrällä käsinkirjoitettuja numeroita. Emme varsinai-
sesti tiedä mitä lopputulos oikeasti tekee piilotetuilla tasoilla, mutta lopputuloksella
on helposti yli 95 prosentin tarkkuus. Neuroverkoilla voidaankin ratkaista hyvällä
tarkkuudella ja kevyellä laskennallisuudella useita ongelmia, jotka olisivat laskennal-
lisesti hankalia normaaleilla algoritmeilla, mutta itse neuroverkon kouluttaminen on
vastaavasti laskennallisesti raskasta. Neuroverkkojen koulutus on usein kymmenien
tuhansien muuttujien suhteen optimointia