Tekoäly ja sähköenergia

Tekoälyn historia ulottuu ainakin 1940-luvulle, kun Warren McCulloch ja Walter Pitts kehittivät keinotekoisen matemaattisen hermosolun. Yksinkertainen matemaattinen neuroni vastaa fysiologista neuronia, kun tulkitsemme sooman aktivointifunktioksi, dendriitit syötteeksi ja aksonin tai aksonit ulostuloksi. Systeemiteoriaa siis. Yritän tässä tekstissä selittää lyhyesti esimerkin avulla, miksi tekoäly on sovellettua tilastotiedettä, miksi se kuluttaa sähköä, ja miten se liittyy suurimman uskottavuuden estimointiin tilastotieteessä.

Modernit syvät neuroverkot ovat karkeasti monimutkaisia verkostorakenteita, jotka on kasattu näistä yksittäisistä matemaattisista hermosoluista. Niitä voi olla miljardeja. Tämä on nykyisen tekoälyn ytimessä. Tarkastellaanpa neuroverkkoa hieman tarkemmin. Ajatellaan, että meillä on n-ulotteinen dendriittinen syötevektori x, ja aktivointifunktio (sooma) f, sekä jokin oppimisaineisto y. Neuroni tekee siis tätä:

$$\hat{y}=f(w\cdot x)$$

Lisäksi tarvitsemme jonkin sakkofunktion L, joka kertoo meille, kuinka hyvin tai huonosti neuroni on viritetty. Virityksellä tarkoitan sitä, että neuronilla on n parametria w, jotka muuttavat vektorimuotoista sisääntulodataa skalaariksi jonkin sisätulon avulla. Voimme nyt kuvata neuronin oppimistoimintaa näin :

$$\min_{w_{i}}L(w_{i};x^{i},y)$$

Eli neuronin oppimisprosessi tarkoittaa sitä, että neuroni etsii sellaisen parametrivektorin w, joka minimoi sakkofunktion L arvon, kun on annettu syötevektori x ja tavoite y. Monimutkainen neuroverkko voidaan rakentaa tällaisista yksinkertaisista elementeistä, kasaamalla niitä päällekäin ja rinnakkain, toisin sanoen, toisen neuronin sisääntulo vastaa jonkin toisen neuronin ulostuloa jne. Ohessa kuva aiheesta.

Sakkofunktio on siis joku funktio, joka mittaa ensin poikkeaman tavoitteen ja ulostulon välillä, ja sitten sakottaa sitä. Pohjimmiltaan kyse on funktion approksimoinnista. Halutaan rakentaa sellainen tilastollinen malli, eli neuroverkko, joka replikoi haluttua todellisuutta mahdollisimman hyvin.

Neuroverkon oppiminen on tilastollista päättelyä

Ajatellaan, että meillä on jokin aineisto ja ulostulo, joka tuottaa meille tilastollisen otosjakauman todellisista havainnoista tai tavoitteista, merkitään sitä:

$$P(y\vert x)$$

Eli tilastollinen jakauma tavoitteille y, kun tiedämme syötteen x. Neuroni on tilastollinen malli, joka vastaavasti tuottaa ennusteena tai ekstrapolaationa jonkin jakauman, kun sillä on tietty parametrisointi w. Merkitään sitä:

$$Q(y\vert x)$$

Eli nyt P kuvaa tavoiteltua jakaumaa, ja Q kuvaa mallin tuottamaa jakaumaa. Nyt meidän täytyy määritellä näiden kahden jakauman erotukselle jokin sakkofunktio. Tehdään ensin logaritmimuunnokset, jotta mittakaavat pelaavat paremmin, eli nyt meillä on tarkasteltavana erotus

$$\log(P)-\log(Q)=\log(\frac{P}{Q})$$

Ajatellaan nyt pedagogista syistä, että tämä virhetermi täytyy painottaa todellisen maailman havainnoilla, eli voimme ajatella, että siedämme virhettä silloin paremmin, kun todellisen maailman havainto on harvinainen. Voimme määritellä tällöin seuraavan odotusarvon:

$$L=\int P \log(\frac{P}{Q})dy$$

Nyt meidän tulisi löytää sellainen mallin parametrisaatio w, joka minimoi kyseisen integraalin.

Koska ao. integraali on aina ei-negatiivinen, tappiofunktion minimointi on kyseisen integraalin vastaluvun maksimointi, eli

$$w^{\star}=\arg\max_{w}-\int P \log(\frac{P}{Q})dy$$

Jaetaan kahteen osaan:

$$w^{\star}=\arg\max_{w}-\int P \log(P)+\int P \log(Q)dy$$

Ensimmäinen termi on vain jokin vakio (todellisen jakauman differentiaalientropia), eli päädymme hakemaan maksimia

$$w^{\star}=\arg\max_{w}\int P \log(Q)dy$$

Jos oletamme, että voimme viedä derivaattaoperaattorin integraalin sisään, saamme suurten lukujen lain nojalla:

$$\frac{1}{N}\sum_{n=1}^{N}\nabla_{w}\log(Q(y\vert x,w))=0$$

Mutta tämä on taas vain välttämätön ehto suurimman uskottavuuden päättelyssä, kun uskottavuusfunktio on Q. Siten tekoälyn oppiminen on ainakin tässä kontekstissa yksinkertaisesti tilastollista päättelyä. Voimme ajatella neuroverkkoa monimutkaisena epälineaarisena regressiomallina, jolla on hirmuinen määrä parametreja, ja parametrit estimoidaan sitten vaikka suurimman uskottavuuden menetelmällä. Suurimman uskottavuuden menetelmä taas perustuu matemaattiseen optimointiin, jolloin jos kohdefunktio on ei-konveksi, sen globaalin optimin löytäminen numeerisesti on hankalaa.

Luonnon optimointi perustuu stokastiseen gradienttimenetelmään yhdistettynä liikemäärään (Newtonin toinen laki ja kohinaa kvanttitasolla), eli luontokin joutuu painimaan ilmeisesti ei-konveksien optimointiongelmien kanssa.

Miksi tekoäly kasvaa?

Visio: tulevaisuudessa meillä on VR-todellisuudessa interaktiivisia elokuvia, joissa voit itse olla elokuvan päähahmo. Tekoäly juonittaa elokuvaa dynaamisesti valintojesi mukaan. Jo nyt tekoäly voi tehdä fotorealistisia videoita. Nämä videot tulevat olemaan mahdottoman suosittuja, ja siksi niitä tullaan myös tekemään. Neuroverkkojen määrä ja koko tulevat olemaan infernaalisen suuria. Vastaavasti karrikoiden olemme tilanteessa, jossa laskentatehoa käytetään enenevissä määrin juuri isojen neuroverkkojen sakkofunktioiden numeeriseen optimointiin. Tekoälyn oppiminen koostuu siis, mutkat suoraksi ajatellen, sellaisesta hyvin monimutkaisen sakkofunktion globaalin optimin etsimisestä, missä voi olla satoja miljoonia neuroneja, ja miljardeja, miljardeja parametreja. Silloin funktio L on todella monimutkainen, ei-konveksi, se elää parametriavaruudessa, jossa voi olla miljardeja parametreja. Kun neuroneja kasataan päällekäin ja ristiin, syvä neuroverkko tekee sakkofunktiosta L todella monimutkaisen. Tämä tarkoittaa uskottavuuspäättelyn näkökulmasta karkeasti teknisesti sitä, että uskottavuusfunktioon liittyvä nk. Fisherin informaatiomatriisi on valtava ja ei-definiitti. Tämä taas tarkoittaa sitä, että kun jo kvadraattinen optimointi on NP-vaikea, sähköä tulee kulumaan, ja paljon.

https://www.sciencedirect.com/science/article/abs/pii/002001909090100C

Miksi sähköä menee?

Jatkossa siis erilaiset prosessorit pyörittävät datakeskuksissa vaikkapa stokastista gradienttimenetelmää (SGD) liikemäärällä (Momentum), joka on parhaita numeerisen optimoinnin algoritmeja ei-konveksin optimoinnin kontekstissa. Voimme ajatella, että uskottavuusfunktio on sileä pinta triljoonaulotteisessa parametriavaruudessa, jossa on vuoria ja laaksoja, ja sitten algoritmi yrittää etsiä optimia tuon funktion pinnalla. Stokastiikka auttaa pomppimaan satulapisteiden yli, ja liikemäärä auttaa menemään laakeiden alueiden yli.

Miksi sähköä ei saada tarpeeksi?

Datakeskusten sisällä pyörivä ei-konveksi optimointi tietysti nostaa sähkön kysyntää. Tämä taas pitäisi nostaa insentiiviä kasvattaa tuotantoa, mutta tuotannolle on monta pullonkaulaa. Esimerkiksi ydinvoiman tekeminen kestää, luvitus, rakentaminen yms. Toisaalta tuulimyllyjä ei ehkä haluta niin paljon, että niitä on mökkirannat täynnä. Tekoäly tarvitsee nähdäkseni juuri perusvoimaa, koska virtuaalitodellisuudessa ollaan jatkossa enemmän ja enemmän. Matrixin pyöritys ei ole halpaa 🙂

Kommentit

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *