Új generációs AI

Egy vadonatúj gépi tanuló eljáráson dolgozok, mely már készen van és most tesztelési fázisban vagyok. Ismereteim alapján teljesen új a megközelítésem.

1995, a véletlen erdő (Random Forest) megjelenése óta nem született olyan polcról levehető azonnali megoldás IMHO, mely relatíve kevés vagy alap beállításokkal erősen alkalmazható lenne általános esetben, illetve kevés adatnál is. És melynél nincs sok érzékeny hiperparaméter, melyek optimális beállításai nehezen megismerhetők.

Classification típusú döntéseknél néha jobb eredményt hozhat az eljárásom RF-hez képest (validálás alatt). Erről majd tervezek blogolni részletesen pontos számokkal, csak sok munka, később lesz.

Megoldásom erőssége:

- nonparametrikus (zéró)

- extrém kevés adatnál is működik (akár egyetlen adatpont)

- extrém nagy adatnál is működik és nincs letörési pont a tanulási folyamatnál ahogy növeljük a tanító adatot, mint sok más algó esetén (neurális háló nem törik le, de ott meg robban el a tanulási idő a backpropagation miatt, ami egy nagyon csúnya megoldás optimum kereséshez IMHO, illetve NN-nél nem megismerhető az optimális idegi struktúra, így rengeteg a hiperparaméter és ezért rémálom az optimalizálása)

- bármekkora dimenziójú bemenetre alkalmazható könnyedén

- minimális memória lábnyom

- érzéketlen a skálára, csak úgy mint RF, vagyis nem kell normalizálni az értékeket a tanításhoz

- rendkívül gyors, még script nyelveken is, O(n) alatt fut

- egyetlen globál optimum van amit mindig megtalál, ezért nem ragad meg lokál optimumon

- mindig garantált a konvergálás az optimumhoz

- teljesen determinisztikus, nincs szükség RNG-re

 

Megjegyzés:

- feature selection kell, de ez RF algón kívül mindenhol kell tudtommal, és ez azért nem hátrány, mert csak 1-szer kell a kiválasztási procedura, utána alkalmazható

 

Ha lesz időm, később írok még róla vagy csinálok egy videót, ha jelzitek hogy érdekes a téma.

Hozzászólások

> ha jelzitek hogy érdekes a téma.

Egyértelmű, köszi!

(sub)

-Van valami elerheto implementaciod hozza? (pythonhoz ertek pl., de mas nyelv is jo)

-A tanito adathalmaz sorrendjere is determinisztikus? (sima dontesi fanal pl. ugy emlekszem, mas lesz a strukturaja)

Azert osszessegeben az, hogy minel jobb eredmenyt adjon, az fontosabb feltetel majdnem minden masnal.

A strange game. The only winning move is not to play. How about a nice game of chess?

Van implementációm. A megnyitásán még gondolkodok. Eddig két új gépi algót fejlesztettem, egyik egy clustering, másik ez ami regresszió. Mindkettő teljesen nonparametrikus. Ez kritikus, mert a parametrikussal keresnénk az optimumot. De eleve kellenek a paraméterek hozzá. De az optimális paramétereket nem lehet könnyen meghatározni. Tehát ellentmondás. Persze gyakorlatban meg lehet, de nem elég hatékonyan.

A tanító adat sorrendje mindegy, ez szintén további előny. Tehát nem az van, hogy máshogy rendezve az adatot más eredményt ad. Habár az sem gond és ez természetes. RF-nél is más sorrendet ad természetesen, ha seed-et használunk, akkor is. Ez az eljárásból következik.

Igen, a jobb eredmény a fontos. Csak rengeteg munka és még nem akarom elkiabálni, mert nem végeztem az ellenőrzéssel. Két dolog van:

1) Mindent überel annak a fontossága, hogy a validációs folyamatnak hibamentesnek kell lennie. Mert ha hibás eredményeket kapunk, de nem tudunk róla hogy hibás, az értelmetlenné teszi. Tehát ennek a biztosítása van folyamatban.

2) Ha biztosítva lett a validációs folyamat hiba mentessége (rengeteg auto teszttel és kód audittal illetve manuális alapos ellenőrzésekkel), akkor az algók összehasonlításánál vizsgálni kell a statisztikai erőt. Ezt hipotézis teszttel.

Ezek vannak hátra. Az algóm matematikailag elegáns és rengeteg olyan deficittől mentes, mely más algóknál jelen van. Nagyon sok okos és trükkös eljárás van, azok is nagyon szépek és hasznosak. Csak a paraméterek meghatározásának szükségessége nagyon magas falat emel.

Neurális hálók ezért agyrém. Hiába futtatunk kereszt validációt, egy idő után az adat lesz kevés hozzá, mert a hipermaraméterek kombinációs tere túl nagy. Így mindig nagy esély van a túltanításra. Vagy ha kiküszöböljük a túltanítást, akkor meg garantált, hogy távolabbra kerülünk az optimumtól. Vagy ez, vagy az.

Ha lesz időm, majd bővítem az infót.

Kivancsi vagyok, de azert eleg szkeptikus is. Az egyik legfontosabb, hogy nezd meg milyen eredmenyt (loss-t) ad a tanulasi adaton tanitott modell a tesztadatokon. Meg ha nem is lesz mindennel jobb a modszer, akkor is megeri publikalni, ha van valamilyen elonye, ujdonsaga.

Köszi, ez miatt gondolkodnék akár a publikáción, mert egy újfajta optimum keresést nyit szerintem. Természetesen minden benne van a pakliban. Az is hogy már kitaposták amit találtam. Erre mondta Terence Tao, hogy kellene egy olyan AI-t fejleszteni matematikai publikációkban való keresésre, mely meg tudja érteni egy részét és értelmileg tud hasonló témákat összegyűjteni. Deep is the rabbit hole...

Természetsen a loss-t mérem, de több fajta módon. Class-nél f1 loss, reg-nél RMSE stb.

Classification és regressziós elemzéseknél is mérem. Sokszor megveri RF-et, csak nem akarom elkiabálni, nehogy hibás legyen a validációm egy rejtett ponton.

Illetve sok magas minőségű gyűjtött, real life adatom van, melyeket évek óta húztam össze rengeteg helyről. Olaj áraktól kezdve a sürgősségi szobákban megjelenő emberek száma adott napontól a hipermarketben vásárlók szám, doktor látogatási száma, banki kölcsön mértéke a személy paramétere alapján, egyetemi felvételi pontszám alakulás hozott eredményekhez, gejzír kilövellési ideje stb. Ezeken mind tesztelek.

Illetve generálok szintetikus adatot adott zaj szinttel adott dimenzióban. Minden jó ami elérhető és rálátást ad a működésre újabb szemszögből.

Nem, onnét majdnem egy sem. Sok kutatás eredménye. Több év munkája. Nem dokumentáltam le őket, csak a fájlnév mutatja, mert erre már nincs idő. Így néz ki:

Classification: 28 db (Orvosi adatok műtét sikerességéről, stb)

Regression: 63 db

Forecast: 304 (itt vízállások és csapadékok is vannak, havi, éves stb)

Nekem ez relatíve soknak számít, mert nehéz összeszedni ennyit normál minőségben.

Ha szükséged van rá, szívesen adok.

Még annyi, hogy természetesen nem training loss-t nézek, hanem mindig test loss-t, lehet nem voltam világos. Sokszor one-sample validációt csinálok ha kevés az adatsor (pl 27 db), és ilyenkor egyet emelek ki tesztnek. Majd újra kiemelek 1-et véletlenszerűen. Forgatni is lehet.

És több test loss-t összesítek.

Engem is erdekel a tema! Elore is koszi!

Esetleg az algoritmusról is írhatnál nagy vonalakban, ami persze nem árulja el konkrétan a titkos részeket, ha lehetséges.

Köszönöm azoknak, akik ide írtak. Visszajelzésnek írom, hogy alkalmazásra kerül a matematikai eljárásom egy projektben, így egyelőre nem nyitom meg.

Koszi, hogy irtal! Ez igy korrekt.

Valami benchmark eredmenyt azert megosztanal rola? Engem leginkabb az MNIST-en elert eredmenye erdekelne nagyon, de ha ez is titkos, azt is elfogadom. Meg persze, ha arra a problemakorre pont nem idealis, azt is.

A strange game. The only winning move is not to play. How about a nice game of chess?