Sub-symbolske metoder i AI
Som nevnt opptil flere ganger tidligere, har jeg dette semesteret tatt et kurs som heter Sub-symbolske metoder i AI. AI står her for artificial intelligence, men akkurat hva sub-symbolsk betyr er jeg ikke helt skråsikker på. Jeg har imidlertid fått med meg at det sub-symbolsk AI skiller seg fra symbolsk AI, også kjent som Good Old Fashioned AI, eller GOFAI, og at den sub-symbolske varianter er mer bio-inspirert.
Bio-Inspired Artificial Intelligence er da også navnet på læreboken i faget, forøvrig en veldig god bok som alle burde ha i bokhyllen på stuen.
Bio-inspired antyder at man forsøker å simulere naturlige prosesser, og dette temaet inkluderer dermed spennende teknikker som evolusjonære algoritmer og kunstige nevrale nettverk. Evolusjonære algoritmer, eller genetiske algoritmer, som jeg tror er sånn ca det samme, er jo et tema jeg har skrevet om før. Jeg brukte nemlig en slik tilnærming til den handelsreisendes problem
i fjor, og også nå i år, som en øving i dette faget. I fjor synes jeg det gikk sånn passe greit, men nå vet jeg naturligvis bedre, og jeg har innsett at en annen teknikk, som kalles self-organising maps, er mye bedre. Mens jeg i fjor greide å finne en passe bra løsning med 20 byer, ville jeg i år funnet en rimelig bra løsning for 7900 byer, hvis ikke maskinen min (helvetes linux) hadde hatt en liten glitch som gjorde at simuleringen stoppet like før den var ferdig. (Med like før mener jeg ca en uke. Den hadde da stått og kvernet i litt over 50 dager.)
Men jo. Evolusjonære algoritmer er ordentlig spennende greier, og fører også med seg en del filosofiske spørsmål, for ikke å snakke om en del kritikk fra kreasjonister som ikke tror på denslags. Teknikken går ut på at man genererer tilfeldige løsninger til et problem, og så velger man ut de beste, krysser dem for å lage nye løsninger, og gjentar prosessen mange ganger. Med en mutasjon i ny & ne.
Et berømt eksempel på bruk av denne metoden er en antenna NASA designet til en satelitt. De bestemte seg for at antennen skulle ha en tre-lignende struktur, som en metall-pinne med forgreninger. De benyttet så en evolusjonær algoritme til å bestemme parameterne, altså hvor forgreningene skulle være, hvor mange, hvilke vinkler, etc. Resultatet ble en antenne som er bedre enn ingeniørene greide å designe selv. Problemet er at man ikke forstår hva som gjør den bedre.
Eksamen i faget var å skrive en oppgave om blant annet dette spørsmålet. (Jeg kan legge opp besvarelsen min når jeg har fått karakter.) Hvis et program kommer frem til et design som er veldig bra, men som vi ikke forstår, er det en verdifull ting? Kan vi stole på en ting vi ikke forstår? Hva om det er tilfeldig at den funker, og at den vil være ustabil? Er det mulig å videreutvikle slike design, eller tilpasse dem til andre formål? Kommer de til å ta over verden? Veldig spennende greier.
Jeg argumenterte for at vi bør kjøre på, og satse på at vi vil lære noe på sikt. Mennesker brukte tross alt ild rimelig lenge før vi skjønte hva som egentlig foregikk, og det er nok enda en stund til vi kan bygge maskiner som kan ta over verden.
I alle tilfeller var det en meget spennende fag. Det var også svært arbeidskrevende, på grunn av fem ganske store, obligatoriske innleveringer der man skulle programmere forskjellige modeller. Arbeidskrevende kan imidlertid være en bra ting, og jeg tror nok helt sikkert jeg har blitt en bedre progammør av å ta dette faget. For eksempel har jeg lært at det kan være smart å objektorientere seg litt. Faget anbefales for alle som er interesserte i denslags.
-Tor Nordam
Comments