Abstrakt
Machine learning, strojno učenje, skrajšano ML, se danes uporablja kakor sinonim za konvolucijske nevronske mreže (KNN), čeprav sprva ni bilo mišljeno tako ozko. KNN so zadnja leta, predvsem od 2014 naprej doživele takšen uspeh na več področjih, da so postale kar sinonim za ML in dominantna veja umetne inteligence (AI) sploh. Ob tej sicer povsem zasluženi slavi nevronskih mrež, pa se preveč spregleduje dvoje. Da (1) obstajajo še druge “paradigme” strojnega učenja in da (2) se samo z nevronskimi mrežami nekaterih problemov ne da rešiti niti v principu.
Zlasti (2) je pereča stvar, ker bi predolgo vztrajanje samo pri nevronskih mrežah, konvolucijskih in drugačnih, ter tudi predolgo vztrajanje na ML kot edinemu področju, pomenilo skorajšen nastop nove “AI zime”.
Klasični problem. ki ga s pomočjo KNN mrež, – ki so t.i. klasifikatorji – ni mogoče rešiti, je razločevanje števil na praštevila in sestavljena. Že preko dve tisočletji poznamo algoritme, ki znajo povedati (morda ne v realnem času) za vsako število če je sestavljeno ali ne. Nevronska mreža se na “training dati” tega ne more in ne zna naučiti. Ne glede na to kako velika je ta training data, kako velika je nevronska mreža in kako dolgo se uči. Za nekoliko večja števila od tistih s katerih se je učila, bo vsaka nevronska mreža ostala nezmožna zanesljivo povedati ali so praštevila ali sestavljena. V tem primeru niti približno zanesljiva.
Z evolucijskim izračunavanjem po drugi strani, nekaj kar je precej oddaljeno od zdaj (zasluženo) modernih nevronskih mrež vsakršne vrste, pa smo uspeli narediti prav to. Iz zelo majhne “training date” števil od 2 do 120, vsakim številom labeliranim samo z 0 in 1 (praštevilo ali ne), je evolucijsko izračunavanje (večkrat zapored) prineslo algoritem, ki za vsako število – znotraj in izven te training date – da zanesljiv in nedvoumen odgovor o sestavljenosti števila. Evolucijski computing (EC) ponovno izumi Eratostenovo rešeto, oziroma deterministični algoritem za ugotavljanje sestavljenosti števil. Medtem, ko je output strojnega učenja z nevronskimi mrežami naučena nevronska mreža katero potem uporabljamo za klasificiranje, je output strojnega učenja z Evolucijskim computingom digitalni algoritem ki prevzame vlogo naučene nevronske mreže.
Menimo, da je EC naslednji veliki korak tako v strojnem učenju, kakor v umetni inteligenci (AI) nasploh, saj lahko rešuje vse probleme s katerimi so zaslovele nevronske mreže, kakor tudi mnoge, za katere nevronske mreže niso niti načelno primerne. Medtem ko je output, to je rezultat strojnega učenja s konvolucijskimi nevronskimi mrežami človeku nerazumljiv, je output ali produkt strojnega učenja z EC programska koda, človeku načelno razumljiva in dostopna.
Podrobnosti bodo v naslednjem prispevku.