27. marts 2003 - 22:00Der er
73 kommentarer og 1 løsning
Idéen bag Artificial Intelligence??
Hej Eksperter!
Nu er det efterhånden lykkedes mig at lave flere mindrer spil i flash, og jeg tænkte at starte på noget, hvor 'computer fik lov til at tænkte selv', hvor der var mulighed for at spille et spil alene..
Men så tænkte jeg på.. Hvad er det egentlig der ligger bag computerens bevælger, når man fx. kan få fjender til at gå efter helten og så'n noget i mindrer spil?
Jeg har lavet http://www.bored.dk/chickfight.swd som et lille forsøg, men jeg synes stadig der er noget der mangler for at give det den rigtige fornemmelse for at det er computeren der styrer og ikke bare nogle 'random-koder'..
Vil gerne have nogle mindrer forklaring, nogle evt. links og så'n lidt af hvert der kan beskrive godt nok til selv den........kan forstå, hvad der menes ;)
Men i den pågældende spil (hvis sti er http://www.bored.dk/chickfight.swf, hvilket min intelligens kunne regne ud) kan jeg nu ikke lige helt gennemskue, hvilken form for intelligens, du vil indføre...
I spilsammenhæng kan AI primært bruges til træk-baserede, full-knowledge spil... Det er derfor ikke synderligt anvendeligt til fx Backgammon eller Ludo, hvor der er tilfældighed med (men kan anvendes alligevel) eller til kortspil. Derimod har jeg lavet en forholdsvist intelligent modstander til reversi (også kaldet othello eller dag-og-nat) og det er især benyttet og forsket i indenfor skak.
AI kan anvendes inden for mange programmeringsområder.
AI er IKKE kunstig intelligens men nærmere evnen til "at løse exponentielle problemer i lineær tid" - altså en række shortcuts og tricks til at løse ellers meget tidskrævende problemer.
OK altså sidst jeg diskuterede det her inde var der mange som sagde at man ikke kan lave kunstig intelligens. Det er jo forkert! Det er jo netop der for at det hedder "kunstig" og ikke "rigtig"
Men grænserne for hvad intellingens er flytter sig hele tiden. Før Deep Blue slog Kasparov i skak mente man at det at blive verdens mester i skak måtte kræve stor intellings. Men det kræver åbentbart ikke intellings, men bare stor hukommelse og regnekraft. Så vi må først se på hvilke af de ting som os mennesker foretager os, som egentlig kræver intellingens.
Der findes muligvis nogle få, der forsker i hvordan man får en computer til at opføre sig ligeså irrationelt som et menneske, men 99% af al forskning indenfor "kunstig intelligens" handler ikke om at få en computer til at "tænke" som et menneske, men til at løse komplekse problemstillinger på kortest mulig tid.
A* er AI, skak-computere er AI men ingen af dem forsøger at modelere "intelligens" som vi mennesker har det...
For "kunstig" ved vi jo godt hvad betyder. (ok åbenbart ikke dem jeg diskuterede med sidst, men jeg går ud fra at de ville opfatte det ved at tænke lidt over det)
- Og så undskyld hvis jeg lød lidt grov og arrogant, jeg er bare stadig lidt oprørt efter sidste diskution
Men det er jo straks en anden diskussion at diskutere hvad menneskelig intelligens dækker over...
Skal vi snakke computermodstandere i træk-baserede full-knowledge spil, så gøres det via MiniMax-søgning med alpha-beta-pruning. Jeg har eksempler på implementering i både ML og Lisp.
Har forsøgt flash, men den kan sgu ikke trække det - den er for sløv og går ned ved en dybde på blot 3.
Men "intelligens" i ovenstående spil, som flash-man har lavet (altså hvordan vinder man) er vist blot et spørgsmål om øjeblikkeligt at gå helt hen til modstanderen og tæske løs. Intelligent? Nej vel... :)
"The Age Spiritual Machines" af Ray Kurzweil - læs den nu bare ikke barklund. Kurzweil er genial, lige så meget (hvis ikke mer') som Einsten var det. Du tager helt fejl, vi *er* nået så langt! Det er pga. den eksponetielt voksende evolution (Loven om accelereret udbytte). Allerede i år 2030 vil en maskine kunne overbevise os om at den er klogere end os. Det er altså en god bog. Jeg kan ikke anbefale den nok, især i forbindelse med investeringer i fremtidige teknologier.
Ja i træk-baserde bruges en "rekursiv formel", som f.eks. i Deep Blue. Dessuden samme metode som "bruges af" evolutionen: Teste forskellige metoder (ben eller vinger eller...) og så bygge videre på dem som virker.
Jeg har deltaget i et billedgenkendelses-projekt på IMM på DTU, der har nogle af verdens førende forskningsprojekter indenfor netop billedgenkendelse (tro mig eller ej). Du har læst en bog, hvor en mand påstår noget.
mat>> Det kræver jo en længere forklaring (en hel bog) men det er lige som at man kan overbevise en lille dreng om at man er klogere end ham. - Men det kan måske godt være svært at forrestille sig hvis man ikke har læst bogen.
Genkendelse af en stol er vel stadig kun erfaring - et opslag i en database. Ved godt der skal en del til for at gøre det, men alligevel. Mønstergenkendelse = intelligens?
>> mortrr Det er det lige netop. Hvis du aldrig har set denne type og form for stol før, så kan du ikke bare slå den op i en database. Og hvis du endda kun kan se noget af den - hvordan ved du så, at det er en stol?
>> doggy82 Har du nogen praktisk erfaring med AI eller har du kun læst en bog?
YEP Mønstergenkendelse = intelligens det er ganske rigtigt !!! Vis en bold kommer flyvende i en bue imod dig hvad er det så som gør at du kan plasere dig selv så du griber bolden?
1) Er det din hjerne som beregner højde, hastighed og så videre?
2) Eller er det fordi at din hjerne genkender den bane som en blod flyber i?
mortrr>> Nej, ikke som vi ser det nu-til-dags. Deep Blue har stor erfaring(= hukommelse) da den jo er blevet "fodret" med spil fra store skak-turneringer. Men definitionen på intellingens egentlig bliver jo hele tiden skubbet.
Det er jo subjektivt. Hvordan kan man komme med sådan en udtalelse? Endsige bevise den?
Og jeg kender godt Kurzweil af omtale. Ham den forholdsvist anerkendte professor fra MIT, der har fået indopereret diverse elektronik, hvis bøger står under "fiktion" (enkelte gør), og som har fået svagt storhedsvanvid siden han opfandt faktisk ganske fornuftige teknikker indenfor OCR (tekstgenkendelse) og lignende...
Hov: Men definitionen på intellingens bliver jo hele tiden skubbet.
sprutnik>> Nej! maskinerne *bliver* mere intellingente end os. Det er et følge af evolutionen da den hele tiden søger ny metoder til at udvikle "sig". Men "vi" snakker jo om "hybrider" mellem menneske og maskine.
Dessuden så har IQ noget at gøre med tid! (Man siger jo at IQ har noget at gøre med intellingens) Evolutionen har en IQ på lidt over 0, fordi den er meget langtid om at finde metoder som "virker". - En IQ test er jo også på tid !!! tænk over den :-)
barklund>> Jeg har da ikke de store erfaringer. Udover de tanker jeg selv har rendt rundt med i mit hovede. Og jeg er da godt klar over at Kurzweil er meget ekstrem i sine teorier. Jeg siger bare du burde læse den bog, han skriver på en meget "menneskelig" måde. Han har dessuden fået tonsvis af priser - om det lige er for denne bog ved jeg ikke helt - men dum er han i-hvert-fald ikke :-)
Jo jo... oplagt til diskussion... tænkte jeg ikke lige på...
Det jeg tænkte på var ikke i SÅ HØJ GRAD som doggy82 er inde på, men bare til mindrer flsahspil, som barklund er inde på.. Jeg skal bare bruge lidt hjælp til at få mine egne spil til at virke lidt 'klogere' ved (som barklund siger det), at få computeren til at finde den nemmeste/hurtigste løsning hele tiden..
Barklund :: Kigger lige på dine links om A* og det der..
Barklund :: Er ud på MSN Messenger?? Du er jo ganske klog inden for det område (Flash) jeg prøver at blive klog på, og kunne godt bruge dig i nærheden en gang i mellem ;)
Rent faktisk vurderer denne flash ens adfærd og temprement og lærer af ens fejl og handlinger. Prøv bare at spille i tre-fire timer, så vil i se det *G* (o;
barklund>> jeg er i øjeblikket ved at lave et robot projekt på ruc, omhandlende billedgenkendelse ved implementerin af djikstras algoritme. Sidder lige og battler med noget teori om "gaussian convolution", kan ikke finde noget om beregning af en kernel (kerne?)... Eventuelt noget du skulle have noget viden om?
Argh... Jeg burde vide noget om det, men desværre... Vi arbejdede med Sponge Tracking - følge en markeret svamps bevægelser foran et webcam.
Så desværre, teorien blev jeg aldrig særlig skarp på, da det rent faktisk var et ret kedeligt projekt.
Nu spørger jeg dumt, men Djikstra har da lagt navn til teori indenfor Semaforer og Monitorer indenfor Concurrent Programming - kan ikke lige huske nogen algoritme med relevans indenfor billedgenkendelse...
Baklund>> Ikke et dumt spørsmål, vidste ikke hvilke andre ting Djikstra havde beskæftiget sig med. Han har lavet en "korteste vej" algoritme, som ofte bliver brugt ved "pathfinding" problemer.
mat>> Det har hjulpet mig mere end du tror, havde svært ved at finde kilder der forklarede netop dette. Forstår dog stadigvæk ikke hvorfor Gaussian distributionen er som den er (http://www.dai.ed.ac.uk/HIPR2/gsmooth.htm). Hvordan beregner man en kerne, og hvilken betydning har værdien af ro.
Jeg læser medialogi ved Aalborg universitet, fra København - vi er et hold der læser herovre fra.
Vi lavede et projekt sidste semester omhandlende bevægelses detektion - eller rettere at fjerne alt det der ikke var menneskelige bevægelser (lysforandringer, natur o.l.)
En gauss kernel kan beregnes som jeg viste ovenstående - jeg holder mig til 1D det er langt nemmere at overskue og illustrere - og i praksis er det også mere processor-venligt at folde med en horisontal og derefter en vertical fremfor en 2D kernel (et lille hint fra vores lærer) idet det indeholder færre multiplikationer.
Jeg går ud fra at du er bekendt med hvordan en foldning ser ud på pixel-niveau? ellers er her en lille gennemgang:
Denne kernel "slides" så diskret hen over input´et og dit output bliver:
200 200 212,5 237,5, 250 250 <- overgangen mellem 200 og 250 er blevet smoothed
princippet er at man multiplicerer hver plads i input´et med den tilsvarende plads i masken adderer dem, og deler dette med summen af masken.
Så hvis vi har origin i masken på pixel 4 fra venstre får vi: ((200*1)+(200*2)+(250*1))/4 = 212,5 <- dette assignes så til outputtet på den plads der svarer til origin i inputtet.
Princippet i dette er helt det samme i 2D.
Hvis det har nogen interesse kan jeg spørge mine gruppemedlemmer om jeg må låne vores rapport ud, den omhandler ikke meget matematik, vi prøvede med vilje at få den helt ned på et niveau hvor vi allesammen kunne forstå hvad der skete. Den er fuld af beskrivelser af diverse filtre vi brugte:
alm. background subtraction gauss edge detectors (prewitt, sobel, laplacian, LoG, GoL (tror jeg nok osse bliver nævnt)
plus nogle andre
alt er implementeret i Eyes Web, og dette er osse nøje beskrevet.
Men som sagt, hvis det har nogen interesse kan jeg spørge om jeg må ligge den til download et sted? (selvfølgelig er den ikke til videre distribution)
Jeg har ikke rapporten hjemme, så alt her er skrevet ud fra hukommelsen, og på eget ansvar at gentage nogen steder :)
Jeg forstod det der med at "slide" kernen henover et graylevel image, også i 2D, forstod bare ikke hvad en kernel skal indeholde, hvem siger den skal starte med 1, og hvad bestemmer det? Ville da gerne have det var muligt at læse jeres rapport og muligvis henvise til den....
osv osv, men den begynder at ligne. Det skal jo være en vægtning af pixels med fokus på den pixel i origin.
Det med pascal trekanten var bare hvad vi fik at vide vi skulle udregne vores gauss kerner udfra. Og de ligger tæt på de tal du har på dit link - summen af den viste 1D-kernel er 1,001 eller sådan noget - det ligner .25 .50 .25 bortset fra at den er bredere. 2D´en på dit link har 1 4 7 4 1 i kanterne, det er ret tæt på 1 4 6 4 1 fra pascal - hvorfor der er en denne afvigelse ved jeg ikke.
Der er ikke noget rho i dit link, men der er et sigma og det er standard deviation, og det her har jeg slet ikke styr på - vi brugte det til en "lærende" mekanisme, men det er lykkeligt glemt. Jeg er helt på the outskirts af hvad jeg kan hjælpe med her :)
Kender du Eyes Web news gruppen? Der sidder nogle konge-nørder indenfor det her område jeg er sikker på at de kan svare dig meget bedre end jeg nogensinde kommer i nærheden af.
Jeg skal prøve at spørge de andre om jeg må ligge den op, hvis du smider en mail kan jeg sende dig deres mening :)
Ellers er her nogle af de gennemgange vi var igennem plus lidt andre links http://www.cs.aue.auc.dk/%7Evok/Lectures.html (vær opmærksom på at der kan være nogle småfejl i nogle af slides´ne fordi Volker bare er ligeglad :)
Og jeg kan kun anbefale Eyes Web - vi bruger det på det her semester til at tracke, og det er nemt at arbejde med.
Troede sigma var det symbol der lignede et M vend 90 grader til venstre, brugt ved beskrivelse af stokastiske vaiable (kan godt være min matematiske viden der halter lidt)... Men min e-mail er martipe@ruc.dk
robo_rage > med en helt enorm forsinkelse (beklager) har jeg nu fået uploadet opgaven, jeg har sendt dig en mail, men for tiden får jeg et hav af mailerdeamons som ikke er andet end spam så dem gider jeg ikke åbne, så hvis du ikke har modtaget en mail så skriv lige.
flash-man>>> Emnet bliver faktisk diskuteret ivrigt, men jeg kan se at folk er blevet mere optagede af at snakke om det, frem for at give et svar.
Du vil nok blive overrasket over hvor ufatteligt kompliceret hele emnet er. Selv det at få nogle dimser til at bevæge sig ad den kortest mulige vej imellem to punkter er rimeligt indviklet.
A*-algoritmen er netop en af de algoritmer som man bruger til at finde ud af hvordan en dims kan bevæge sig omkring forhindringer i et spil.
Jeg har et rigtig godt link til en slags portal for spilalgoritmer - jeg poster det senere idag (skal lige hjem først).
De fleste af bøgerne er aldrig brugte, og alle (bortset fra én enkelt) er købt hos Amazon.com i vinter 2000/2001 til fire gange prisen, dvs. (samlet: 5000-6000kr)
”Bots – the origin of new species” (brugt) 269 sider af Andrew Leonard 50 kr
”Artificial Minds” (ubrugt) 447 sider af Stan Franklin 150 kr
”The Age Of Spiritual Machines” (lettere brugt, men ser stort set ud som ny). 388 sider af Ray Kurzweil 150 kr
”Fluid Concepts and Creative Analogies” (ubrugt) 518 sider af Douglas Hofstadter 150 kr / ”Beyond Humanity: CyberEvolution and Future Minds” (ubrugt) 487 sider af Gregory S. Paul & Earl D. Cox 150 kr
“Mind Design II – Philosophy, Psychology, Artificial Intelligence” (ubrugt) 475 sider edited by John Haugeland 150 kr
“Digitale Agenter – Praktiske assistenter til Internet” (brugt) 143 sider af Karim Pedersen 50 kr
”Robot – Mere Machine to Transcendent Mind” (ubrugt) 227 sider af Hans Moravec 100 kr
”Darwin among the Machines – the evolution of global intelligence” (ubrugt) 286 sider af George B. Dyson 100 kr
”Mind Children – The Future of Robot and Human Intelligence” (ubrugt) 214 sider af Hans Moravec 75 kr
”Mapping Great Debates – Can Computers Think? – An Issue Map Publication” Syv forskellige Maps/Plakater/Diagrammer over tankeprocesser. Ikke en bog, men meget værdifuld illustreret sammenfatning af hvad der står i alle de andre bøger. 250 kr
Du kan købe alle bøgerne samlet til extra discountpris: 1000kr
Darkstar >> Ved godt det altsammen er meget indvæklet, men jeg bliver nødt til at prøve, efter 10 flash-skydespil med samme script (bare en lille tand bedere, hver gang) får man lyst til at avancere. Dine links virker spændene, kigger på dem senere, har ikke tid lige nu.
Mazymaze >> Jeg er en fattig gymnasie-elev på SU. Og selvom jeg købte bøgerne ville jeg sikkert ikke kunne forstå det der stod i dem :( men ellers tak for tilbudene..!
Mht. mazymaze's bøger, så vil jeg gætte på, at det er mere "filosofiske" end praktiske og gennemførlige emner, der diskuteres...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.