neurolove siete

Programovacie jazyky, rady, poradňa...
Dwizard2
Novice
Novice
Príspevky: 1
Registrovaný: 23 apr 2016, 15:21

neurolove siete

Príspevok od používateľa Dwizard2 »

caute chcel by som si naprogramovat umeleho inteligentneho bota ktory by vedel hrat nejaku hru. najprv som to skusal cez rozne podmienky ify a switche ale potom som sa dozvedel ze existuju neurolove siete co sa dokazu ucit sami. myslim ze je to lepsie riesenie lebo keby som tie pravidla mal pisat sam cez ify tak by som asi neskoncil nikdy lebo tam je nekonecno moznosti

ale neviem jak to zacat. tu som nasiel navod jak ma ta siet vyzerat https://sk.wikipedia.org/wiki/Neur%C3%B ... _sie%C5%A5 tak som to naprogramoval takto kde som pouzil aj ten vzorec z wikipedie

Kód: Vybrať všetko

class NeurolovaSiet{
      var $Nvstup;
      var $Mvystup;
      var $bunky;
      var $oi;

      function NeurolovaSiet($sumaWIJK, $ojk, $oik){
//$sumaWIJK je váha spojenia medzi j-tým neurónom k vrstvy a i-tým neurónom k+1 vrstvy
//$ojk
//$oik Θ ik+1 je prah excitácie i toho neurónu k+1 vrstvy
//f() je ľubovoľná monotónna funkcia

          $this->oi = $this->f($sumaWIJK * $ojk - $oik);
          
      }

     function f($parameter){
//zvolime lubovolne cislo od 0 do 100 a vynasobime parameter
         return $parameter * rand(0,100);
     }
}

class NeuronovaSiet_Bunka{
      
}
a pouziva sa to takto

Kód: Vybrať všetko

$NeuronovaSiet = new NeuronovaSiet;
a ked chcem pridat viacero buniek tak lebo bunky je typ var cize pole

Kód: Vybrať všetko

$NeuronovaSiet_Bunka = new NeuronovaSiet_Bunka;
$NeuronovaSiet->bunky[] = $NeuronovaSiet_Bunka;
ale neviem ci to ej dobre lebo to new som sa zatial neucil. iba class.

jak tam teraz nastavim tu hru co sa to ma naucit? a inak nevadi ze ta hra je naprogramovana v exe??? lebo php dokaze prehravat len php subory co som cital. skusal som cez file_contents naloudit tu hru

Kód: Vybrať všetko

eval('xxx.exe')
a vypisuje to error. to som ale skusal len tak a nebolo to vobec v class NeurolovaSiet takze by to aj tak bolo na nic :D

mohol by mi niekto poradit jak to rozbehat aby sa to naucilo tu exe hru co tam dam a hlavne ako ju tam mam dat???
eMPiko
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3085
Registrovaný: 11 jan 2007, 16:40

Re: neurolove siete

Príspevok od používateľa eMPiko »

Dal si si celkom narocnu ulohu, ale mozem ti skusit dat par tipov. (btw su to neuronove siete, nie neurolove)

V prvom rade, skus pouzit nejake uz existujuce implementacie neuronovych sieti. Ludia co ich programovali s tym maju isto viacej skusenosti ako ty a vysledky nemaju tolko chyb a su aj lepsie optimalizovane. Odporucam kniznicu TensorFlow, ktora ma na stranke aj mnohe tutorialy z ktorych sa mozes naucit. Naco programovat nieco co uz bolo sto krat naprogramovane, ked mozes rovno pouzit hotove riesenie. Pomocou tej kniznice mozes lahko vytvarat siete podla svojej potreby a aj ich trenovat na nejakych datach.

Druha cast otazky, ze ako takuto siet naucis hrat hru je narocnejsia. Toto ucenie sa vola aj trenovanie siete a prebieha zhruba takto: Kazda siet ma svoje vstupne a vystupne neurony. Ty pripravis velke mnozstvo ukazkovych dvojic vstupov a vystupov a toto do tej siete vlozis a ona sa na tom natrenuje. Napr. ak by si chcel natrenovat siet rozpoznavat znaky abecedy, tak by si si pripravil velke mnozstvo (napr. milion) obrazkov so znakmi a kazdemu by si priradil aj informaciu o tom, aky znak sa na tomto obrazku nachadza. V tomto pripade by teda vstupom bol obrazok a vystupom by bolo pismenko. Tento milion dvojic obrazok-pismenko by si posunul tej sieti a ona by sa z toho dokazal naucit ake obrazky maju ake pismenka.

Ak by si teda chcel naucit neuronovu siet naucit hrat hru, musel by si tiez pripravit taketo nejake informacie z ktorych by sa mohla ucit. Ako ale vstup a vystup vyzera zalezi od toho o aku hru sa jedna. Pri hrach sa napr. moze ist systemom, ze vstupom je aktualny stav + mozny dalsi tah a vystupom je pravedpodobnost vyhry. Ak by si opisal o aku hru ti ide, mozno by som ti vedel napisat nieco viac :)
aacid
Hardcore addict
Hardcore addict
Príspevky: 8135
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: neurolove siete

Príspevok od používateľa aacid »

tak tak, myslim ze si sa na vyzbral zo zleho konca. najprv sa treba naucit programovat, zakladne algoritmy, syntax jazyka a potom sa skus pustit do neuronovych sieti, celkovo umela inteligencia nie je nic pre zaciatocnikov.

ja som si par rokov dozadu robil tento kurz:
https://www.edx.org/course/artificial-i ... x-cs188-1x
nic tak zlozite ako neuronove siete sa tam neucilo a aj napriek tomu to nebolo nic pre zaciatocnikov. tu su veci co by si mal ovladat ak chces ten kurz robit, zacal by som mozno tam:
Object-Oriented Programming, Recursion, Python or ability to learn Python quickly, Data Structures, Arrays, Hashtables, Stacks, Queues, Priority Queues, Traversal, Backpointers, Probability, Random Variables, and Expectations (Discrete), Basic Asymptotic Complexity (Big-O), Basic Counting (Combinations and Permutations)
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8216
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: neurolove siete

Príspevok od používateľa harrison314 »

Dwizard2: eval vyhodnocuje PHP kod zapisani v stringu, nevie spustit iny process na tu su ine funkcie.
Napísať odpoveď