lauantai 27. helmikuuta 2010

Lisää AIXI:sta

Jäi edellä varmaankin tuo AIXI-periaate hämäräksi, vaikka linkistä ja googlaamalla itse kukin löytää mielivaltaisen paljon (mutta usein vaikeasti, vain tohtorispohjalta sulatettavaa) tietoa. Siksi ajattelin jatkaa “selkeää”, insinööritasoista ihastelua ja pohdiskelua Hutterin kauniista ajatusrakennelmasta.



Kuvassa on kaksi järjestelmää, jotka molemmat ovat “turing-yhteensopivia” laskennallisia, aikadiskreettejä malleja. Alempi laatikko, ympäristö, voi tietysti ainakin osaltaan (paitsi palautteen muodostus?) olla myös analoginen järjestelmä, siis osa luontoa. Mutta oletetaan, että sekin on digitaalinen, epäjatkuva kone. Ylempi laatikko on älykäs, oppiva järjestelmä, itsenäinen toimija.

Tapahtumien kulku on seuraava

1. Ympäristö kertoo Agentille hetkellistilansa.
2. Agentti suorittaa toimenpiteen, joka perustuu ympäristön tilaan ja Agentiin omaan tilaan.
3. Agentin toimenpide muuttaa ympäristön sisäistä tilaa. Samoin “ympäristö”-järjestelmän tietty osa antaa Agentille palauteen edelliseen toimenpiteen hyväksyttävyydestä, siis “arvottaa” toimenpiteen. Lisäksi ympäristön uusi tila kerrotaan Agentille.
4. Jatketaan kohdasta (2.), mutta Agentti ottaa huomioon palautteen ja muuttaa toimintatapaansa siten, että se uusilla toimenpiteillään pyrkii maksimoimaan, lyhyellä ja pitkällä aikavälillä, kertyvän palautteen kokonaismäärän.

Agentin oppimisella on kaksi erillistä tavoitetta:

1. Ennustaa suorittamiensa toimenpiteiden lyhyen ja pitkän aikavälin seuraukset ympäristön tilaan. Siten Agentti myös oppii saamaan aikaiseksi toimenpiteidensä kautta tavoitelemansa ympäristön tilan.
2. Palauteen kertymän maksimoiminen opettaa Agentille “arvoja”. Mikä toimenpide ja mikä ympäristön tila on tavoittelemisen arvoinen, mikä vältettävää. Palauteen antamisella ympäristö (tai “opettaja" ympäristön osana) ohjaa Agentin oppimista oikeaan suuntaan.

Jos AIXI-mallia verrataan biologiseen maailmaan, niin biologisilla agenteilla oma keho on osa ympäristöä. Oma keho antaa toimenpiteille palautetta, hyvää oloa ja kipuaistimuksia. Biologista agenttia vastaa abstrakti, kehosta erillään oleva, “sinänsä tahdoton” keskushermosto.

AIXI-mallin avulla Hutter määrittelee yleisen älykkyyden ja matemaattisesti osoittaa, että jos Agentin laskennalliset resulssit ovat äärettömät, sen oppimisella ja saavutettavalla älyllisellä suorituskyvyllä esitetyn mallin mukaisessa ympäristössä ei ole mitään ylärajaa.

Hutterin malli on saanut paljon kritiikkiä, luonnollisestikin, älykkyyden olemuksen liiallisesta yksinkertaistamisesta, mutta minä olen vakuuttunut, että suurin osa kritiikistä perustuu väärinkäsityksiin, perusteettomiin oletuksiin Agentin ja Ympäristön olemuksien rajoista.

Mielestäni AIXI-mallin voima on juuri sen yksinkertaisuudessa. Älykkyyttä ei tarvitse mystisoida. Oletan, että kaikki muut kilpailevat, mutta realistiset älykkyyden määritelmät voidaan redusoida AIXI-mallin rakenteeksi, useimmiten ympäristömallin laskennallisiksi ulottuvuuksiksi.

Agentin opettaminen.


Jos ajatellaan, että ympäristön “kolmogorov-monimutkaisuus” on hyvin suuri, esim miljardi riviä C++-koodia tarvitaan sen toiminnallisuuden toteuttamiseen, miten Agentti opetetaan toimimaan tällaisen ympäristön kanssa? Jos ympäristö kaikessa “sekavuudessaan” iskettäisiin suoraan “vastasyntyneen” Agentin toimintakentäksi, olisi luonnollista, että Agentti ei saa mitään aikaiseksi, eikä edes opi, kuin äärimmäisen hitaasti ja tehottomasti. Näin kävisi ihmislapsellekin ilman vanhempien tukea. Agentti on siis opetettava suunnilleen samoin kuin ihmislapsi: tyvestä puuhun. Kaikki perustuu siihen, että maailma rakentuu hierarkisesti ja opetus edistyy hierarkiaa noudattaen, yksityiskohdista kokonaisuuksiin ja korkeampiin abstraktiohin.

Kuvassa on yksinkertaisen agentin sensorinen ja motorinen hierarkia. Jokainen pieni laatikko osaa useita, mahdollisesti satoja sekvenssejä, aina erilaisia kuin muut saman hierarkian laatikot. Sensorisen puolen laatikot tunnistavat sekvenssejä ja raportoivat tunnistamansa sekvenssin tunnuksen, symbolin hierarkiassa ylöspäin. Symbolien sarja on taas uusi sekvenssi, jonka ylemmän hierarkian laatikko tunnistaa, jne. Motorisen puolen laatikot generoivat sekvenssejä. Ylhäältä tullut symboli laukaisee symbolia vastaan sekvenssin, jonka tilat taas vastaavat alemman hierarkian sekvenssejä. Laatikot voidaan toteuttaa neuroverkoilla tai muilla tekniikoilla, vain toiminnallisuus on ratkaisevaa.

Opetuksen alussa opetetaan Agentille ihan alimman tason sekvenssejä ja niitä vastaavia motorisia toimenpidesekvenssejä: siis mitkä toimenpiteet, motoriset sekvenssit, aiheuttavat ympäristön tilassa vastaavat perustavaa laatua olevat sekvenssit. Näitä lapsikin opiskelee ensimmäisten viikkojensa, kuukausienssa aikana: imemisen hienosäätöä, omien käsiensä ohjailuja, ym. Esim. tarkoituksellinen esineeseen tarttuminen näköaistia hyödyntäen on valtava välisaavutus. Palautesignaali opastaa Agentin generoimaan “hyviä sekvenssejä”, jotka vastaavat sopivia ympäristön yksinkertaisia tiloja. Kun sekä motorisen, että sensorisen hierarkian alin taso, alimmat tasot, on opittu, vasta sen jälkeen siirrytään seuraavien ylempien tasojen, monimutkaisempien sekvenssien opiskeluun. Ja nämä tasot luonnollisesti soveltavat aiemmin opittuja sekvenssejä. Huomaa, että tällainen opettaminen antaa automaattisesti myös Agentille hierarkisen arvojärjestelmän, palautesignaalin tuloksena. Tyylikästä, eikö vain!

Jos ym. periaattessa on epäselvää ja muutenkin, kannatan tutustumista Jeff Hawkinsin “On Intelligence” -kirjaan tai vastaavan suomennokseen, joka kyllä löytyy kirjastoista.

Harrasteprojektista

Toivosin, että en olisi Suomessa ainoa, joka haaveilee toteuttavansa harrastepohjaisena projektina aidosti käsitteelliseen ajatteluun pystyvän kognitiivisen järjestelmän, pienen, autonomisen robotin. Vain onko niin, että kaikki, joilla on tähän kykyjä, keskittyvät ammattiurallaan etenemiseen, toteuttaen yritysmaailmassa yhtä vaativia, tai vaativampia hankkeita, jotka eivät kuitenkaan ole läheskään yhtä hohdokkaita ( mutta jotka tuottavat oikeasti rahaa, ehkä toteuttajalleen, mutta eteenkin osakkeenomistajille). Toivoisin siis jonkun vähemmän urahakuisen, tai sellaisen, jolla on ura jo takanaan, harkitsevan tällaista superhohdokasta projektia. Minulla on osa-aikaeläke vetämässä, siis vapaa-aikaa pian nykyistä enemmän käytettävissä tällaisiin korkeampiin sfääreihin kurkottamiseen.

keskiviikko 17. helmikuuta 2010

"Hutter yhteensopiva älykkyys"

Johdanto

Tietojenkäsittelyssä on käsite "turingin kone", jolla tarkoitetaan Alan Turingin määrittelemää yksinkertaista, kömpelöä hypoteettista tietokonetta. Kone oli kuitenkin siitä erityinen, että se pystyi laskemaan minkä tahansa asian, joka yleensä oli laskettavissa, kunhan koneelle annettiin vain tarpeeksi, jopa äärettömästi aikaa. Eräs edelleen johdettu jatkopäätelmä turingin koneesta oli, että se pystyi emuloimaan mitä tahansa muuta digitaalista (käytännössä myös analogista) laskentalaitetta, tietokonetta. Tästä edelleen saatiin käsite "turing-yhteensopiva suoritinarkkitehtuuri" eli tietokonearkkitehtuuri (käytännössä suorittimen käskykanta), joka oli kykenevä emuloimaan kaikkia muita tietokoneita. Yllätys monelle saattaa olla se, että tällainen kone, suoritin, ei ole kovin monimutkainen (kuten ei alkuperäinen turingin konekaan). Koneen käskykannalta vaaditaan perus-bittilogiikan funktiot, muistiin kirjoitukset ja luvut sekä muutama ehdollisen haarautumisen käsky. Siinä oikeastaan kaikki. Käytännössä kaikki toteutetut suorittimet ovat "turing-yhteensopivia".

Em. määrittelyssä häiritsevä seikka on kuitenkin se, että pienten suorittimien rajoitetut muistiavaruudet todellisuudessa estävät esim. 32-bittisten suorittimien emuloinnin 8-bittisiä suorittimia käyttäen. Minun ratkaisuni tähän on laajentaa "turing yhteensopivan suorittimen" käsite laskentasoluksi, joka pitää sisällään suorittimen, muistin ja muutaman viestinlähetyslinkin, joiden avulla useita, mielivaltaisen monta, identtistä, mutta vaatimatonta suoritinta voidaan kytkeä yhteen "laskentapilveksi". Tällaisella pilvellä voidaan teoriassa emuloida minkälaista tahansa laskentamekanismia, esim. ihmisaivoja. Yksi laskentasolu voi olla hyvinkin vaatimaton: esim 8-bittinen suoritin, jonka osoiteavaruuskin on 8-bittinen. Solu sisältäisi siis 256 tavua muistia, sekä koodia että dataa varten. Tai sitten voitaisiin käyttää harward-arkkitehtuuria, jossa data ja koodi erotettaisiin omiin 256:n tavun muisteihinsa. Järkevämpi, nykyaikainen laskentasolu voisi muodostua 32-bittisestä suorittimesta, 16Mtavusta muistia ja esim kahdeksasta sanomalinkistä. Hyvin pian on mahdollista koota esim. 1024 tällaista solua yhdelle ainoalle piirille: 1024 suoritinta ja 16Gtavua muistia. En nyt puutu tällaisen massiivisen multiprosessoinnin ohjelmoinnin ongelmiin ja ratkaisuihin.

Em. laskentasolujen sanomanlähetyslinkkien lukumäärä olisi oltava riittävän suuri, jotta pilven, verkon laajentaminen mielivaltaisen suureksi olisi mahdollista. Vanhemmat nörtit muistavat varmasti Transputer-arkkitehtuurin, jossa linkkejä oli neljä/solu. Neljän linkin avulla on mahdollista toteuttaa mielivaltaisen moniulotteinen hyperkuutioverkko, jonka solmut muodostuvat useasta laskentasolusta. Neljä linkkiä voisi siis olla yhden solun minimimäärä.



Asian ydin, johon edellä halusin viitata, oli se, että "turing-yhteensopiva suoritinarkkitehtuuri" on rakenteellisen monimutkaisuuden kynnystaso, joka mahdollistaa tietyn laajennettavuuden. Tämän laajennettavuuden avulla voidaan identtisillä soluilla toteuttaa mikä tahansa laskennallisesti mahdollinen toteutus, kunhan solujen määrä on riittävä. Laskentapilven rakenne ja suorittimen rakenne eivät sanele pilven laskennallista toiminnallisuutta, vaan ovat kiinteitä. Toiminnallisuuden rajat määrittelee vain pilven koko sekä suorittimiin ladattava ohjelma ja data. Esim FPGA-arkkitehtuuri ei ylitä vastaavaa kynnystä, koska sen laskennallisen toiminnallisuuden sanelee, paitsi yksittäisen makrosolun konfigurointi (vastaa em. laskentasolun ohjelmaa), myös ehdottomasti solujen kytkentä toisiinsa, eli FPGA-toteutuksen nettilista. Siten esim FPGA-makrosolu tai aivojen neuroni eivät ole "turing-yhteensopiva suoritinarkkitehtuuri".

Toinen yhteensopivuus

Tämän pitkähkön johdannon jälkeen tullaan pohdiskelemaani asiaan. Voisiko olla olemassa toinenkin, edellisen kaltainen, mutta merkittävästi korkeampi monimutkaisuuden kynnystaso, jota haluaisin kutsua, paremman nimen puutteessa, "hutter-yhteensopivuudeksi"? AIXI on Marcus Hutterin ideoima hypoteettinen älykkään agentin malli, jossa on tiettyä yhdenmukaisuutta turing-koneen kanssa. Itse asiassa malli muodostuu kahdesta turing-koneesta, joista toinen on älykäs agentti ja toinen mallintaa ympäristöä. Hutterin älykkään AIXI-koneen monimutkaisuus riippuu ympäristön monimutkaisuudesta. Yksinkertaisessa ympäristössä monimutkaisuuden aste voi olla hyvin rajallinen, mutta Hutterin käsite "universaali älykkyys" edellyttää AIXI-koneelta ääretöntä monimutkaisuutta. AIXI-malli toimii ajallisesti ja topologisesti silmukassa, jossa agentti lukee ympäristön tilan, määrittelee ja suorittaa toimenpiteen ympäristölle. Ympäristö vastaa antamalla agentille kaksi arvoa: uuden ympäristön tilan ja "palautteen". Palaute, palkkiosignaali, kertoo toimenpiteen onnistuneisuuden, esim -100%.. +100% asteikolla. Agentin tehtävä on laskea ympäristölle uusi toimenpide ja yrittää oppimalla maksimoida palautteen arvo. Agentti on ehdottomasti oppiva. Sen on opittava ennakoimaan ympäristön uusi tila ja palautteen arvo. Tiedän, että käytän AIXI-termiä hieman väärin, koska viittaan vain ylimmän tason järjestelyyn, enkä Hutterin matemaattiseen esitykseen ideaalisen AIXI-koneen sisäisestä toiminnallisuudesta.

Kynnystason AIXI-kone olisi kykenevä oppimaan jonkin kohtuullisen monimutkaisen ympäristön ja optimoimaan toimintansa, hyötyfunktionsa, kuvatussa ympäristössä. Oleellisista määritelmälle olisi vaadittava ympäristön monimutkaisuus kynnystasolla toimittaessa. Ympäristön monimutkaisuuden määrittelee sitä mallintavan ohjelmiston koko ja monimutkaisuus: kolmogorov-monimutkaisuus. AIXI-agenttin tavoitteellisuus on ulkoisesti annettavan palkkiosignaalin maksimoimista. Muu tavoitteellisuus, esim ulkoa annetun tehtävän toteuttaminen, voidaan tulkita osaksi ympäristöä. Agentti ei siis toiminnallisesti tee eroa "esimiehen" ja toimintaympäristön välillä. Esimies on osa toimintaympäristöä, kuten kaikki muukin havaittava, esim agenttikumppanit.

Kuvattu ajattelutapa ei rajoita agentin sisäistä arkkitehtuuria, mutta minun skenaariossani se voisi muodostua kahdesta tasosta: alisymbolinen taso ja käsitetaso. Molemmat tasot rakentuvat hierarkisista verkoista, joiden sisällä on myös lateraalisia kytkentöjä. Lateraalisten kytkentöjen osuus kasvaa noustessa hierarkiassa ylöspäin.Lisäksi hierarkioiden sisällä tieto virtaa kahteen suuntaan, aistitieto hierarkiassa ylöspäin ja toiminallinen ohjaus alaspäin. Verkkojen solmujen rakenteelle on eri vaihtoehtoja, mutta alisymbolisella tasolla staattisten ja dynamisten hahmojen tunnistus on oleellista ja käsitetasolla tärkeää on rakenteen dynaamisuus: uusia rakenteita luodaan työtilaan ja hävitetään prosessoinnin kuluessa. Agentin on kyettävä alisymbolisista hahmoista, niiden sekvensseistä ja lainalaisuuksista muodostamaan uusia käsitteitä. Mutta tämä kaikki oli vain vihjailua. AIXI-koneen rakenne ei ole tämän jutun keskeistä sisältöä. Tärkeintä on todeta, että se edustaa kynnystasoa, yksinkertaisinta, toimivaa "yleistä älyä". Kunhan tämä ehto täyttyy, agentti on "hutter-yhteensopiva".(En kehtaa ottaa käyttöön käsitettä "jusa-yhteensopiva", Hutter voi hyvin lainata nimeään tähän. Oletan, ettei myöskään Alan Turing nimennyt itse käsitteitä "turing-yhteensopiva" tai "turing-täydellinen".)

Samoin kun ajattelin turing-koneen kanssa, pidän luonnollisena, että myös AIXI-agentit on yhdistettävissä toisiinsa, mahdollistaen mielivaltaisen monimutkaisia älykkäitä järjestelmiä. Näen ajatusrakennelmien, teorioiden, maailmankuvien.. monimutkaisuuden olevan aina hajoitettavissa hierarkisesti eriteltäviksi käsiterakennelmiksi. Mutta tarkoitukseni on, että kokonaisjärjestelmä itse, automaattisesti toteuttaa tämän hajautetun monimutkaisuuden hallinnan. Siten yhden agentin rajalliset kyvyt ovat riittäviä sillä hierakiatasolla, jossa se oppii toimimaan. Sen ei tarvitse paljoa tietää alemmista, eikä ylemmistä tasoista. Näin toimii ihmisorganisaatioidenkin älykkyys. Kukaan ei täysin hallitse organisaation koko toiminnallisuutta. Lattiatasolla ei tarvitse paljon tietää pomojen ongelmista, eivätkä pomot tunne lattiatason osaamisen hienouksia. Ja organisaation keskellä ei tiedetä kummistakaan paljoa, noin periaatteessa, riippuen omasta työhistoriasta.

Luonnostelen siis, että "älypilven" "hutter-yhteensopiva älysolu" olisi kytketty sanomavälityksellä vaikkapa kahdeksaan organisatorisesti alemman tason (mutta rakenteellisesti identtiseen) älysoluun, 32:een lateraaliseen, oman tason naapurisoluun, sekä neljään lähinnä ylemmän tason ("esimies-")soluun, joista yksi olisi "varsinainen esimies". Linkit olisivat kaksisuuntaisia. Käsitteeni, "hutter-yhteensopivuus", viittaa siis yksinkertaisimpaan älylliseen monimutkaisuuteen, jolla älysolut kykenevät automaattisesti järjestäytymään, ohjaamaan toisiaan, oppimaan ulkoisen palkkiosignaalin avulla "tyhjästä", siis ilman "kovakoodattua" bias-älyä siihen kokonaistoiminnallisuuten, johon palkkiosignaali ne ohjaa.



On hyvin todennäköistä, että luonnostelemani arkkitehtuuri ei olisi oikeasti ihan toimintakykyinen, vaan vaatisi monenlaista tukitoiminnallisutta ja alueellista hienosäätöä. Esim hierarkian ylemmillä tasolla saatattaisi olla mielekästä luopua älysolujen alisymbolisesta kerroksesta. Toinen ajattelemisen arvoinen asia voisi olla luopua Hutterin ideaalisesta yleisyydestä ja varustaa rakenne oppimista nopeuttavalla, kovakoodatulla biaksella, esim arvo- ja tavoitehierakialla. Mutta hieman epäilen, että tällä lopulta voitettasiin vähemmän, kuin mitä tämän toteutuksen uudet vaikeudet maksaisivat. Parempi ratkaisu voisi olla panostaa älykkään keinoympäristön kehittämiseen, joka eteenkin harkitun progressiivisesti palkkiosignaalia käyttäen asteittain opettaisi suuren verkon yhä monimutkaisempien kokonaisuksien ja tehtävien hallintaan. Tällöin ongelmana voi olla ihmisen tason ylittäminen. Emme ehkä osaa tehdä riitävän älykästä opetusohjelmaa! Olen kuitenkin melko varma, että olen oikeilla jäljillä. Aika näyttää.

Yhteenvetoa

Mitä tällä käsitteellä siis voitetaan? Jos pitää paikkansa että on olemassa yllä kuvattu kynnysmonimutkaisuus ja että sen ylittävä rakenne on toteutettavissa, niin se helpottaisi merkittävästi AGI:n, Yleisen Tekoälyn toteuttamista. Riittäisi kun toteutetaan juuri ja juuri tuon kynnyksen ylittävä toiminnallisuus ja sen avulla, monistaen, toteutettaisiin yhä suurempia hierarkioita, jotka lopulta ohittavat suurella marginaalilla ihmisen älykkyyden. Myös tietokoneen kehitys olisi voinut ehkä 1970- tai 1980-luvulla haarautua ensin kuvatulle "laskentapilven" tielle, mutta kaupallisista ja ja ohjelmointiteknisistä syistä tämä suuntaus ei toteutunut. Transputerit olivat lähimpänä tätä ajattelua. Nyt moniydintekniikka on yleistymässä, koska vaihtoehtoinen tie on jo kuljettu loppuun. Ohjelmointiongelmien lisäksi moniydinsuorittimien suuri ongelma on muistiyhteyden jakaminen kymmenien, satojen, tuhansien... suorittimien kesken. Se ei onnistu kovin kauan. Edessä on väistämätön: muistipiirit ja suorittimet on sulautettava samaksi arkkitehtuuriksi, sama piiri, piipala, tulee sisältämään kymmeniä gigatavuja RAM-muistia sekä satoja suorittimia.

Tätä samaa puolijohdeteknologiaa voitaisiin soveltaa myös yllä (hyvin alustavasti) luonnostellun älyarkkitehtuurin toteuttamiseen. Tämä voisi olla käytäntönä 2020-luvulla.

lauantai 13. helmikuuta 2010

Milloin tekoäly haastaa ihmisen?

Tämä klassinen kysymys, joihin toiset vastaavat pelon tai optimismin vallassa, puhuen lähivuosista tai toiset sivuttavat asian olankohautuksella: "ei milloinkaan", on taas tullut ajankohtaiseksi sekä muutamassa äskeisessä meilikeskustelussa, että H+-verkkolehden tutkimuksessa. Siksi olen koonnut hieman omia tuoreita ajatuksiani asiasta.
Omat viimeaikaiset opiskeluni ja 1,5v takainen Nokia Workshop on Machine Consciosness, jota olin paikalla kuuntelemassa, ovat hieman muuttaneet aikaisempia käsityksiäni. Aikaisemmin arvelin asioiden tapahtuvan niin, että joskus, 15-30v kuluttua tapahtuu kerralla iso läpimurto, joka yhdistettynä sen aikakauden nykyiseen verrattuna järeään tietokonetehoon, muuttaa tilanteen kertaheitolla kapeasta, erikoistuneesta tekoälystä (joka on nyt arkista ja rutiininomaista monilla aloilla) ihmistä mahtavammaksi superälyksi. Ja hyvin pian sen jälkeen jatkuen teknologiseksi singulariteetiksi. Nyt enään pidä tätä todennäköisenä tapahtumien kulkuna.
Nyt oletan, että tällaista jyrkkää kynnystapahtumaa edeltää toinen, teknologisesti vähemmän dramaattinen, mutta muussa suhteessa hyvin järisyttävä kehitys, jota voidaan rinnastaa vaikutuksiltaan esim WWW:n käyttöönotton ja yleistymiseen. Skenaarioni on, että n.7-15v kuluessa onnistutaan kaupallisesti toteuttamaan eräänlainen "Semi-AGI", tekoäly, jolla on laajoja kykyjä oppia kohtuullisen helposti täysin uusia taitoja (joita siihen ei alunperin ole eksplisiittiseti ohjelmoitu) ja joka selviää siten samalla perusohjelmistolla uudelleen opetettuna monista työelämän ihmistehtävistä, mutta joka silti jää kognitiivisiltä kyvyiltään "heikkolahjaisen" ihmisen tasolle. ("Heikkolahjaisuus: hieman normaalia vähäisempi älykkyys (älykkyysosamäärä 70-85), jota ei vielä luokitella älylliseen kehitysvammaisuuteen.) Semi-AGI ei siis kykene laajaa ymmärrystä vaativiin tehtäviin, mutta se omaksuu kapeaa-AI:tä monta kertaluokkaa helpommin yhä uusia, rajoitettuja työtehtäviä. Ja koska useimmat työelämän työtehtävät on huolellisella suunnittelulla jaettavissa rajallista osaamista vaativiin osatehtäviin, Semi-AGI voi syrjättää suuren joukon vielä nyt automaatiolta (mutta ei usein globalisoinnilta) turvassa olevia ihmistyöntekijöitä (myös halvan työvoiman maissa).

Semi-AGI voi tulla käyttöön kahdella suhteellisen erilaisella sovellusalueella: robotiikka ja toimistoautomaatio. Robotiikassa tärkeimpänä vaatimuksena on tehokas aistitiedon, eteenkin videodatan tulkinta ja hahmontunnistus. Toimistoautomaatiossa (kaupan, hallinnon, tuotekehityksen ym. piirissä) Semi-AGI:n mahdollisuusien edellytyksenä on, että semanttisen webin teknologiat otetään käyttöön myös yritysten ja laitosten tietojärjestelmissä. Tämä tarkoittaa sitä, että kaikki tietorakenteet ja prosessit määritellään yhteensopivia ontologioita käyttäen, joita Semi-AGI osaa soveltaa työtehtävissään ilman raskasta uudelleenohjelmointia. Molemmissa tehtävissä tarvitaan myös jonkinasteista luonnollisilla kielillä tapahtuvaa kommunikointia ihmisten kanssa. Töksähtelevä arkikielen lauserakenteiden osajoukko riittää hyvin. On täysin mahdollisuuksien rajoissa määritellä automaatiolle eksplisiittisesti esim n.20000 "mallinetta", "patternia", "templatea", jotka edustavat tavallisia, yksinkertaisia lauserakenteita sanojen taivutusmuotoinen ja niissä esiintyviä mahdollisia käsiteryhmien yhdistelmiä. Nämä mallineet on edelleen käännettävissä AGI:n sisäiselle käsitekielelle, joka voisi olla esim lojbania.
Otaksun (huom. en "usko ja väitä"), että Semi-AGI:in laajamittainen käyttöönotto on mahdollista joskus 2017-2025 välisenä aikana siksi, koska puolijohdetekniikan edistyminen mahdollistaa nyt toivottomat "brute force" -ratkaisut ja että AGI-arkkitehtuurit ovat kypsyneet jo nyt huomattavasti viimeisen kymmenen vuoden aikana. Suurimman toivon asetan esim hierarkisiin hahmontunnistustekniikoihin (HTM ja sen kilpailijat) ja muihin ihmisaivojen arkkitehtuurin rakenteita (siis esim. neocortex ja hippocampus) soveltaviin ideoihin.
Ennakoin siis, että Semi-AGI on suuri teknologinen mullistus, mutta myös että se ei lyhyellä kehityksellä johda todella ihmisen suorituskyvyn ohittavaan AGI:iin vaan, että Semi-AGI:n kehitys jatkaa rauhallisen eksponetiaalisesti ainakin kymmenen vuotta ohittamatta kuitenkaan lahjakkaimpien ammattilaisten kognitiivisiä kykyjä hyvin laajojen kokonaisuuksien hallintaa edellyttävissä luovissa tehtävissä, esim AGI-kehityksessä. Semi-AGI ei siis mahdollista "rekursiivista itsekehitystä", vaikka se voikin nopeuttaa AGI:n kehitysprosessia. Mutta sitten, jossakin vaiheessa, palaset loksahtavat yhteen, ja ihmisen suorituskyky ohitetaan kerralla, isolla, useiden kertaluokkien hyppäyksellä, ehkä joskus 2025-2040 välisenä aikana. Voi olla että näin ei käy, vaan Semi-AGI muuttuu asteittain "kypsäksi AGI:ksi", mutta pidän tätä mahdollisuutta alan kehitykselle epätyypillisenä. Todennäköisemmin on olemassa jokin kynnys, jonka ylittäminen nopeuttaa kehitystä radikaalilla tavalla. Tämä kynnys voitaisiin siis ylittää esim. vuonna 2032. Vanha ennusteeni vuodesta 2027 pysyy: veikkaan, että silloin Semi-AGI:n taso on saavuttanut keskivertoihmisen kognitiivisen suorituskyvyn. Mutta keskivertoihminen ei pysty millään koulutuksella esim. luovaan AGI-kehitykseen, pääarkkitehtitasolla.
Minusta tällainen sivistynyt arvailu, epätieteellinen (semitieteellinen?), edes jotenkin perusteltu, poleeminen ennustelu on kannustettavaa. Samoin ehdottomasti toivoisiin, että yhteiskunnallisessa suunnittelussa otettaisiin vakavasti huomioon se mahdollisuus, että minä ja hengenheimolaiseni olemme ehkä edes jossakin määrin oikeassa. Kintaalla viittaaminen näin vakavissa asioissa on vastuutonta.