játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5440
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2519

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2185
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | [1] [2] > 3 <
robar - Tag | 410 hsz       Online status #49844   2007.04.04 09:37 GMT+1 óra  
Azért mondtam hogy beszélgetőgép. Akkor mondom másképp hogy mire akartam kilyukadni.
Most a példa szempontjából egyébként teljesen mindegy, a lényeget kell megérteni. Maradjunk a bálnánál-kardszárnyú delfinnél. Mindkettő emlős és cet, a bálna nem ragadozó a kardszárnyú igen. (ne mélyedjünk bele most a részletekbe, csak azért választottam a rendszertant mert az elég bonyolult és egyértelmű ehhez) Tehát: ha megtanítjuk a gépnek (futás alatt) hogy a két hal élőlény, állat , emlős és cet, az egyik ragadozó és a másik nem és az x fajta vizet szereti, akkor mi alapján döntse el, hogy milyen prioritásokat adjon az egyes besorolásoknak. Ha belegondolsz, te sem tudod igazán, mert tök természetes számodra, a programnak viszont nem. Melyik fontosabb? Hogy ragadozó-e, vagy hogy milyen vizet szeret? Ha ezt ilyen lineáris hivatkozásokkal menti el, akkor már az is befolyásolja az eredményt, hogy milyen sorrendben "tudta" meg az adatokat a program. Pl így osztjuk fel: élőlény-állat-gerincesek-emlősök-cetek,
eddig egész egyszerű lenne megoldani, de hogy ezután a ceteket a víz vagy a táplálkozás alapján ossza fel a gép, sőt, ha több kategóriát is megadunk, akkor azután még hogyan ossza tovább őket, azt már nem tudjuk így megoldani. (ha ceteknél nincs preferált víz nem érdekel, akit érdekel, az tovább tud siklani rajta) Na erre gondoltam. Ha próbáltatok már ki a kutatóintézetek beszélgetőgépeiből néhányat, ti is tudjátok, hogy azt se tudja, mit ír a program, csak a jelenlegi user-mondatra legtöbbször előforduló választ adja, vagy agyonlinkeli az adatbázisában a szavakat és vmi értelmetlen katyvaszt válaszol. Ne mondjátok, hogy az emberrel kommunkikáló MI legtöbbjéhez nem kell fogalomrendszer... Csak próbáltam leírni az eszmefuttatásom hogy, mint Jedi is írta, rendesen el kéne vonatkoztatni az embertől, legalábbis gondolkodásmódot illetően.
Ja, NN-ről nem wikipédiás jó bevezetőcikkeket még mindig szívesen vennék
Kompromisszumok nélkül csak remete vagy halott lehetsz...
   
Matzi - Szerkesztő | 2519 hsz       Online status #49799   2007.04.04 05:53 GMT+1 óra  
Robar:
Mikor jártál utoljára biológia órán, és honnan szereztél felmentést?
A bálna nem hal, nem növényevő, és a delfin sem hal. Amúgy van olyan rendszertani kategória, hogy hal, oda tartoznak például a cápák meg a halak. Kis rendszertan

Amúgy a gondolkodás emberivé válását az is korlátozza, hogy elég végesek a lehetőségeink, egy emberi agy teljesítményével felérő gép felépítése lehetetlen. Arról nem is beszélve, hogy az egyik legemberibb tulajdonság a tökéletlenség, ami elengedhetetlen ahhoz, hogy érzelmeket vagy emberi jellemzőket másolni tudjunk. A legesélyesebb az, hogyha az agy szerkezetét másoljuk le, és hagyjuk annak szabályosságait érvényesülni, de az ismereteink korlátosak, hogy mik is ezek a szabályok, és hogyan kell indítani és működtetni egy neurásil hálót, főleg ha az ekkora méretű. Emellett a mesterséges intelligencia kutatásainak minimális töredéke foglalkozik emberi vonások utánzásával, egyrészt azért, mert jelenleg ennél jóval egyszerűbb problémák is megolhatatlannak bizonyulnak, másrészt mert nem sok értelme lenne. Ezért is jó, ha egy mesterséges intelligencia igenis jól és pontosan következtet, nem pedig emberi módra, így sokkal értékesebb eredményeket tud hozni. Talán az egyetlen igazán értékes, és a gépi lehetőségeket felülmúló emberi jellemző a kreativitás, de ennek a lemásolásától olyan messze vagyunk mint Makó Jeruzsálemtől.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Jedi - Tag | 175 hsz       Online status #49757   2007.04.03 15:46 GMT+1 óra  
Idézet
robar :
Hmm. Kicsit elgondolkoztam magán az MI-n. Talán a legnehezebb dolog, amihez színtiszta "intelligencia" kéne az a beszélgetőgép.Ez az amihez egy mai létező technológia vagy azoknak a keveréke sem elegendő sztem. Gondoljunk bele: ami számunkra annyira természetes: a fogalmak rendezése. Ez az, a logika amit még nem sikerült gépre átvinni, a racionális gondolkodás, talán ez lehetne a kulcsa az egésznek. Én ezen a példán gondolkodtam el.
Tegyük fel hogy egy user/teszter éppen az élőlények rendszerezésére tanítja a programot.
Kezdjük el a gondolatmenetet: vannak az élőlények ugyebár; azoknak egy típusa az állatok.
Ebből most minket ezután az halak és az emlősök érdekelnek. Eddig egyértelmű a gép számára is: legmagasabb szinten az élőlény mint fogalom áll, majd állatok, aztán hal és emlős egy szinten. DE most tegyük fel bevesszük a csoportba a bálnát. Az hal is, meg emlős is. Itt kezdődik el a történet; mi legyen, hozzunk létre egy új csoportot ami külön az emlős halakat
foglalja magába?



Hmm, asszem itt zoologiai hiányosságok vannak. A bálna az nem hal, hanem emlős, csak nem szárazföldi (a cetek rendjébe tartozik). Szóval ez egy egyértelmű dolog. Olyan különálló kategória meg nincs az állatrendszertanban, hogy halak. Halak alatt néhány gerinces altörzset értünk manapság. Ha ebből a szemszögből nézzük, akkor megtaníthatod egy MI-nek a teljes állatrendszertant, nem lesz sosem ilyen fogalmi problémája.

De igazából akkor sincs komolyabb baj, ha lennének átfedések ezek között a fogalmak között, vagy némelyik csak részben lenne definiálva. Ilyen bizonytalanság-kezelésre nagyon sok jó módszer létezik (pl Bayes-hálók, Fuzzy-hálók). Pl. a fuzzy logika (ahogy Matzi is kifejtette egy példán) annyiban különbözik a klasszikus logikától (ahol csak igaz és hamis állítások vannak), hogy egy állítás igazságtartalmát egy 0 - 1 közé eső szám jelképezi. Például mondhatjuk, hogy a "Béla magas" állítás igazságtartalma 0.7. Ilyen módon nem kell egyértelmű fogalmi kategóriákat sem felépíteni.

   
robar - Tag | 410 hsz       Online status #49752   2007.04.03 13:48 GMT+1 óra  
Hmm. Kicsit elgondolkoztam magán az MI-n. Talán a legnehezebb dolog, amihez színtiszta "intelligencia" kéne az a beszélgetőgép.Ez az amihez egy mai létező technológia vagy azoknak a keveréke sem elegendő sztem. Gondoljunk bele: ami számunkra annyira természetes: a fogalmak rendezése. Ez az, a logika amit még nem sikerült gépre átvinni, a racionális gondolkodás, talán ez lehetne a kulcsa az egésznek. Én ezen a példán gondolkodtam el.
Tegyük fel hogy egy user/teszter éppen az élőlények rendszerezésére tanítja a programot.
Kezdjük el a gondolatmenetet: vannak az élőlények ugyebár; azoknak egy típusa az állatok.
Ebből most minket ezután az halak és az emlősök érdekelnek. Eddig egyértelmű a gép számára is: legmagasabb szinten az élőlény mint fogalom áll, majd állatok, aztán hal és emlős egy szinten. DE most tegyük fel bevesszük a csoportba a bálnát. Az hal is, meg emlős is. Itt kezdődik el a történet; mi legyen, hozzunk létre egy új csoportot ami külön az emlős halakat
foglalja magába? Vagy nézzük meg, hal vagy emlős-e inkább a bálna; inkább hal, tehát a halak csoportjába rakjunk egy emlős/tüdős halak válfajt. Ha jól meg tudjuk kérdeztetni ezt a userrel akkor nincsen komolyabb baj. (márha tud válaszolni, egyébként nagy bajban van az egész már itt is) Na de most jön a kemény dió! Mi van, ha a halfajok táplálkozására is kíváncsiak vagyunk?
Vegyük fel a fajok közé még a kardszárnyú delfint. Az is tüdős hal, de az ragadozó, a bálna meg növényevő. Namármost itt hogy döntse el a gép, hogy hogy rendezze a fogalmakat? Ezt egy ember sem tudná így megmondani, mert nem ilyen Mereven gondolkodik. Az értelmesebb megoldások: a halakat bontjuk kétfelé; és akkor lesz hal->ragadozó->emlős és hal->növényevő->emlős,
vagy a lehető legalacsonyabb szinten dolgozunk, tehát hal->emlős->ragadozó|növényevő. De lehetne magát a hal csoportot is szétosztani úgymint állat->ragadozó->hal és állat->növényevő->hal.
És akkor még a szaporodásnál nem is tartunk... Ez egy ember számára tök természetes, de pont ez jelenleg az MI lépfenéje szerintem. Pedig egy igazi intelligencia absztrakt fogalmak nélkül elég nehezen boldogulhatna... Most már vannak érzelmek meg neuronhálók meg evolúció meg minden, sőt, lassan alapszintű érzelmek is, csak azt felejtették/tük el, hogy az érzelmek nem közvetlenük az output-ot módosítják hanem a gondolkodást, a logika érvényesülését, és pont ez, ami még nincs meg. Ez az az irány amibe érdemes lehetne idővel fejleszteni.
Kompromisszumok nélkül csak remete vagy halott lehetsz...
   
BerbeckU - Tag | 506 hsz       Online status #49751   2007.04.03 13:48 GMT+1 óra  
Idézet
beast :
Ugyan már, Geri rég megmondta a frankót.


Ez eszméletlen... :, hogy-hogy ezt eddig nem vettem észre? Ez valami törölt cikk, vagy mi?

___________
A lelkesedés az, ami a tudásnak ízt ad...


   
robar - Tag | 410 hsz       Online status #49743   2007.04.03 12:46 GMT+1 óra  
A wikipédián cikk arról az evolúciós szimulációról:
[url]http://en.wikipedia.org/wiki/Tierra_(computer_simulation)[/url]
Kompromisszumok nélkül csak remete vagy halott lehetsz...
   
Matzi - Szerkesztő | 2519 hsz       Online status #49742   2007.04.03 12:45 GMT+1 óra  
A fuzzy, amennyire nekünk tanították, nem konkrét értékekkel számol, hanem ismer olyan dolgokat is, minthogy kicsit, vagy nagyon. Ilyen természetes nyelvi szimbólumok segítségével meg lehet oldani olyan problémákat, amik emberi döntési folyamatokon alapulnak, nem éles határokon.

Egy jó példa a dologra, ami elemi logikával érdekes eredményt produkál.
Ki a kopasz?
Akinek nincs egy szál haja sem. Akinek egy van, az is kopasz. Akinek kettő, az is. Egy kopasz emberen tehát nem segít +1 hajszál, attól még kopasz marad. Teljes indukcióból következik, hogy mindenki kopasz.

Fuzzyban lehet olyan, hogy X db hajszállal mennyire számít "tök kopasznak", mennyire "ritka hajúnak" és mondjuk mennyire "dús hajúnak", és ez alapján már lehet számolni, hogy bizonyos elvárásoknak megfelel e, anélkül, hogy megmondanánk, hogy konkrétan hány hajszáltól felel meg valaki.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
robar - Tag | 410 hsz       Online status #49739   2007.04.03 12:12 GMT+1 óra  
Tényleg hallottam a GA és az NN mellett a fuzzy logikáról is. Ez pontosan mit takar? Ha tudtok néhány jó kiinduló írást az fuzzyról és az NN-ről nagyon megköszönném.
Jó fejlesztést
Kompromisszumok nélkül csak remete vagy halott lehetsz...
   
beast - Törzstag | 1241 hsz       Online status #49696   2007.04.03 09:00 GMT+1 óra  
Ugyan már, Geri rég megmondta a frankót.

   
g_imi - Tag | 236 hsz       Online status #49649   2007.04.03 02:30 GMT+1 óra  
Idézet
Jedi :
Idézet
Asylum :
Hmm ez érdekes és publikálta azt az algoritmust? Mert én fogákony vok minden újdonságra



Az úriember neve Daniel Hillis. A konkrét probléma pedig kevés (egész pontosan 16 db) szám legkevesebb összehasonlítással történő rendezése volt. Ha jól emlékszem, akkor nem ő adta a legjobb megoldást, de csak 1-2 lépéssel maradt le a "kitenyésztett" rendezési hálója az addigi legjobbtól (valahol 60 összehasonlítás körül van a legjobb), ami nagyon szép teljesítmény.
A rendező algoritmust valószínűleg felesleges nézegetni, mivel az egy rendezési háló, azaz sok minden nem látszik rajta.



Előkerestem a könyvet és tényleg igazad van. Amúgy a könyv címe: Üzenet a kövön.

   
robar - Tag | 410 hsz       Online status #49648   2007.04.02 23:46 GMT+1 óra  
Például egy felülnézetes-lövöldözős játékot jóval egyszerűbb lenne így megoldani. Egy rpg már nehezebb (bár csak egyenesen arányosan!) mivel ott sokkal több értéket kell egyszerre figyelni pl sebzés élet fegyerek fajok szintek meg millió más dolog. Rts-eknél a legelső lépcsőfok lehetne a feltételes elágazásokhoz kötött kevert stratégiák , hogy lenne előre definiált néhány stratégia pl sorfal, körbevevés, áttörés, csapatokra osztás (derékhad, balszárny-jobbszárny) és ilyenek. Ez persze csak harcokhoz jó de szerintem bőven elég tapasztalat lehetne egy ilyet létrehozni. Ide még egy harmadolyan egyszerűségű leííró nyelv is elég lenne, főelg ha nagyon magas szinten állna. Például harcnál az egyik egy sorfallal kezd, majd ha meggyengült az ellenfél akkor körbeveszi, a másik áttör a falon majd csapatokra oszlik stb.
Kompromisszumok nélkül csak remete vagy halott lehetsz...
   
robar - Tag | 410 hsz       Online status #49646   2007.04.02 23:30 GMT+1 óra  
Nem is mondtam, hogy egyszerű egy dolog... Az még egy nehéz dolog Rts-eknél, hogy nem csak csatákból áll a játék. Tehát lehet hogy jól irányítja ütközetekben a gép a seregét, de ha nem tud megépíteni egy gyárat vagy nem tud venni egy katonát akkor bajban van. Lehetne például olyan hogy a különféle szituációk azok az ilyen helyzetek lehetnének, és külön tenyésztenénk ki erre is egy jó megoldást, majd a legjobbakat kéne összeolvasztani. A jól megtervezett keretekre én valami kicsi és lehetőleg jó egyszerű ai-scriptnyelvet tudnék elképzelni, amit könnyű lenne generálni is. Pl a prog.hu -n olvastam egy fórumban egy gp-ről, aminek a fejlesztője külön ilyen scriptnyelvet csinált. A lényeg hogy a legtöbb kombinációban értelmes/értelmezhető eredménynek kell kijönnie.
Most olyan szintre gondolok, mint mondjuk egy függvény ami az aktuális pénzzel/nyersanyagkészlettel tér vissza, vagy mondjuk a begyüjtőegységet a legközelebbi bányához küldjük stb stb. Majd otthon kikeresem azt a fórumot és belinkelem ide.
A különféle szituációkat úgy is meg lehetne oldani hogy blokkokra/függvényekre/metódusokra osztanánk a kódot, és a script főblokkjában levő kód futna mindig ingame, ahonnan ezeket a függvényeket hívná meg az kód.
Ez mind csak eszmefuttatás, de ha mondjuk ezt a gondolatmenetet átultetjük egy egyszerűbb játékba (ai szempontjából) még a mi kereteink között is megoldható lenne. Én most még csak elméletben dolgozom, de lassan ráveszem magam, hogy nekikezdjek néhány evo-s tanulmánynak, aztán játékoknak.

ps: Neurális hálózatokról tudnátok egy két jó írást belinkelni, nagyon érdekel a téma!
Kompromisszumok nélkül csak remete vagy halott lehetsz...
   
Jedi - Tag | 175 hsz       Online status #49640   2007.04.02 13:35 GMT+1 óra  
Idézet
robar :
Az evolúciós megoldást én leginkább rts-ekhez bírnám elképzelni, pl lennének előre definiált taktikák (most magas szinten dolgozunk), és azokat tudná a feltételeknek megfelelően keverni, vagy pl lehetne egységszinten is dolgozni, hogy nem taktikákat követne, hanem magát az egyes egységet irányítaná, ebből akár új taktikák is kialakulhatnának. Ha ezt jól megtervezett keretke be lehetne ágyazni, az Mi írás gyakorlatilag egy egyszerű evo program megírásá és többszöri lefuttatása lenne. A természetes kiválasztódás akár egy egy körverseny is lehetne az egyedek között, ha egyszerre a populációban mondjuk 10-re limitáljuk a létszámot akkor nem is lenne olyan lassú sem a dolog.
...



A GA-nak vannak szépséghibái, gyenge pontjai. Az egyik ilyen sarkalatos dolog a jó fitness függvény kitalálása. Ezt egy bonyolultabb feladat esetén nagyon nehéz kitalálni, h mi lenne a jó függvény. Egy ilyen RTS játék esetén nagyon nem triviális, hogy milyet válasszon az ember. Hogyan jellemezzük az egyes egységek teljesítményét? Mikor lesz jobb egy kitenyésztett taktika? Amikor esetleg legyőzi a többit? Ebből még nem következik, hogy jó megoldást találtunk, hisz lehet, h a legyőzött taktikák is gyengék voltak, így nem lesz semmi fejlődés, megmaradunk egy átlagos megoldásnál. Valószínűleg az jó megoldás lehet, ha versenyeztetjük a taktikákat és a megoldandó szituációkat. Egyre nehezebb szituációkat generálunk a kitenyésztett taktikák tesztelésére (klasszikus vadász-préda megoldás), így azok is rá vannak kényszerítve, hogy jobban fejlődjenek.

Jó sok érdekes, nyitott kérdés van még itt. Lehet kísérletezni.

   
BerbeckU - Tag | 506 hsz       Online status #49639   2007.04.02 13:21 GMT+1 óra  
Huh, elég izgalmas mederbe terelődött a téma. Igazából a legnehezebb, és talán eddig lehetetlen számba menő a téma szerintem az "ötlet" mint olyan.

Valami olyasmi mint mikor egy változó inicializálatlanul egy memória szemetet kap. Csak ezek a memóriaszemetek létfontosságú információt tartalmaznának, és elkezdenénk egy ciklus ami létrehozza a változókat, megvizsgálnánk a kapott címeken lévő véletlenszerű "ötleteket" és addig végeznénk mindenzt amíg egy kivitelezhető megoldáshoz nem jutunk.

Sokszor a fejlődés során olyasmi jelent ugrópontot, és előrelépést, ami mindaddig, az abban a helyzetben lévő egyednek és társainak teljesen őrült és értelmetlen dolognak tűnt volna. Sokszor a végtelen + 1 -edig próbálkozás visz sikerre és ki tudja miért sokszor pont a cél küszöbén hagyjuk abba.

Tehát az eddigi MI kutatásokban is megjelenik, a fuzzy logika, ami valami ilyesmire, a viszonylagosságra, az ember érzelmek és egyéb hatások gondolkodásra ható kiszámíthatatlan téynezőivel foglalkozik (ha jól tudom).

Mégis, mintha ezek a véletlenek és váratlan ötletek sokszor olyasmit hoznak amit a logika, tapasztalatok, számok, ábrák, kimutatások, grafikonok, számítások és sok-sok okoskodás árán soha sem tudtunk volna elérni.

Ötletek nélkül képtelenek lennénk gondolkodni.

Ez az amit a legnehezebb lemodellezni... Szerintem.

p.s.: Jah, és nem célom feltalálni a spanyol viasz... Csak eszembe jutott.

___________
A lelkesedés az, ami a tudásnak ízt ad...


   
Jedi - Tag | 175 hsz       Online status #49638   2007.04.02 13:10 GMT+1 óra  
Idézet
Asylum :
Hmm ez érdekes és publikálta azt az algoritmust? Mert én fogákony vok minden újdonságra



Az úriember neve Daniel Hillis. A konkrét probléma pedig kevés (egész pontosan 16 db) szám legkevesebb összehasonlítással történő rendezése volt. Ha jól emlékszem, akkor nem ő adta a legjobb megoldást, de csak 1-2 lépéssel maradt le a "kitenyésztett" rendezési hálója az addigi legjobbtól (valahol 60 összehasonlítás körül van a legjobb), ami nagyon szép teljesítmény.
A rendező algoritmust valószínűleg felesleges nézegetni, mivel az egy rendezési háló, azaz sok minden nem látszik rajta.

   
robar - Tag | 410 hsz       Online status #49637   2007.04.02 12:57 GMT+1 óra  
Vagy nézzétek meg a prog.hu -n, "Bevezetés a genetikus algoritmusokba" - pont erről szól, és sok jó linket adnak hozzá
De az evolúciónál azt is meg lehet oldani hogy ha kialakítasz te is egy jó scricptnyelvet vagy ha a nyelvben van rá mód hogy függvénybe írj kódot futás közben, akkor bármit meg lehet oldani, emlékezőképességet meg egyszerűen lehetne rakni bele, mondjuk egy szüvegfájlba beírja amit be kell. Az evolúciós megoldást én leginkább rts-ekhez bírnám elképzelni, pl lennének előre definiált taktikák (most magas szinten dolgozunk), és azokat tudná a feltételeknek megfelelően keverni, vagy pl lehetne egységszinten is dolgozni, hogy nem taktikákat követne, hanem magát az egyes egységet irányítaná, ebből akár új taktikák is kialakulhatnának. Ha ezt jól megtervezett keretke be lehetne ágyazni, az Mi írás gyakorlatilag egy egyszerű evo program megírásá és többszöri lefuttatása lenne. A természetes kiválasztódás akár egy egy körverseny is lehetne az egyedek között, ha egyszerre a populációban mondjuk 10-re limitáljuk a létszámot akkor nem is lenne olyan lassú sem a dolog. Elvégre is nem kell megjeleníteni alapesetben semmit se, bár tök jó móka lehetne nézni hogy alakul magától az Mi-nk. Persze akkor előbb meg kell írni a játék alapját hogy meglegyen a környezet. Darwin is megmondta
ha van kellő változatosság az egyedek között (pl mutáció, ivaros szaporodás)
van szaporodás
és van természetes kiválasztódás:
akkor beindul a gépezet
és még1:
ha jól van megírva a "motor", akkor a fejlődés nem tud visszafordulni, max beragadni, az idő folyamán csak jobbá válhat a "faj"
Én mostanában ilyeneken gondolkodom, érdemes megnézni az említett cikket a prog.hun, és rengeteg érdekesség van még a neten pl a wikipédián is!
Kompromisszumok nélkül csak remete vagy halott lehetsz...
   
Asylum - Törzstag | 5440 hsz       Online status #49632   2007.04.02 11:27 GMT+1 óra  
Hmm ez érdekes és publikálta azt az algoritmust? Mert én fogákony vok minden újdonságra
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
g_imi - Tag | 236 hsz       Online status #49631   2007.04.02 10:13 GMT+1 óra  
robar ez nagyon baró!
Én olyanról hallottam h 1 mukesz az evolució módszerét rendező algoritmusok készítésére használta fel. A cél 1 olyan algoritmus volt ami a leggyorsabban rendez 1 bizonyos számú elemből álló sorozatot növekvő sorrendbe. A végén az addig ismert leggyorsabb algoritmusnál is jóval gyorsabbat kapott. Belenézett a kódjába és totál nem tudta h hogyan is működik. Ilyesmi lehet az agy is. Működik, mert működnie kell. Ha nem működne akk helyette vlm más alakult volna ki ami működik. Viszont nem biztos h általunk felfogható struktúrákba rendezve meg tudjuk érteni valaha is a működését.
Visszatérve:
a cél nem csak 1 "inteligens" lény lenne, hanem pl 1 olyan főellenség amit nem lehet kétszer ugyanúgy elpusztítani, mert megtanulná h milyen támadás ellen hogyan védekezzen akár többszöri kudarc árán is.
Javítsatok ki ha tévedek de én még nem hallottam ilyen npc-ről.

   
robar - Tag | 410 hsz       Online status #49630   2007.04.02 09:58 GMT+1 óra  
Nekem is van egy ötletem; mivel engem inkább az evolúció programozás érdekel jobban, és a neuronhálózatokról még nem nagyon olvastam, ezért így közelítem meg a témát:
szerintem nagyon jó ötlet lehetne az intelligencia-fejlesztéshez, ha miután meglenne egy ilyen alap-lény, az ingerelhetőségét - fáradékonyságát és minden input - outputját le tudnánk írni egy-egy gént jelképező számba + ha a lényt magát is meg lehetne változtatni (pl az a hálózat-szerkesztő progi adaptációja), + majd kitalálnánk egy hatásos természetes kiválasztódás-logikát, akkor nagyon jó dolgokat el lehetne érni sztem. Akár így is meg lehetne alkotni egy hatásos intelligenciát egy játékhoz, meg amúgy is különös dolgok keletkezhetnének.

Olvastam valahol, asszem egy Mérő László-könyvben; volt egy biológus, akit nagyon érdekelt a 90-es évek elején az evolúció, így programozási tudását latba vetve, hogy jobban tudja tanulmányozni, írt egy programot. A lényeg az, hogy csinált egy script-nyelvet 32 utasítással, ezeket az utasításokat írták le a lény génjei.. A lényeg hogy a populáció számára le volt foglalva egy adott számú bájt a memóriában, ez volt a természetes kiválasztódás alapja. Egyértelműen az az egyed élte nagyobb valószínűséggel túl, amelyik gyorsabban tudott szaporodni a többinél, és minél kevesebb területet foglalt le. (az utasítások száma volt a meghatározó tényező, a szaporodás úgy történt, hogy lemásolta véletlenül generált hibákkal magát a memóriába)
Az ember legjobb tudása szerint összeállított egy egyedet, 82 utasítással, ez volt a legkevesebb amit el tudott képzelni. Elindította az evolúciót, és hirtelen egy idő múlva megjelent egy kb 40 utasításból álló lény! Kiderült, hogy parazita-féle volt, úgy szaporodott, hogy a másik egyeddel (mármint utasításaival) másoltatta le magát! Majd megjelent egy egyed, ami erre immunis volt, akkor jött egy kcisivel több utasításból álló parazita, ami meg az áldozatának a védelmét játszotta ki... pluszban megjelent az altruizmus és az ivaros szaporodás kezdetleges formája is!
Ez úgy történt, hogy két egyed egyszerre kezdte elönmagát másolni ugyanarra a részére a memóriának. A vicc az volt az egészben, hogy a végén megjelent egy 20(!) körüli utasításból álló lény, ami nem parazitáskodott, nem szaporodott ivarosan és semmi ilyen csaló dolgot nem csinált!

Ha jól van kitalálva a dolog, elképesztő dolgok születhetnek egy evolúció nyomán...
(így lett egy szárazdföldi állatkából bálna pl)
Kompromisszumok nélkül csak remete vagy halott lehetsz...
   
g_imi - Tag | 236 hsz       Online status #49622   2007.04.02 08:22 GMT+1 óra  
pöpec
Beast majd írj ha megnézted. A primitív angol tudásom lehet h megnyivánul majd
Ha gond lenne a használatával írjatok.

   
beast - Törzstag | 1241 hsz       Online status #49598   2007.04.02 03:36 GMT+1 óra  
nekem lejött mind2....

   
g_imi - Tag | 236 hsz       Online status #49596   2007.04.02 03:13 GMT+1 óra  
hmm
ezt nem értem
van vlm 5let h hogyan tegyem letölthetővé?

   
gaborlabor - Moderátor | 4449 hsz       Online status #49517   2007.04.01 05:22 GMT+1 óra  
nekem error404 mindkettő

   
g_imi - Tag | 236 hsz       Online status #49516   2007.04.01 05:20 GMT+1 óra  
Hosszas próbálkozás után összehoztam 1 alap progit amely segít neurális hálókat tanítani.
Itt érhető el:
http://g_imi.extra.hu/Imruf/NNT/NNT.zip
a futtatáshoz szükséges fájlok:
http://g_imi.extra.hu/Imruf/NNT/NNTdll.zip

Nézzétek meg!Remélem hasznát veszitek majd. Nem bug mentes, és még nem is végleges.

   
g_imi - Tag | 236 hsz       Online status #47932   2007.02.24 11:12 GMT+1 óra  
Nem a témához kapcsolódik de a programhoz igen.
FOX toolkitet használok a GUI-hoz, és arra lennék kíváncsi h lehet-e dinamikusan futásidőben objektumokat (gomb,edit stb) létrehozni, mert az inputok számát a felhasználó határozná meg.
GTK-t akartam használni, de van vlm a pango-val és így a betűk helyett csak téglalapok jelennek meg.

   
syam - Törzstag | 1491 hsz       Online status #47776   2007.02.22 07:54 GMT+1 óra  
én egyelőre szöveges módban gondolkodok és luában
alias aalberik
   
g_imi - Tag | 236 hsz       Online status #47764   2007.02.22 02:30 GMT+1 óra  
Épp 1 ilyen neurálsi háló szerkesztőn munkálkodok. Fejben már meg van a dolog, csak még 1 viszonylag könnyen használható GUI könyvtárat kell keresnem. A GTK-ra gondoltam, de vlm zizi van vele, mert a komponensek feliratai nem jelennek meg. A pango-ra hivatkozik de fogalmam sincs h mit akarhat?

   
syam - Törzstag | 1491 hsz       Online status #47750   2007.02.21 20:44 GMT+1 óra  
nah tovább gondoltam a mimózát a penetráció irányát csak normalizálni kell és 3 receptornak kell továbbadni a vektor 3 komponensét és máris képes irányt "érezni"
azt hiszem kell külön neurális háló szerkesztőt írni, hogy a sejteket, rétgeket külön-külön meg lehessen tervezni ill. már a tanulás végeredményét rögzíteni.
egyedül az a baj, h most vagy gpuzok vagy dolgozok vagy ezt csinálom a többiről nem is beszélve; nagyon kevés ez a napi 24 óra
alias aalberik
   
g_imi - Tag | 236 hsz       Online status #47749   2007.02.21 16:22 GMT+1 óra  
Syam elolvastam a blog-ot. Érdekes a megközelítés. Sztem érdemes lenne rászánni az időt és "megalkotni" ezt a mimózát. Ha másra nem is tapasztalat szerzésre mindennképp jó lenne, viszont az is lehet h a mimóza mutálódna 1 hangyává

   
Szepi - Törzstag | 572 hsz       Online status #47748   2007.02.21 16:19 GMT+1 óra  
apukám ebben a témában dolgozik..
lehet hogy már halottatok a SZTAKIban írt Go programról azt pl. nemrég csinálta egy munkatársával.
volt idő amikor segítenem kelett neki kiválasztani hogy mi jó és mi nem..én egyenlőre nagyjából scak ennyit tudok erről a témáról, de sztem érdekes, és msotmár C++-t tanulok úgyhogy már csak pár év és..
--- permanent temporary signature ---
   
syam - Törzstag | 1491 hsz       Online status #47732   2007.02.21 13:04 GMT+1 óra  
alias aalberik
   
BerbeckU - Tag | 506 hsz       Online status #47724   2007.02.21 11:34 GMT+1 óra  
Milyen weblogba? Vagy WebBlogba? Szóval, hova is?

___________
A lelkesedés az, ami a tudásnak ízt ad...


   
syam - Törzstag | 1491 hsz       Online status #47721   2007.02.21 11:23 GMT+1 óra  
thx a címet

ja és írtam weblogba egy hosszu ötletet a mimózámról, akit érdekel olvassa át és várom a véleményeket róla
alias aalberik
   
Orphy - Törzstag | 1893 hsz       Online status #47720   2007.02.21 10:50 GMT+1 óra  
Nah, akkor én is írok egy könyvcímet:

Stuart Russel - Peter Norvig: Mesterséges Intelligencia Modern Megközelítésben
(Második, átdolgozott, bővített kiadás)

Panem Könyvkiadó, 2005

1206 oldal
   
syam - Törzstag | 1491 hsz       Online status #47715   2007.02.21 09:58 GMT+1 óra  
Idézet
szerinten nem is olyan komplex a betanított probléma, mint egy 'hagyományos' játék.


na igen ott a játék a tanításról szól és az így kapott intelligencia teszteléséről. 1 "mezei" játék esetében egy előre létrehozott intelligenciát használunk fel kissé "modolva" az adott személyiséghez.
ezért mondtam, h szerintem lehetne csinálni egy "átlaglény"t amit bárki később saját céljaira továbbfejleszthet aka "modolhat"
alias aalberik
   
Matzi - Szerkesztő | 2519 hsz       Online status #47703   2007.02.21 06:41 GMT+1 óra  
A világért sem szeretnék senkit sem lelombozni, de ez olyan, mint ágyút önteni veréb-vadászathoz. Egyrészt baromi nehéz, másrészt szinte biztos, hogy nem fog kielégítően működni, és a probléma egyszerűbben is megléphető. Például megfelelő paraméterek értékére simán lehet érzelmi választ keresni fuzzy logikával, és igaz, hogy kicsit statikus (bár lehet variálni rendesen), de elég könnyen használható, konfigurálható és elkészíthető. Persze a cselekvések már szkriptet igényelnek, de ez természetes és nem baj.
Persze gyakorloni meg próbálkozni lehet, csak egy ilyen project nem piskóta. Ez például egy egyetemi csapat munkája, és szerinten nem is olyan komplex a betanított probléma, mint egy 'hagyományos' játék. És nyilván nem is egy nap alatt készült.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
g_imi - Tag | 236 hsz       Online status #47698   2007.02.21 04:42 GMT+1 óra  
Van 1 másik könyv is. Ugyanez a címe, de a borítója fehér. Annak ami nekem van annak zöld a borítója.

   
Orphy - Törzstag | 1893 hsz       Online status #47690   2007.02.21 02:24 GMT+1 óra  
Hmm, egy vaskos MI könyvet én is beszereztem, még nem értem a végére, de jónak tűnik...
Ha hazaértem, beírom.
   
g_imi - Tag | 236 hsz       Online status #47689   2007.02.21 02:18 GMT+1 óra  
A könyv: Mesterséges intelligencia, Aula kiadó 1999.

Lényegében egyetemi jegyzetek gyűjteménye. Elég átfogó alkotás.

Az 5tlet miszerint össze kellene adnunk a tudásunkat szerintem fenomenális. Közösen sokkal többre juthatnánk.
Említettem h nem akarok egyből a közepébe vágni így nem is saját progit használok a háló kezelésére, hanem 1 NNFpp nevezetű könyvtárat. Ez az NNF c++ átirata. Nagyon egyszerű a használata és minden benne van ami egynlőre szükséges lehet (meg többek közt ez azok eggyike amelyek gond nékül működnek is): http://nnfpp.sourceforge.net/
Nézzétek meg!!!

LGPL liszenszű tehát szabadon felhasználható.

   
syam - Törzstag | 1491 hsz       Online status #47674   2007.02.20 15:28 GMT+1 óra  
ha megnézed a neurális háló felépítését az nagyon (túl) egyszerű ( súlyok, kapcsolatok ) - mármint könnyü leprogramozni. az igazán nagy falat amit Jedi is mondott a megfelelő inputok és output(ok) megválasztása ill. az egész reakció-sor megtervezése.
az egyszerű strukturából következően egyszerű lementeni vinyóra az intelligenciát és így pl. egy játékon keresztül fejlődni képes lényt lehet létrehozni akár emlékekkel.( pl majd emlékszik majd az ip címekre és tudja kire kell lanon vadászni)
g_imi milyen könyved van neked neurális hálóról ill. milyet ajánlanál?

ps:

érdemes lenne közösen egy "átlag lényt" írni pszeudokoddal, amit később mindenki tovább fejleszthet igényei szerint. a lényeg mindössze, h összegyüjtsünk minél több használható ill. programozható inputot, ezek hatásait és az outputokat...

Ezt a hozzászólást syam módosította (2007.02.20 15:34 GMT+1 óra, ---)
alias aalberik
   
g_imi - Tag | 236 hsz       Online status #47672   2007.02.20 14:08 GMT+1 óra  
Köszönöm Jedi az észrevételeket. Megfogadom a tanácsaidat!
Nem akarok rögtön a közepébe végni, először 1 apró "lény" szeretnék "alkotni" tapasztalat szerzés céljából.

Viszont csalni is lehet. Pl ha konkrétan megmondom az illetőnek h az a vlk ellenség akk máris kiküszöbölhető 1-2 probléma. Tudom h így már nem igazi MI-ről lesz szó.

Bár még nagyon messze van, de arra is gondoltam h a játékból való kilépés után el lehetne menteni az ellenfelek 1 részének (pl a "legtapasztaltabbak" hálóját, így a játék betöltésekor nem maradnának butusok

Tudom h magasra teszem a mércét, de megfogott a téma és megpróbálok mindent elkövetni h elérjek vlmt. Még régebben vettem 1 könyvet (jó vaskos) és most a net mellett azt bogarászom. Azzal is tisztában vk h magas matematikai apparátus szükséges hozzá, de úgy érzem h ezzel nem lesz gond.

   
Jedi - Tag | 175 hsz       Online status #47671   2007.02.20 13:49 GMT+1 óra  
Jedi rétegenként 1000 neuronról van szó vagy összesen annyi?

Rétegenként annyi.


Tudom h nem lehet mindent lefedni, de ha sikerülne jól összeválogatni az ingereket ill. "érzelmeket" akk meglehet h működne a dolog.

Működhet a dolog, csak arra figyelj, amit syam is mondott. Alapvetően két dologra lehet használni egy neurális hálót: függvény-approximációra és osztályozásra (igazából átfogalmazható egymásba a két feladat).

A fv-approximáció egy függvény közelítését jelenti. Itt pl. azt a fv-t keresed, aminek a bemenete az pl. fegyveres-e az illető, mennyire van közel hozzád, mennyire tűnik erősnek, plusz még néhány más numerikus paraméter, a függvény érteke pedig egy félelem és agresszió érték (mondjuk 0-1 -re normalizálva mindkettő).

Az osztályozásnál ugyan ezek a bemenő paraméterek, a kimenet viszont egy osztályt fog jelölni (pl. negatív szám = ellenség, pozitív = barát).

Namármost a probléma ott kezdődik, ha az input nem jellemzi jól a megoldandó feladatot és emiatt nem lehet egyértelműen szétválasztani a két osztályt (pl. attól h vkinek fegyvere van és közel jött hozzám, attól még lehet barát és ellenség is). Olyan inputokat válassz, amelyek függvényében jó eséllyel el lehet dönteni, h melyik osztályba sorolodik az illető.

Az is fontos itt, h milyen aktivációs fv-t használsz a neuronokban. Ha pl. sima perceptront, akkor csak lineárisan szeparábilis problémákat tudsz megoldani, azaz olyat, ahol az egyes csoportok (pl barát/ellenség) egy hipersíkkal elválaszthatóak (azaz pl 2d-s input esetén egy egyenessel). Vannak módszerek, amivel ezen javítani lehet (szigmoid aktivációs fv, soft margók használata, magasabb dimenziós feature térbe képezni az inputot, stb), de szvsz kezdetnek bőven jó lesz ez a kis háló.

Majd kiváncsi leszek az eredményre.

   
g_imi - Tag | 236 hsz       Online status #47666   2007.02.20 13:03 GMT+1 óra  
Igazad van. Nem a neuron látja az ellenfelet
Én nagyon sematikusan írtam le a dolgokat. Természetesen tényleg arról van szó h az input neuronokra a receptorokat érő ingereket ill. azok intenzitásait küldöm (0-1 között végtelen sok valós szám van) és a kimenet alapján generálok valamilyen cselekvést.

Abban is igazad van h míg a scripteknél nehéz lenne mindenre felkészülni, addig a neurális hálóknál az értékek bármilyen kombinációban jöhetnek. Ez valamiféle szabadságot ad a dolognak, és csak ritkán produkálna ugyanolyan eredményt.

Gondolkodtam azon is h írok a progit aminek a segítségével megadom az input ill. az ezeknek megfelelő output értékeket, és ezek alapján készítek 1 fájlt. Majd ez alapján a fájl alapján betanítom a hálót, és a súlyokat elmentem 1 fájlba. Így a programomban már csak ezt a fájlt kell megnyitni, és nem kell folyamatosan betanítani a hálót. Biztos van már ilyen progi, de jobb szeretném magam elkészíteni. Fejben már sokmindent kigondoltam, de természetesen majd a "munka" közben jönnek elő a bukkanók.

   
syam - Törzstag | 1491 hsz       Online status #47656   2007.02.20 12:15 GMT+1 óra  
háát szerintem egy neurális háló nehezen "lát" valakit...
gondolj bele: mindössze 1-ben és nullában/ gátlásban és serkentésben gondolkozhatsz, mint a valódi idegrendszernél.
én kapásból csináltam "receptorokat" ezek közül az egyik a "tapintás", amit a legegyszerübben ütközés vizsgálattal lehet megtudni.
pl: ha a játékos bounding volumeja érintkezik a "lény" bounding volumejával akkor sima "megérintés"ről van szó,
ha viszont pl a játékos kardja érintkezik azzal, akkor már a "vágás receptorok" jönnek müködésbe, amiből kapásból lehet több, eltérő ingerküszöbökkel és ennek megfelelően növekvő intenzitású válasszal( mondjuk a mimózám legfejlebb csak jobban összehuzódik)

szerintem a neurális háló leginkább a sok egymásra ható tényező gyors kiértékelésében használható leginkább játékban( és ezen tényezők együttállását meg is lehet vele taníttatni...)
alias aalberik
   
g_imi - Tag | 236 hsz       Online status #47647   2007.02.20 11:22 GMT+1 óra  
Köszönöm az észrevételeket!
Jedi rétegenként 1000 neuronról van szó vagy összesen annyi?

Én 1 rpg játékba szeretném kicsit "inteligensebbé" tenni az NPC-ket.
Arra gondoltam h a bemeneti neuronokra különböző, a környezetből érkező ingereket engednék rá, és ennek megfelelően a kimenetre különböző érzelmi reakciókat rendelnék hozzá.

pl. bemenetre:
1. meglát vlkt
2. ez a vlk fegyveres-e?

kimenetre:
1. félelem szintje
2. agresszió szintje

Betanítanám neki a dolgokat és az "érzelmek" alapján generálna cselekvési tervet. Persze néhány scriptet is lehetne alkalmazni a folyamat gyorsítására.

Tudom h nem lehet mindent lefedni, de ha sikerülne jól összeválogatni az ingereket ill. "érzelmeket" akk meglehet h működne a dolog.

Először 1 hangyára gondoltam ami éhes lesz, és táplálékot keres majd magának.

   
syam - Törzstag | 1491 hsz       Online status #47632   2007.02.20 08:41 GMT+1 óra  
egyelőre backpropnál tartok, de még szinte nulla a tapasztalatom
magamat is betanítom neurális hálók tanításának tanítására és akkor majd kiderül mire vagyok képes
alias aalberik
   
Jedi - Tag | 175 hsz       Online status #47630   2007.02.20 08:26 GMT+1 óra  
Idézet
syam :
ahoi,

szerintem lehet használni játékokban( nexuslibben már találkoztam vele)
én is ezzel probálkozok ill amint mindent átírok gpura neki is látok. azt hiszem az első célpontom egy mimóza lesz: elég egyszerünek tünik, de képes tanulni



Ezt már láttam a projectednél, meg is akartam kérdezni, h mit fogsz használni. Fuzzy? Szigmoidos backprop? SVM? Kiváncsi leszek majd az eredményre.

   
Jedi - Tag | 175 hsz       Online status #47629   2007.02.20 08:22 GMT+1 óra  
Nehéz témát vetettél fel, de szvsz azért érdemes lehet vele foglalkozni.

Idézet
g_imi :
1. lehetséges neurális hálókat alkalmazni számítógépes játékokban, van rá példa?



Természetesen lehetséges. Példa is van rá, persze legnagyobb százalékban inkább a táblás játékokban. Az az igazság, h egy RTS/FPS/stb játékba sokkal könnyebb vmilyen script MI-t beépíteni (ami nagyából intelligensnek látszik), mint egy neurális hálót betanítani v. egy tanulórendszert összerakni hozzá. Túl nagy az állapottér ezekben a játékokban.
Szvsz ami viszont jó megoldás lenne, h van egy előre bedrótozott script MI, több különféle stratégiával s egy tanulórendszer szépen finomhangolja az egyes stratégiák alkalmazását a különböző helyzetekhez.

Van itt egy kis fejtágító is, néhány cikkel:
http://people.inf.elte.hu/lorincz/Files/RL_2007/Szamitogepes_jatekok.pdf
Persze az ebben hivatkozott cikkek nem számítanak könnyed esti olvasmánynak. Az MI-nek ez a része erős matektudást igényel, ha vmi használhatót szeretnénk elérni.

Ami viszont még szintén MI kategóriába tartozik, s jól használható RTS/FPS játékokban is, azok ugye a különböző útkereső algoritmusok (A, A*, D*, stb.). Biztos mindenki tapasztalta már, h pl. egy RTS-ben teljesen máshova ment a kijelölt egység, mint ahova küldeni akartuk. Ezekről is sokat lehet beszélni, h vajon melyik lenne a jobb a kölünböző játékokhoz.


Idézet
g_imi :
2. van rá mód h meállapítsuk az optimális neuron számot egy adott feladatra? Egyáltalán függ-e a neuronok száma a végrehajtandó feladattól?



Nincs univerzális módszer a háló méretének megválasztásához, mindenképp a szükséges hozzá vmilyen feladatspecifikus háttértudás felhasználása. Például, h milyen feature-öket válasszunk az inputnak és hogyan reprezentáljuk ezeket.
Például vegyünk egy viszonylag "egyszerű" játékot, a sakkot. Ha csak a sakktáblát adjuk meg bemenetnek, az egy nagyon rossz választás, a háló sosem fogja megtanulni a játékot. Túl nagy az állapottér, nem "tudja", h mit kellene megtanulnia benne.

Viszont tudjuk, h egy játékállás a sakkban egész jól jellemezhető (a középjátékban) az anyagi előnnyel (azaz az egyes bábuk értékének összegével: fehér bábuk összege - fekete bábuk összege = a fehér játékos előnye).
Ha ezt a tudást is beépítjük már az inputba, az jelentősen gyorsít(hat) a tanuláson.

A trükk az, h minél jobban csökkentsük a komplexitást. Egy több millió neuronos háló nem fog jobban teljesíteni, mint egy csak néhány 10-100 neuronnal rendelkező, de jól felépített. A tapasztalatok azt mutatják, h két rejtett réteggel rendelkező, kb 1000 neuronos hálóval már tetszőleges függvényt is nagyon jól lehet közelíteni.
Szóval ha ennél nagyobb hálót építünk, akkor szinte biztos, h rosszul kezdtünk neki a feladatnak.

   
syam - Törzstag | 1491 hsz       Online status #47628   2007.02.20 08:10 GMT+1 óra  
ahoi,

szerintem lehet használni játékokban( nexuslibben már találkoztam vele)
én is ezzel probálkozok ill amint mindent átírok gpura neki is látok. azt hiszem az első célpontom egy mimóza lesz: elég egyszerünek tünik, de képes tanulni
alias aalberik
   
g_imi - Tag | 236 hsz       Online status #47619   2007.02.20 05:57 GMT+1 óra  
Helló mindenkinek!
Ezt a topicot azért indítottam mert nem találtam hasonlót még a jf.hu-n (lehet h csak nem vettem észre).
Lenne pár kérdésem a témával kapcsolatban:
1. lehetséges neurális hálókat alkalmazni számítógépes játékokban, van rá példa?
2. van rá mód h meállapítsuk az optimális neuron számot egy adott feladatra? Egyáltalán függ-e a neuronok száma a végrehajtandó feladattól?

Még kezdő vk a témában. Olvasgattam pár dolgot ezekkel kapcsolatban de nem nagyon találtam választ ezekre a kérdésekre.

A segítségeteket előre is köszönöm!!!

   
Frissebbek | [1] [2] > 3 <