Gå til innhold

Løse IQ-oppgaver vha. genetisk programmering


Anbefalte innlegg

Videoannonse
Annonse

Rent overfladisk kan dette virke som en form for mønstergjenkjenning, selv om programmet også må kunne oppdage nye mønstre i input-tallrekker, og mønstergjenkjenning er så vidt jeg vet et typisk bruksområde for nevrale nettverk. Genetisk programmering tror jeg faktisk brukes i kombinasjon med nevrale nettverk når det er dårlig tilgang på læringsdata. Har du undersøkt om det finnes noe prior art i forbindelse med denne typen problemer?

 

Edit: Reformulering

Endret av A_N_K
Lenke til kommentar

Problemet kan nok kanskje sees på som et mønstergjenkjenningsproblem, men såvidt jeg vet betyr ikke det nødvendigvis at et nevralt nettverk løser det bedre enn genetisk programmering (jeg har hørt at filtre for å filtrere vekk pornografiske bilder er laget vha. genetisk programmering, men jeg kan ikke si dette 100 % sikkert).

 

A_N_K: Tenker du bare på et enkelt feedforward-nettverk? Hva tenker du som inndata og hva tenker du som utdata? Inndata kan kanskje være 10 noder, en for hvert tall i tallrekken og en for hvert løsningsalternativ. Og utdata kan kanskje være 5 noder der den noden som tilsvarer riktig løsningsalternativ gir høy ut og resten lav. Eller må/bør inndataene være representert binært?

Lenke til kommentar

Jeg har minimal erfaring med nevrale nettverk selv utover det rent basale; har prøvd å søke litt på nett, men fant lite utover en referanse til fortsettelse av tallrekker i en tekst som tok for seg optimering(?) av nevrale nettverk.

 

Edit: Hva tror du om dette?

Endret av A_N_K
Lenke til kommentar
zirener: Hele cluet er å bruke genetisk programmering (evt. en annen AI-teknikk) til å løse problemet. Hvordan har du f.eks. tenkt å løse følgende rekke med din teknikk, uten å hardkode:

1 1 2 3 5 (et tall er summen av de to foregående)

 

Jeg er klar over at noen rekker antageligvis aldri vil kunne løses på denne måten, f.eks. følgende:

2 3 5 7 11 (primtall)

 

Kan det tenkes at et nevralt nettverk vil løse problemet bedre enn genetisk programmering?

anders02: Nei, det er sant det... :blush:

Lenke til kommentar
Men hva er det egentlig programmet skal "svare"? Skal det svare med hva som er neste tall i rekken eller? Eller bare hvordan system det er?

Neste tall i rekken (dvs. én av fem alternativer den får).

 

Det kan virke som evolusjonelt utvalg spiller inn i utviklingen av nevrale nettverk i den oppgaven, tilsvarer det genetisk programmering?

Den benytter i alle fall noe av tankegangen fra genetisk programmering med generasjoner. Men det er forsåvidt ikke noe i veien med å la vektene være representert som binære strenger og så bruke mutasjon og krysning (crossover) for å finne nye vekter. Så vidt jeg skjønner består oppgaven av å mutere noen få av vektene i halvparten nettverkene i en ny generasjon (den andre halvparten kopieres direkte).

 

Men er dette en bedre løsning enn å kun ha ett nevralt nettverk (feedforward) som trenes vha. backpropagation?

Lenke til kommentar
Men er dette en bedre løsning enn å kun ha ett nevralt nettverk (feedforward) som trenes vha. backpropagation?

Jeg vet ikke riktig, men uten å kjenne detaljene har jeg lest at genetiske algoritmer brukes for å finne passende vekter ved back-propagation. Det finnes sikkert noe god litteratur på feltet :]

Lenke til kommentar
Men er dette en bedre løsning enn å kun ha ett nevralt nettverk (feedforward) som trenes vha. backpropagation?

Jeg vet ikke riktig, men uten å kjenne detaljene har jeg lest at genetiske algoritmer brukes for å finne passende vekter ved back-propagation. Det finnes sikkert noe god litteratur på feltet :]

Det gjør det sikkert, og innspillet ditt har satt meg på nye tanker.

 

Én måte å løse problemet på vil også være å finne en funksjon som tilnærmer tallrekken vha. funksjonen regne ut en løsning. Svaret vil da være det alternativet som ligger nærmest løsningen funksjonen fant. Ved å gjøre det på denne måten trenger man ikke et eneste treningseksempel. Om det derimot vil fungere godt i praksis vil kanskje fremtiden vise.

Lenke til kommentar

Det gikk ikke så galt dette her. Har laget et program som klarer 5 av de 6 relevante oppgavene som var på NRK-programmet Test nasjonen. Jeg bruker 64 treningseksempler som ligner litt på de oppgavene som var i den nevnte testen.

 

Den siste oppgaven har jeg ikke laget treningseksempler for, så det er naturlig at programmet ikke klarer den.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...