Val av laboration
Jag har valt att utgå från laborationen i modul 1.2, expertsystem i Prolog. Jag tror att detta område lämpar sig bra för att elever som läser kursen Artificiell intelligens 1 under sitt tredje år på Naturvetenskapsprogrammet: Det är relativt enkelt att förstå, överblicka och resonera kring. Samtidigt ger det goda möjligheter till fördjupning inom bl.a. logik.
Jag har valt ämnet medicinsk diagnostisering, vilket lämpar sig väl för programmets inriktning och många elevers intressen. Dessutom ger det konkreta exempel på hur AI påverkar arbetsmarknad och lagstiftning, samt hur AI ger upphov till frågor om etik, transparens och tolkningsbarhet.
Eventuellt specificerar jag exakt vilka symtom och sjukdomar som ska hanteras. Kanske begränsar jag uppgiften till veterinärmedicin och vanliga symtom och sjukdomar hos vanliga husdjur - bland annat för att underlätta informationssökning men också för att undvika oro och missuppfattningar och bland eleverna.
Ett annat område som skulle fungera bra är juridik. Elever kan söka i en viss begränsad delmängd av någon lagstiftning och skapa ett system för att avgöra om vissa handlingar är olagliga, givet vissa omständigheter. Detta skulle naturligtvis passa utmärkt för elever på Samhälls- eller Ekonomiprogrammet (om de läser kursen Artificiell intelligens…)
Bearbetning av nivå
Jag har utgått från exemplet i laboration 1.2 och de enklaste exemplen i den webbaserade Prolog-motorn SWISH.
Jag förutsätter att eleverna inte har någon tidigare erfarenhet av eller kunskap om programmering.
Jag har undvikit avancerade funktioner för hantering av in- och utdata, menyer, formatering, repetition m.m. Detta gör själva kodningen så lätt som möjligt men körningen av programmen blir lite tråkigare och krångligare.
Jag har utgått från en färdig introduktion till Prolog på svenska, skriven för universitetsstudenter på grundnivå (Dalenius, 2006). Jag tror att nivån på texten är lagom för gymnasieelever. Däremot blir kanske några av de inkluderade övningsuppgifterna för krävande för att använda på gymnasiet.
Min tanke är att denna laboration föregås av en eller flera lektioner där delar av introduktionstexten presenteras och gås igenom. Eventuellt får eleverna i läxa att läsa den på egen tid. Texten används också som stöd för eleverna under laborationen.
Om jag använder detta material i verkligheten så kommer jag antagligen att skriva en egen introduktion. Då kan jag anpassa texten exakt efter omständigheterna.
Jag har använt AI för att generera några förslag och exempel, men jag är inte nöjd med resultatet. Om jag ska använda den här planeringen i verkligheten så vill jag hitta eller skriva egna, bättre exempel.
Innehåll, syfte och mål
Elevernas uppgift är att bygga ett modell-expertsystem i Prolog, som en illustration av symboliska metoder för AI.
Eleverna ska samla in information om en liten del av ett välkänt och väldokumenterat område inom medicin.
Därefter ska eleverna översätta den kunskapen till en samling axiom och regler i Prolog.
Sedan ska eleverna experimentera med att söka i databasen och eventuellt justera den.
Slutligen ska eleverna diskutera fördelar och begränsningar med expertsystem av denna typ.
Instruktioner till eleverna
I den här laborationen ska du skapa ett litet expertsystem som efterliknar hur en expert fattar beslut inom en viss domän, och hur datorer kan användas för att efterlikna processen. Du får lära dig om regelbaserade system, logiska resonemang och några grundläggande begrepp inom artificiell intelligens.
Område: Rådgivning för vård av husdjur
Du ska bygga ett expertsystem som kan vara till stöd för att avgöra vad som kan vara fel på ett husdjur. Tänk dig att en veterinär skulle kunna använda (en mycket större version av) systemet för att snabbt få förslag på några troliga diagnoser.
Många vanliga problem hos husdjur har entydiga symtom. Det är ofta ganska lätt att formulera regler för att bestämma vilka sjukdomar som ger upphov till vissa symtom.
Samtidigt finns det många många olika sjukdomar med liknande symtom, så ett bra expertsystem kan definitivt vara till hjälp.
Tillförlitlig information om husdjursproblem är ganska lätt att hitta på Internet, och ganska lätt att tolka.
Verktyg
SWISH, en webbaserad Prolog-miljö.
Gå till: https://swish.swi-prolog.org
Ingen installation krävs - miljön fungerar direkt i din webbläsare
Skapa ett gratis konto om du vill kunna spara ditt arbete direkt i miljön. Annars kan du klippa och klistra in din kod i ett vanligt textdokument.
Steg 1: Samla kunskap (1-2 lektioner)
Undersök vanliga symtom, diagnoser och åtgärder inom ett av dessa områden (eller liknande):
beteendeproblem hos katter
matsmältningsproblem hos hund
matvanor hos små husdjur (hamster/kanin)
Förslag på källor
AniCura: Har en omfattande webbplats med artiklar om olika sjukdomar och hälsotillstånd hos hundar och katter. Exempelvis kan du läsa om vanliga hundsjukdomar här: https://www.anicura.se/for-djuragare/hund/fakta-och-rad/tio-vanliga-hundsjukdomar
Agria Djurförsäkring: Erbjuder en mängd artiklar och information om olika djursjukdomar och hälsotillstånd. Här finns också avdelningen Fråga veterinären. Se t.ex.: https://www.agria.se/fraga-veterinaren/hund/
Lokala veterinärkliniker: De flesta veterinärer har en webbplats eller delar ut informationsmaterial om vanliga sjukdomar och hälsoproblem hos djur.
Jordbruksverket: Har information om djurhälsa, smittsamma sjukdomar m.m..
Böcker om djurhälsa: Det finns många böcker som riktar sig till djurägare och som ger information om vanliga sjukdomar och hälsoproblem. Kolla i ditt bibliotek.
Tips för att hitta tillförlitlig information
Kolla källan: Se till att informationen kommer från en trovärdig källa, som en veterinär, en myndighet eller en vetenskaplig organisation.
Var kritisk: All information behöver inte vara korrekt. Jämför information från olika källor. Varför inte kontakta en veterinär?
Regler
Samla in minst 10 enkla regler om ditt valda område. Försök att hitta tydliga samband på formen “om… så…” Här kommer några exempel.
Hundar
Om hög feber, kräkningar och diarré, så infektion.
Om halt, så skada eller ledproblem.
Om klåda och håravfall, så allergi eller parasiter.
Katter
Om svårt att kissa eller blod i urinen, så urinvägsinfektion.
Om ökad aggressivitet eller gömmer sig, så smärta.
Steg 2: Organisera kunskapen (1 lektion)
Skapa en lista av regler och skriv motsvarande Prolog-kod. Undvik specialtecken och svenska tecken som å, ä och ö. Nedanstående kod motsvarar exemplen ovan.
% Regler
infektion(X) :- feber(X), kraker(X), diarre(X).
skada(X) :- halt(X).
ledproblem(X) :- halt(X).
allergi(X) :- klada(X), haravfall(X).
parasiter(X) :- klada(X), haravfall(X).
urinvagsinfektion(X) :- svart_att_kissa(X); blod_i_urinen(X).
smarta(X) :- aggressiv(X); gommer_sig(X).
Förklaringar
X representerar ett djur
:- betyder "om"
, betyder “och”
; betyder "eller"
Steg 4: Testa ditt system (1 lektion)
Hitta på minst fem olika husdjur med totalt minst tio symtom (varav minst fem olika symtom). Varje husdjur ska uppvisa minst ett symtom. Lägg in motsvarande fakta i ditt expertsystem. Några exempel:
%Fakta
feber(pelle).
kraker(pelle).
diarre(pelle).
halt(missan).
svart_att_kissa(måns).
blod_i_urinen(bill).
För att använda ditt expertsystem kan du nu ställa frågor som:
?- infektion(X).
?- skada(X).
?- ledproblem(X).
?- urinvagsinfektion(X).
Frågorna skriver du i det lilla fönstret nere till höger i SWISH-fönstret. Du ska inte skriva in tecknen “?-”.
Om du följt exemplet ovan så kommer du att få svaret:
X = pelle
på den första frågan och
X = missan
på de två följande frågorna. På den sista frågan får du två svar (du måste trycka på knappen “Next” för att få det andra svaret:
X = måns
X = bill
Detta kan du tolka så här:
Pelle kan ha en infektion, men inte Missan.
Missan kan ha antingen ledproblem eller en skada.
Både Måns och Bill kan ha en urinvägsinfektion.
Steg 5: Utöka ditt system (1 lektion)
Repetera vad du har gjort hittills och fortsätt att experimentera med ditt system. Lägg till fler regler och fakta för att göra ditt system mer intressant.
Exempel på tillägg:
Tidpunkt och frekvens för beteendet
Husdjurets ålder
Flera möjliga symtom för en diagnos
Flera möjliga diagnoser för vissa symtom
Tips
Börja med bara 2-3 regler. Se till att de fungerar innan du lägger till fler.
Testa ofta. Kontrollera varje ny regel när du lägger till den. Använd enkla frågor först.
Vanliga misstag att undvika:
Glöm inte punkter i slutet av fakta och regler
Tänk på dina parenteser
Se till att stavningen är konsekvent
Ta hjälp
Använd SWISH Prologs inbyggda exempel
Sök upp dokumentation för SWI-Prolog på webben
Be din lärare om hjälp med syntaxen
Tänk på att detta är en kort första introduktion till expertsystem. Fokusera på att förstå begreppen snarare än att skapa ett komplext system. Börja enkelt och bygg upp successivt.
Steg 6: Analys och reflektion (1-2 lektioner)
Skriv en rapport (1-2 sidor) där du funderar över följande frågor:
Om ditt eget system:
Vad fungerar bra i ditt system?
Vilka är systemets viktigaste begränsningar?
Hur skulle det kunna förbättras?
Hur förhåller sig ditt system till expertsystem som används i verkligheten?
Om expertsystem som används i verkligheten:
Hur säkra är de?
Hur tillförlitliga är de?
Var kommer informationen ifrån?
Hur fullständig är den?
Vem har ansvaret för systemens diagnoser och rekommendationer?
Vad händer när expertsystem är bättre på att ställa diagnoser än mänskliga läkare?
Vad händer när läkare inte längre förstår hur expertsystemet har kommit fram till sin diagnos?
Hur förhåller sig expertsystem till andra AI-metoder?
Steg 7: Inlämning
Följande ska lämnas in:
En förteckning över de källor du använt, med referenser
En lista över de regler som du har formulerat utifrån den fakta du har samlat in
En lista över de husdjur och symtom som du har hittat på för att testa systemet
Prolog-koden
Redovisning av testkörningar
Din rapport med analys och reflektioner
Några bedömningskriterier
Eleven har valt relevanta och tillförlitliga källor.
Eleven visar förståelse för logiska samband.
Eleven visar medvetenhet om informationens och systemets begränsningar och förståelse för hur det kan användas och tolkas.
Eleven har lagt till flera regler för att differentiera mellan olika typer av diagnoser med liknande symtom. Avancerat: Eleven har tilldelat olika vikter till olika symtom.
Eleven visar förståelse för att det egna systemet är en mycket förenklad representation av verkligheten. Listan över regler är inte uttömmande och täcker inte alla möjliga fall.
Eleven visar förståelse för att även expertsystem som används i verkligheten kan baseras på och ge en förenklad representation av ett komplext område. Många sjukdomar har överlappande symtom och diagnostik kräver ofta mer omfattande undersökningar.
Eleven för en tydlig diskussion om det egna systemets styrkor och begränsningar, och om expertsystem i allmänhet.
Eleven reflekterar klokt över expertsystems roll i och påverkan på samhället, exempelvis med avseende på juridik och etik.
Referenser
Dalenius, P. (2006). Prova på-laboration i Prolog. Institutionen för datavetenskap, Linköpings universitet. Hämtad 2024-12-01 från: https://www.ida.liu.se/~TDP001/2011/material/prova-pa/Prolog.pdf
SWISH. https://swish.swi-prolog.org
Inga kommentarer:
Skicka en kommentar