Ne tako redki problemi so za klasične algoritme pretežki, tudi če bi naenkrat lahko vpregli v njihovo reševanje vse računalnike na svetu skupaj. Sem spadajo na primer kombinatorični problemi urniškega tipa, prepoznavanje vsebine slik, prepoznavanje govora, rokopisa in podobne stvari.
V zadnjih 50 letih je bilo predlaganih nekaj načinov, kako bi bili takšni kombinatoriki z računalniki vendarle kos. Po začetni “evforiji” pa je vselej relativno hitro prišlo do “streznitve”, saj kakšnih večjih rezultatov preprosto ni bilo.
Nevronske mreže
Vsaj dokler niso kmalu po letu 2012 na sceno spet stopile nevronske mreže. Kar so sicer že nekajkrat prej, vendar so bile do pred nekaj let preveč zahtevne za skromne računalniške moči, s katerimi smo razpolagali. Sedaj pa poleg tega, da imamo računalniške moči po desetletjih delovanja Moore-ovega zakona dovolj, jim je uspelo tudi precej izboljšati same principe delovanja teh umetnih nevronskih mrež.
Nevronske mreže so dobesedno pometle z vso klasično konkurenco na področjih, kamor so bile sicer vlagane milijarde skozi leta, a brez nekih večjih učinkov. Nevronske mreže so se izkazale kakor nekakšen črni labod v AI. Večina stvari, ki kljub velikemu trudu AI skupnosti “niso bile to”, so zdaj nenadoma z nevronskimi mrežami začele delovati najprej tako dobro kakor zna človek, kmalu zatem pa še precej bolje. Še več. Dežurnim skeptikom glede AI, kateri se zbirajo po bifejih in povsod, so konvolucijske nevronske mreže izbile njihove argumente iz rok. Ko so nevronske mreže zajahale še igro Go, ki je bila prej živ primer za “tega pa nikoli ne bo”, se je ta vojna mišljenj nenadoma nehala. Kdo zdaj lahko še zaustavi NN na njihovi poti na superinteligenčni Olimp?
Posebno v obdobjih, ko je navdušenje veliko, je pametno ostati trezen. Videti, da najbolj modna tehnologija morda le še ni “tisto pravo”. Da je morda še kakšen grdi raček, oziroma grdi pavček kje, ki bi znal zasenčiti trenutnega alfa laboda. Treba se je vprašati, od kod so pravzaprav prišle konvolucijske nevronske mreže. Prihaja iz teh ali kakšnih podobnih logov spet kaj čisto novega? Nobelova nagrada za raziskovanje funkcioniranja nevronov je bila podeljena že leta 1950. To je en temelj, na katerem zadeva bazira. Drugi temelj je silen razvoj superračunalnikov, katerim danes pravimo osebni računalniki, tablice in telefoni. Tretji temelj je govorjenje in pisanje ljudi kakor Jurgen Schmidthuber tam kmalu po letu 2000. Ko se je hvalil, da na tekmovanju v poznavanju prometnih znakov, so njegove nevronske mreže zmagale, drugo mesto pa je osvojil človek, takrat je bil čas za stavo na nevronske mreže. S nekaj leti zamude so nekateri res stavili in zmagali.
Evolucijsko izračunavanje
Evolucijsko izračunavanje, ki je sicer še starejše in katerega se je dolgo časa držala skoraj slabšalna oznaka “genetski algoritmi”, ki je preživelo v senci še večji del računalniške zgodovine kakor nevronske mreže, je po našem naslednje vzhajajoče sonce. Darwin sicer ni nikoli dobil Nobelove nagrade za svoje odkritje principov evolucije. Mogoče samo zato, ker je umrl prej kot Nobel. Vendar njegova evolucija bi kvečjemu povečala ugled Nobelove nagrade za fiziko. Govorimo o dveh nivojih epohalnosti. V računalništvo je že davno nazaj Evolucijsko izračunavanje pripeljal John Koza. Ampak do pred nedavnim ni bilo bolj uporabno, kakor so bile uporabne primitivne nevronske mreže iz leta 1980.
Najpomembnejše razlike med NN (Neural Networks) na eni in EC (Evolutionary Computing) na drugi strani so:
- EC lahko začne zadeve iz nule. Nobeno učenje od človeških mojstrov in že rešenih nalog pri EC ni nujno, je pa možno. Pri NN brez tega ne gre.
- EC se dobro znajde v konstruiranju še nikoli videnega. Kreativnost NN je vseeno dokaj omejena, EC je pa ustvarjalna kakor da bi se vrgla po ustvarjalnosti biološke evolucije. Kar se seveda je.
- EC lahko uporablja NN module, medtem ko obratno nima kakšnega smisla.
- EC je inherentno paralelni algoritem. Skoraj popolnoma paralelen, kar za NN ne velja.
- NN rešitve so vedno kriptične, celo ko so odlične, torej ne vemo, kako je do rezultata prišlo. EC lahko razlaga in razloži svoje rezultate.
- EC potrebuje SmallData in lahko operira z BigData. NN je požrešna in ji SmallData pomeni malo, raje nič.