Rajoitetut Boltzmannin koneet – yksinkertaistettuna

Mitä ovat rajoitetut Boltzmannin koneet?

RBM:t ovat kaksikerroksinen keinotekoinen neuroverkko, jolla on generatiiviset ominaisuudet. Niillä on kyky oppia todennäköisyysjakauma sen syöttöjoukon yli. RBM:t keksi Geoffrey Hinton, ja niitä voidaan käyttää dimensioiden pienentämiseen, luokitteluun, regressioon, yhteistoiminnalliseen suodatukseen, ominaisuuksien oppimiseen ja aiheiden mallintamiseen.

RBM:t ovat erityinen Boltzmann-koneiden luokka, ja ne ovat rajoitettuja näkyvien ja piilotettujen yksiköiden välisten yhteyksien suhteen. Tämä tekee niiden toteuttamisesta helppoa verrattuna Boltzmannin koneisiin. Kuten aiemmin todettiin, ne ovat kaksikerroksisia neuroverkkoja (joista toinen on näkyvä kerros ja toinen piilokerros), ja nämä kaksi kerrosta on yhdistetty täysin kaksijakoisella graafilla. Tämä tarkoittaa, että jokainen näkyvän kerroksen solmu on yhteydessä jokaiseen piilokerroksen solmuun, mutta kaksi samaan ryhmään kuuluvaa solmua ei ole yhteydessä toisiinsa. Tämä rajoitus mahdollistaa tehokkaammat koulutusalgoritmit kuin mitä Boltzmann-koneiden yleiselle luokalle on saatavilla, erityisesti gradienttipohjainen kontrastiivinen divergenssialgoritmi.

Rajoitettu Boltzmann-kone näyttää tältä:

Miten rajoitetut Boltzmann-koneet toimivat?

Rajoitetussa Boltzmann-koneessa (RBM) meillä on symmetrinen kaksiosainen graafi, jossa yksikään kaksi samaan ryhmään kuuluvaa yksikköä ei ole yhdistetty. Useita RBM:iä voi olla myös stacked ja niitä voidaan hienosäätää gradienttilaskeutumisen ja back-propagation prosessin avulla. Tällaista verkkoa kutsutaan Deep Belief Networkiksi. Vaikka RBM:iä käytetään satunnaisesti, useimmat syväoppimisyhteisön jäsenet ovat alkaneet korvata niiden käytön yleisillä vastakkaisverkoilla (General Adversarial Networks) tai varioivilla autokoodereilla (Variational Autoencoders).

RBM on stokastinen neuroverkko, mikä tarkoittaa sitä, että kukin neuroni käyttäytyy jonkin verran satunnaisesti aktivoituessaan. RBM:ssä on kaksi muuta harhautusyksikkökerrosta (piilotettu harhautus ja näkyvä harhautus). Tämä erottaa RBM:n autokoodereista. Piilotettu harhautus RBM tuottaa aktivoinnin eteenpäin menevässä syötössä ja näkyvä harhautus auttaa RBM:ää rekonstruoimaan syötteen taaksepäin menevässä syötössä. Rekonstruoitu tulo on aina erilainen kuin todellinen tulo, koska näkyvien yksiköiden välillä ei ole yhteyksiä eikä näin ollen tapaa siirtää tietoa keskenään.

Kuvan lähde

Yllä olevassa kuvassa on esitetty RBM:n harjoittelun ensimmäinen vaihe useilla tuloilla. Syötteet kerrotaan painoilla ja sen jälkeen lisätään bias. Tulos ohjataan sitten sigmoidisen aktivointifunktion läpi, ja ulostulo määrittää, aktivoidaanko piilotila vai ei. Painot ovat matriisi, jonka rivien lukumääränä on tulosolmujen lukumäärä ja sarakkeiden lukumääränä piilosolmujen lukumäärä. Ensimmäinen piilosolmu saa syötteiden vektorikertoimen kerrottuna painojen ensimmäisellä sarakkeella, ennen kuin siihen lisätään vastaava bias-termi.

Ja jos ihmettelet, mikä on sigmoidifunktio, tässä on kaava:

Kuvan lähde: Eli yhtälö, jonka saamme tässä vaiheessa, olisi,

jossa h(1) ja v(0) ovat piilotetun ja näkyvän kerroksen vastaavat vektorit (pylväsmatriisit), joiden yläindeksi on iteraatio (v(0) tarkoittaa syötettä, jonka annamme verkolle) ja a on piilotetun kerroksen harhavektori.

(Huomaa, että tässä on kyse vektoreista ja matriiseista eikä yksiulotteisista arvoista.)

Kuvan lähde

Nyt tässä kuvassa näkyy käänteisvaihe eli rekonstruktiovaihe. Se on samanlainen kuin ensimmäinen vaihe, mutta vastakkaiseen suuntaan. Yhtälö tulee olemaan:

Leave a Reply