100 ezer mintával tanítottam ami egyenként 10 egész számból áll. Ezt Babylon-nal generálom a tanító kódok forrásából úgy, hogy Babylon által adott AST típusaiból számot képzek, melyben egyforma típusok azonos számmal jelennek meg. Vagyis egyetlen tanítási minta 10 darab szintaxis típus tulajdonképpen. És azért számok, hogy a gépnek értelmezhető formátum legyen. Egyelőre nem emeltem be másodlagos tulajdonságnak a típus mélységét (mennyire beágyazott helyet foglal el a kódban, vagyis mennyi blokkon belül található), mert tapasztalatom alapján az a sejtésem, hogy ez túl részletgazdag információt ad, amellyel túl taníthatom.
Kb. 20 percig tart az egyszeri tanítás és 3.2 MB-os a modell lementett szöveges állománya (ami kb 3%-ára tömöríthető bzip-pel, mely 124 KB).
Jelenleg egy folyamatos kutatást fogok végezni újra és újra felülvizsgálva minden részletet, mely a lehetőségek optimalizálásáról szól. Ez egy relatíve nehéz folyamat, melyben nem meghatározott inputok alapján fogom vizsgálni a probléma domain-t. Mit lehet, mekkora a hiba faktor és mennyire jól reagál a ténylegesen elhelyezett anomáliákra a kódban.
Persze a kevésbé hatékony működés is jobb mint a semmi, de a jövőben egy előremutató folyamatot határozok meg, mellyel idővel folyamatosan nőhet a találati minőség.
Alább egy rövid videó a frontend működésről, melynél egyetlen klikk az ellenőrzés és amely a problémás területhez állítja a kurzort az ellenőrzés után. Ez a kurzor állítás egy nehezebb dolog, mert több absztrakción átívelve kellene pontosan visszahelyeznem az AST típusa helyére. Ráadásul nem is Javascript-be ha más dialektust használtunk, hanem ez utóbbiba, amiről JS-t fordítottuk. Ezt még tovább fogom fejleszteni, vannak ötleteim, például Babylon kimenetében ott a loc (line of code) start és end értékekkel, melyek a karakter pozíciót mutatják. Egyelőre a script hosszának százalékban számolt körülbelüli helyére állítom a kurzort. Ez még fejlesztés alatt.
A videóban egy véletlenszerűen kiválasztott JS kód van, mely elé és után betettem még HTML, CSS és JS kódot:
- log69 blogja
- A hozzászóláshoz be kell jelentkezni
Hozzászólások
Közben nekiálltam futtatni egy algót, mellyel az állítható paramétereket változtatom, vizsgálva a teszt adatbázison keletkező fals riasztások számát (a teszt adatbázist jónak veszem, ezért itt minél kevesebbnek kell lennie a riasztásnak). Egyelőre nagyon rossz az arány. Kíváncsi vagyok meddig fog futni és mi lesz a legjobb arány amit el tudok érni.
- A hozzászóláshoz be kell jelentkezni
Közben többször változtattam az algon. Minden változtatás random értékkel történik és pontszámozom a feltételrendszerem alapján és ha van nagyobb pontszám, akkor letárolom a paraméter kombinációt.
Nyilván egy hiperbolikus görbét fog mutatni az új találatok száma az idő függvényében ahogy emelem a megugrandó pontszám értékét, ezért egyre lassulni fog a folyamat.
Egyelőre fut szépen és lassan emelkedik a minőség.
- A hozzászóláshoz be kell jelentkezni
Több nap futás után sikerült elérnem a kívánt limitet, körülbelül 98-99%-os a felismerés helyessége, vagyis a normál adatokra adott fals riasztás mértéke <2%.
Érdekesség, hogy az 5 - 50 méretű minta intervallumon belül (mennyi darab szintaxist veszek egybe) a 45-46-ot választotta ki mint optimálist.
Most "kézileg" preparált rendellenesség felismertetésével kezdem el validálni a működés helyességét. Ehhez kutatás a normál tanító adatbázistól eltérő minták után.
- A hozzászóláshoz be kell jelentkezni
Nincs kedved egy cikksorozatot irni AI-rol, ami kicsit foldhozragadtabb, mint a kodellenorzes?
A multkori AI bevezeto tok erdekes volt.
Mondjuk valamilyen gyumolcs felismerese egy kepen (pl. meggy). A feketeoves fokozat, amikor a gyumolcs szarat is felismerjuk (az tipikusan beleolvad a hatterbe mivel zold/barna).
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
Nem egyszerű a téma, magasabb matek kell hozzá és aki nem érti a motorháztető alatti működést, az nem tudja hatékonyan használni. Illetve sok erőforrás amire most nincs kapacitásom.
- A hozzászóláshoz be kell jelentkezni
kár
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni