PlastBox Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 (endret) Hey folks! Endelig fått ut fingeren og laget min første learning agent. Koden er stygg, mangler pattern-generalisation, og det syns godt at brukergrensesnittet er laget av en utvikler ikke en designer. ...men den lærer! Og jo fler som spiller, jo bedre blir den! Så om du har et par minutter, lek litt med tic-tac-toe spillet mitt. A.I. Tic-Tac-Toe Takk! Edit: Da har jeg laget en ny versjon. Jeg vet ikke hvor mye bedre den fungerer enn den gamle men jeg implementerte i allefall snuing og speiling av brettet og i tillegg la jeg til at reward per move som gjør at jeg ikke vinner øker med 1 per runde. Altså, maskinens første trekk belønnes med +1, neste med +2, osv. Endret 9. oktober 2008 av PlastBox Lenke til kommentar
fox Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 Altfor smått! Spillet bør bli større Lenke til kommentar
PlastBox Skrevet 8. oktober 2008 Forfatter Del Skrevet 8. oktober 2008 Altfor smått! Spillet bør bli større Definer "større". Er begrenset hvor "stort" man kan gjøre et tre-på-rad spill. =P Lenke til kommentar
probin Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 enkelt og greit "større" større ruter. det var plagsomt små ruter i den oppløsninga jeg har Lenke til kommentar
Jankee Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 Ser at den "lærer" iform av å huske kombinasjonene som leder fram til seiersrekka. men det som ville gjort den "smartare er at den matcher fleire mønster som det same. 1|2|3 4|5|6 7|8|9 Den har no lært at valg på 5,7 må svares med eit motrekk på 3, mens 5,3 genrerer ikkje motrekk på 6. AIen vil kunne trekke slutninger på mindre datagrunnlag ved å mappe ulike seiersrekker til kvarandre og dermed vite at 6,7 er det same som 5,3. Dermed vil algoritmen som vurderer kvar den skal sette krysset vite at 5,7 ->3 samtidig som 3,5 -> 7 Lenke til kommentar
probin Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 har ikke tapt en gang enda!!! altså.. den er ikke smart enda! haha:D Lenke til kommentar
fox Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 Når blir A.I´en smart nok? Vinner hele tiden, har ikke tapt enda Lenke til kommentar
PlastBox Skrevet 8. oktober 2008 Forfatter Del Skrevet 8. oktober 2008 (endret) Ser at den "lærer" iform av å huske kombinasjonene som leder fram til seiersrekka.men det som ville gjort den "smartare er at den matcher fleire mønster som det same. 1|2|3 4|5|6 7|8|9 Den har no lært at valg på 5,7 må svares med eit motrekk på 3, mens 5,3 genrerer ikkje motrekk på 6. AIen vil kunne trekke slutninger på mindre datagrunnlag ved å mappe ulike seiersrekker til kvarandre og dermed vite at 6,7 er det same som 5,3. Dermed vil algoritmen som vurderer kvar den skal sette krysset vite at 5,7 ->3 samtidig som 3,5 -> 7 Du har et poeng! Dersom jeg hadde sammenlignet "current state" i databasen med spillbrettet, samt spillbrettet speilet og rotert 90, 180 og 270 grader hadde AI'en blitt 8x "smartere". Samtidig hadde den blitt hakket dummere fordi jeg hadde spesialisert den for Tic-Tac-Toe, så jeg er litt motstander av det alternativet. Men, for moro skyld jobber jeg med å implementere det nå. Det absolutt idéelle hadde vært å ha en mekanisme som leste igjennom all "rå-dataen" som blir lagt i basen nå og generaliserte så godt den kunne, slik at f.eks. de følgende tre brettene... oo_ x__ x__ oo_ __x __x oo_ x__ _x_ ...pent blir redusert til.. oo_ whatever whatever action = 3 ..men det blir meget, meget vanskelig å få til. =/ Endret 8. oktober 2008 av PlastBox Lenke til kommentar
Dryper Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 den virker jo ganske fint den men den må nokk lese litt mer før den slår meg Lenke til kommentar
Jankee Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 Gøy å bygge lærande programvare, gjorde litt det i hovudfagsoppgåva, men då at reglene for brukarinteraksjonen kunne modifiseres via enkle grensesnitt for ein administrator. Den enklaste metoden å få denne programvaren til å bli smartare vil nok bryte med prinsippet om at den skal vere lærande, i tillegg blir den veldig spesialisert. men det som kanskje kunne ha vore forbedra er algorimen for å plassere ut sitt egent mønster for å vinne. den vriker litt "dum" på det punktet forsatt, då det ser ut til at maskinas første trekk er veldig randomisert rundt menneskets første valg. Lenke til kommentar
PlastBox Skrevet 8. oktober 2008 Forfatter Del Skrevet 8. oktober 2008 Gøy å bygge lærande programvare, gjorde litt det i hovudfagsoppgåva, men då at reglene for brukarinteraksjonen kunne modifiseres via enkle grensesnitt for ein administrator. Den enklaste metoden å få denne programvaren til å bli smartare vil nok bryte med prinsippet om at den skal vere lærande, i tillegg blir den veldig spesialisert. men det som kanskje kunne ha vore forbedra er algorimen for å plassere ut sitt egent mønster for å vinne. den vriker litt "dum" på det punktet forsatt, då det ser ut til at maskinas første trekk er veldig randomisert rundt menneskets første valg. Takker og bukker for konstruktiv feedback, hehe. Hele opplegget er uhyre primitivt. Når AI vinner blir belønning (vekt) for alle trekk gjort det spillet økt med 10, om den taper blir vektene redusert med 3. Underveis i spillet blir vekten til hvert trekk AI'en gjør der jeg ikke vinner økt med 1. Når AI'en skal utføre et trekk henter den rader fra basen der state = nåværende spillebrett AND reward >= 0, og bruker den høyeste ratede bevegelsen. Om det ikke finnes noen med rating over 0 har den 33% sjanse til å bruke den "beste" av de under 0, og 66% sjanse for å velge et tilfeldig trekk. Noen innspill å komme med? Lager den mer spesialiserte versjonen nå som snur og vender på brettet før sammenligning, men jeg har det for meg at det teoretisk sett burde gå ann å lage en motor av denne typen som kan kobles mot hvilken som helst informasjon. Drømmen er å lage en stand-alone agent som kan kobles mot et hvilket som helst program der den automatisk får feedback når et trekk er dårlig, bra eller ulovlig, og når programmet vinner eller taper. For eksempel et sjakkspill der AI-agenten ikke kan reglene, men basert på feedback om ulovlige trekk, lovlige trekk, og gode trekk(ting som knerter motstander-brikker) lærer seg reglene godt nok til å i allefall så meg. =P Lenke til kommentar
TheClown Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 Gife større brett også! Lenke til kommentar
pekka1991 Skrevet 8. oktober 2008 Del Skrevet 8. oktober 2008 (endret) vinner 9 av 10 ganger med samme trekket. og den gangen den faktisk vinner går den på samme trekket neste gang? rekkefølgen 8, 2, 6, 7 om den skal bli smartere for hver gang burde du kansje utvikle noe så den ikke går på samme så og si hver eneste gang. som skrevet over vil du ha den til å virke i foreks sjakk. dumt om den 99% av gangene taper på samme brikkeoppsettet. edit: prøvde nå den nye versionen og denne ser ut til å fungere mye bedre, da jeg faktisk ennå ikke har vunnet Endret 10. oktober 2008 av pekka1991 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå