Az igazolás elvét sokan ismerik “Occam borotvája” néven is. Sokan ismerik, hogy ez az elv azt mondja ki, hogy csak az olyan dolgok létezését szabad elfogadni, amelyek feltételezése nem felesleges. Vagy lehet úgy is mondani, hogy aminek létezése specifikusan igazolt. Akik erre az elvre hivatkoznak, általában evidensnek veszik, hogy ez az elv miért jó, miért szükséges, miért helyes, miért ésszerű. Ezért ritkán magyarázzák ezt el. A hívők pedig általában nem fogadják el ezt az elvet, vagy legalábbis a saját hitüket kivételnek gondolják, és azt is szokták mondani, hogy az Occam borotvája elv maga is csak egy igazolatlan hit. A hívők és az ateisták közötti legdöntőbb különbség talán pont ez, hogy a hívő ezt az elvet nem fogadja el, és nem is érti, miért olyan fontos ez az elv. Emiatt fontos elmondani, min alapul ez az elv. Ennek megértése ugyanis segíthet az elv jelentőségét elfogadni, és azt is, hogy nem egy önkényes hitszerű szabályról van szó. Egy elv egyébként sem lehet hit, hiszen inkább praktikus szempontból lehet megközelíteni: működik, vagy nem? Occam borotvája pedig szükséges és praktikus elv.
Mesterséges intelligencia kutatóként dolgozom, és ennek során nagyon sokszor ún. klasszifikációs vagy regressziós feladatokat kell megoldani. A regressziós feladat elmondása könnyebb, és egyváltozós függvényekkel laikusok is meg tudják érteni. Képzeljük el tehát el, hogy vannak bizonyos adataink, amelyek adatpárokból állnak. Vannak különféle (valós) x értékek, és hozzá tartozó (valós) y értékek. Ez azt jelenti, hogy adva vannak egy 2 dimenziós koordináta-rendszerben, azaz síkban pontok, különféle x és y értékekkel. A regressziós feladat az, hogy ezekre a pontokra egy függvényt illesszünk. Általában azért, mert azt feltételezzük, hogy a pontjaink egy valódi függvényből vett minták, de esetleg bizonyos hiba, azaz zaj torzítja el őket.
Különféle nagyon jól kidolgozott regressziós módszerek mellett van egy nagyon jó kis praktikus eszköz, amelyet Eureqanak neveznek, egy bizonyos Nutonian Team fejlesztette, és ezt sokszor használtam a munkámban. Ez a program különféle elemi műveletekből és más függvényekből próbálja összerakni azt a függvényt, amely jól illeszkedik a pontokra.
Például képzeljük el, hogy az f(x)=56-5x2 függvényből vannak a adataink.
Az adataink (kis négyzetek) minták egy valós függvényből (folytonos vonal)
De annyival nehezítsük meg a feladatot, hogy az adunk hozzá az értékekhez egy kis „véletlen” hibát. Azaz az f(x)=56-x2+z függvényről van szó, ahol z a zajt jelöli.
Az eredeti függvény értékeit kicsit eltorzítottam egy additív zajjal, ami mérési hibát . Az x^2 az x² jelölése az informatikában.
Akiért kicsit a matematikának, annak elmondom, hogy a táblázatkezelőmben nem volt véletlenszám-generátor, ezért a z=sin(1000x) álvéletlen függvényt használtam. Ennek értékei ebben a felbontásban véletlennek tűnnek.
Ábra 5: Látható, hogy az Eureqa egész jól elboldogult a feladattal. Kb. 10 másodperc alatt már közel jutott a megoldáshoz. A kék görbe a hibát jelzi, és látható, hogy pár próbálkozás után egyszer csak közel jut a megoldáshoz. Utána már csak a konstansok behangolása történik. A zaj miatt nyilván nem várhatunk pontos megoldást, de a sárgával jelölt rész tulajdonképpen az eredeti függvényt adják vissza, a paraméterek egy egész kicsit mások. A maradék rész a zaj becslése, itt nem várhatjuk, hogy megtalálja a szinusz függvényt, hiszen azt szándékosan majdnem véletlennek állítottam be.
Amit itt fontos tudatosítani, az az, hogy az összes lehetséges függvényt nem lehet kipróbálni. Ezért a program az egyszerű függvényektől kiindulva a bonyolultabbak felé haladva keresi a megoldást. Úgy állítottam be, hogy a polinomok terében keressen. A „size” a függvény nagyságát, azaz bonyolultságát méri, és a program igyekszik olyan megoldást találni, aminek kicsi a bonyolultsága. Csak akkor fogad el egy bonyolultabb függvényt, ha az jelentősen jobb. A program kénytelen így eljárni, mert nincs más módszer a megoldás megtalálására. Lehet kicsit variálni az algoritmuson, de alapjában nincs más működő algoritmus erre a feladatra, mint egy keresési fa bejárása az egyszerű függvényektől a bonyolultabbak felé. Ez akkor igaz, ha a feladat megoldását olyan általános alakban keressük, mint az Eureqa. Amennyiben lineáris regresszióról lenne szó, akkor ott már igen leszűkítettük a keresési teret, továbbá tudjuk a hiba gradiensét, és ez segít a keresésben. De az Eureqa elvben sokkal nagyobb függvénytérben is tudna keresni, köztük olyanban is, ahol nincs gradiens. Megjegyzem még, hogy ez a módszer hasonlít az evolúcióhoz, csak itt a populáció a fa aktuális végpontjaiból áll. A reprodukcióban pedig szerintem nincs párosítás, csak mutáció.
De akár fakeresést, akár evolúciót, akár bármi mást veszünk, minden működőképes keresési/optimalizálási algoritmusnak kell tartalmaznia egy olyan elvet, amely egy “kályhát” jelöl meg, ahonnan el lehet indulni, és keresési irányokat jelöl ki a függvények végtelen terében, és egy olyan elv is kell, amelyik részben lekorlátozza, irányítja a keresést, amely az egyszerűbb megoldások felé irányít. Szakszóval a célfüggvénybe be kell építeni egy regulaziációs részt. Mert ugye a “legbonyolultabb” függvényektől nem lehet kezdeni a keresést. Az Eureqa soha nem találta volna meg a megoldást, ha a 1645sin(345x^34) függvénytől kezdi, és a bonyolultabbak felé keres.
Minden függvényt az ember, de még a számítógép sem tud áttekinteni. Muszáj az egyszerűbb megoldásokat preferálni, és a bonyolultabb hipotéziseket büntetni.
Ehhez hasonló az elv, amikor a megfigyeléseinkre, mint adatokra illesztünk hipotéziseket, ami a tudomány, vagy általában a megismerés feladata. Ott sem lehet áttekinteni minden hipotézist, ott is az egyszerűbbektől kell kezdeni, és a feleslegesen bonyolultakat kerülni kell.
A függvényünket egyébként nem véletlenszerűen választottam ki. Pontosan leírja azt, hogy mennyi lenne egy 56 méteres toronyból elejtett kő magassága az idő szerint, ha nem tekintjük a légellenállást, és a gravitációs gyorsulást kereken 10 m/s²-nek vesszük. Az 56 egyébként a Pisai ferde torony közelítő magassága, amiről eszünkbe juthat Galilei állítólagos kísérlete, amit a valóságban nem ő, és nem Pisában vitt véghez, de a példa kedvéért képzeljük el, hogy véghez vitte!
Galileinek körülbelül ilyen adatai lehettek volna, ha az időt és a magasságot elég pontosan tudta volna mérni. A zaj egy kis mérési hibát, vagy légköri perturbációt, vagy más egyenetlenséget is megenged a kő esésében. Na most a képzeletbeli Galileink, ha nincs valami előzetes elképzelése, akkor az Eureqahoz hasonlóan, egyszerű függvényekkel próbálkozhatott volna. És ha nincs valamilyen kifinomultabb regressziós algoritmusa, akkor ilyen próba-és-szerencse módszerrel kísérletezhetett volna. De neki is az egyszerűbbtől a bonyolult felé kellett volna haladnia, mert a 1645sin(345x^34) függvénytől a bonyolultabbtól fele haladva Galilei sem jöhetett volna rá a megoldásra.
Na most ha ezt általánosítjuk a tudományra nézve, akkor ahol csak vannak megfigyeléseink, lehetőleg mérési adataink, és egy magyarázatot keresünk rá egy függvény (vagy egyenlet) formájában, akkor ilyen regressziós feladatot akarunk megoldani. És mindig szükség van erre a regularizációs elvre.
Ennek a regularizációs elvnek egy korai formáját fogalmazza meg az Occam borotvája elv, amely tehát nem valamiféle alaptalan hit, hipotézis, metafizikai elv, hanem egy szükséges módszerbeli elv. Enélkül az elv nélkül emberi és gépi megismerés nem működhet, mivel végtelen számú, és tetszőlegesen bonyolult hipotézist nem tudunk áttekinteni.
A tudományfilozófiában járatosabbaknak megjegyzem, hogy természetesen tisztában vagyok azzal, hogy az Occam borotvája elv, az a különféle tudományos elméletválasztási stratégiákban megfogalmazott ökonomikussági elvek közül csak egy egyszerű, igen korai, kezdetleges megfogalmazás. Hasonlóan a gépi tanulásban alkalmazott többféle regularizációs terminusokhoz, a tudományban is megfogalmazhatóak különféle variánsok.
Ha az itt kifejtett érvekre a hívők azt mondják, hogy az istenről szóló hipotézist az Occam borotvája nem vágja le, mert nem szükségtelenül bonyolult, akkor a válaszom az, hogy de bizony, jelenlegi tudásunk szerint ez így van, hiszen a tudomány nem tarja szükségesnek ezt a hipotézist: “Erre a hipotézisre nem volt szükségem, Uram”. A hipotézis tehát szükségtelen ahhoz, hogy az adatokra függvényt illesszünk. Nélküle is van jó elméletünk, és egy isten feltételezése sem javít az illeszkedésen.
A hívőknek két módja volna arra, hogy az istenben való hit racionális legyen: vagy igazolt vélekedésnek kéne lennie, amelyet Occam borotvája nem diszkvalifikál, vagy meg kéne alkotniuk a hit alapú regressziós módszert. Kíváncsian várom ennek a hit alapú regressziós algoritmusnak az implementációját.:)